[코낭] Django 와 Flask의 차이점 및 추후 계획
개요
- Django를 다룰줄 아는사람은 Flask도 잘 다룬다. Flask를 잘 다룰줄 알면 Django도 어렵지 않게 다룬다.
- Django - Full-stack Framework
- Flask - Micro Framework (Django Rest Framework와 같음)
Django
- flask에 비해 10배 무거운 프레임워크이다.
- 이미 거의다 개발되어있고, 그냥 레고놀이 하듯이 블럭쌓기처럼 쌓아만 가도 멋진 웹을 서빙할 수 있다.
- 한 프로젝트 내에 다양한 어플리케이션이 존재 할 수 있다. -> 개별 프로젝트 관리도 편하게 된다.
- ORM이 있어 DB 접속을 최소화 한다. -> 편리함
- 내가 원하는 기능을 따로 추가할 때 flask 보단 자유도가 낮다.
- 무겁지만 기능이 많고 편리하다.
언제 사용하면 좋을까
- 웹앱이나, API 백엔드를 만들고 싶다!
- 빠른 개발, 빠른 배포, 빠른 업데이트!
- CSRF, XSS, SQL 인젝션, 클릭재킹등 기본적 보안 완비!
- 스케일링 업, 스케일링 다운을 자유자재로 하고 싶다면!
- 개발하다 막혔을때 물어볼 곳이 많았으면!
- SQL이 익숙하지 않아서 강력한 ORM이 필요하다면!
Flask
- 약 27,000줄 밖에 안되는 가벼운 프레임워크이기 때문에, 개발자가 거의 모든 것을 설정하고 세팅해야 하는 번거로움이 있다.
- 프로젝트마다 1개의 어플리케이션을 개발
- ORM이 없어 SQLAlchemy등을 사용한다.
- 마이크로프레임워크이고 편하게 확장할 수 있으며 유연하다.
- 가볍고 편하지만 신경쓸게 많다.
언제 사용하면 좋을까
- 도저히 1개의 코드베이스에 담을 수 없을만큼 앱이 크거나,
- 아니면 너무 앱이 작다면!
- 밑그림부터 시작할 수 있는 실력에 내가 뭘하고 있는지 알고 있다면!
- 팀원 중 그 어느 누구라도 Django 와 Python에 익숙치 않다면!
- DB로 이미 생성된 NoSQL을 사용
[참고자료]
Django 교재 및 강의 비교
추후계획
- React를 활용한 스터디 -> Django를 활용한 스터디로 변경
- Django 활용 교재를 알아보다가 풀스택 언어인 Django 공부를 통해 결과물을 좋지 않을까라는 생각
- 교재 중에 Django + Bootstrap으로 웹 개발부터 배포까지 가능한 책을 발견
- Django 공부 이후 이전에 우리가 작업하다 중단하였던 유튜피아 프로젝트를 마저 빌드하여 마쳐보면 어떨까라는 생각
- 방법1. Django 기초서를 공부한 후 우리가 이전에 공부하던 React를 활용하여 웹 개발 진행.
- 방법2. Django + Bootstrap을 한번에 구성한 책을 한 권 구매하여 공부한 후 웹 개발 진행.
- 참고사항1. React는 좀 더 어렵고 무겁지만 실무에서 많이 사용하는 언어이므로 추후 활용도가 높다.
- 참고사항2. Bootstrap은 쉽고 템플릿이 많아 쉽게 웹 구현이 가능하지만 실무 활용도가 낮고 개발 자유도가 낮다. -> 많이 자동화되어 있음.