0. 선택의 갈림길
Django를 배우기 시작한 지 14일이 지났다.
이제 웹개발에 전념할 수 있는 시간은 6개월이 남았다.
1. Django의 기능
Django는 FitCuration 프로젝트의 기능들을 구현할 수 있다.
- 키워드 검색
- 지역 검색 기능
- 메인 페이지에서 카드 형식으로 운동 카테고리 간략하게 보여주기
- 검색 결과 지도
- 검색 결과 운동/센터 간략 설명
- 개별 운동 상세 설명 페이지
- 상단 배너, 하단 고정 배너 - Contact Me, About FitCuration 등
- 프로젝트 소개 페이지: About Us
- 후기 페이지 및 포럼
2. Django라는 프레임워크는 개발자에게 어떤 편리한 점을 주는가?
Django와 Node(Express)는 사실 서로 다른 맥락에 있는 개발 도구 두 개다.
밥 먹는 걸 예시로 들어보자.
- 뷔페에서 자신의 마음에 드는 이런저런 요리를 가져와서 먹는 것이 Django로 웹을 개발하는 것이다.
- 공유 주방에서 자신이 가져온 재료를 갖고 요리를 직접 해 먹는 것이 Node(Express)로 웹을 개발하는 것이다.
남의 떡이 더 커보인다고, Express로 개발할 때 Django의 장점들이 보인다.
- 데이터 관련 웹 어플리케이션 프로젝트들이 파이썬으로 작성된 경우가 많다. 이는 데이터를 다루는 사람들이 파이썬을 주로 쓰기 때문이다. 이들은 주로 데이터 시각화 / 검색 등 기능을 Django나 Flask를 통해서 구현한다.
- Django의 유저 관리 부분은 최고이다.
- Django가 디버깅이 쉽다. 웹을 로딩을 실패했을 때 어디서 에러가 났는지 정확하게 집어주니까 디버깅이 더 쉬운 것 같다.
- 아무래도 파이썬으로 코드를 쓸 때 JavaScript로 쓸 때보다 더 편하다. 따라서 Django로 개발하는 속도가 더 빠른 것 같다.
- Django는 old한 framework라기보다는, mature 한 framework라고 부르는 게 적합할 것 같다. 소스코드가 비록 오래됐더라도, 프로젝트를 구현하는 데 쓸만하다.
3. Express.js 웹개발에 비해서 Django web framework에서 느끼는 불편함
- 남이 써놓은 Django 프로젝트 코드를 봐도 무슨 말인지 이해를 못해먹겠다. 이에 반해서 자바스크립트는 프런트든 백엔드든 코드가 상당히 직관적이다(Thanks to Babel & ES6).
- npm은 짱짱이다. 남이 써놓은 프로젝트 다운로드 받아서 환경설정하는 데 얼마 걸리지도 않는다. 하지만 장고는 Docker, pipenv, venv 등... 개발환경이 가지 각각이다.
- 자바스크립트는 배우면 frontend에도 쓰인다. 하지만 장고는 프론트엔드를 JS + CSS + HTML로 다시 짜야한다.
- Django의 경우 프로젝트들의 프론트엔드가 대부분 현대적이지 않다. Jquery or Bootstrap + Django 프로젝트 소스코드들을 구할 수 있지… ㅡㅡ; vue + django 예시도 구하긴 구했으나, 소스가 몇 개 없다.
- Django App -> View -> URL & REST API 은 개발 시간이 너무 오래 걸린다. 반면 Node를 이용하면 GraphQL, Apollo로 개발하면 빠르다.
- Django ORM 덕분에 SQL을 다루지 않고도 Database를 다룰 수 있는 것은 좋다. 하지만 이 때문에 장고로 개발하는 것은 다소 Database 쪽에 치중된 것 같다. 차라리 간단한 프로젝트이면 NoSQL인 MongoDB를 Node로 사용하는 것도 좋은 방법인 것 같다.
- Django Documentation이 있어서 좋다고? 파묻히지나 않으면 다행이다. 무엇이 중요하고 무엇이 안 중요한 기능인지 아는 것이 중요한 것 같다.
결론: 비교하는 것도 공부다.
- 고민은 계속 될 것 같다.
- 지금까지 백엔드를 Flask, Express, Django로도 개발해보면서 어떤 것이 내 프로젝트를 구현하는 데 가장 적합할지는, 아마 계속 고민해야 할 문제일 것이다.
- 웹개발을 공부할 시간 180일 동안 나는 Django, Express, GraphQL, Vue를 공부하기로 결정했다.
[참고자료]
- “내 첫 번째 풀스택”, Jay Choi: https://brunch.co.kr/@jaychoi1619/44
- 2016년 파이콘 “Django vs Flask, 까봅시다”, Dohyun Kim: https://speakerdeck.com/nerogit/django-vs-flask-ggabobsida?slide=12
- Nomad Coders Django ORM 설명: https://www.youtube.com/watch?v=6mHpfGjpE_M&t=56s
'Project Based Learning > 운동 추천 웹서비스 - FitCuration' 카테고리의 다른 글
Django 학습 4주일 차 - TFIDF Algorithm & Django Filter (0) | 2020.03.18 |
---|---|
Django 학습 3주일 차 - 몸져눕다 (0) | 2020.03.17 |
Django 학습 1주일 차 - 어떻게 하면 날로 먹을까? (0) | 2020.02.22 |
[Django] Application 폴더를 지워서, migration이 꼬였을 때 (0) | 2020.02.11 |
인스타그램 텍스트 데이터로 나에게 맞는 운동을 찾는 법: TF-IDF, Word2Vec (0) | 2020.02.03 |