어떤 차이가 있나?
- 기본적으로 Django와 Flask는 Web Framework이며 Python 언어를 기반으로 하는 것으로 비교 자체가 될 수 없다고 볼 수 있다.
- Django
- Full-stack Framework
- Admin panel이 기본적으로 제공됨.
- Flask
- Micro Framework (Django Rest Framework와 같음)
- Flask-Admin 확장팩을 설치해야함.
흠... 그래도 뭔가 다르지 않을까?
- Flask는 약 27,000줄 밖에 안되는 가벼운 프레임워크이다 보니 개발자가 거의 모든 것을 설정하고 셋팅해야한다.
- 반면, Django는 이의 10나 무거운 프레임워크이며 수많은 기능들이 이미 개발이 되어 있어 손 쉽게 개발이 가능하다.
- Flask는 프로젝트 마다 1개의 어플리에키이션을 개발하도록 되어 있지만, Django는 한 프로젝트 내의 아양한 어플리케이션이 존재할 수 있다.
- Flask는 따로 ORM이 없기 때문에 SQLAlchemy 등을 사용해야하는 반면, Django는 아주 강력한 ORM이 존재한다.
- Django ORM은 DB 접속을 최소화 함.
속도 차이가 있지 않을까?
- 차이가 없다고 한다.
- Flask가 더 빠르다고 하지만, 속도가 정말 중요하다면 Python으로 만든것 자체가 실수라고 많이들 말한다.
요약을 한다면?
1. Django를 사용하고 싶다?
- 웹 앱이나, API 백엔드를 만들고 싶다.
- 빠른 개발, 빠른 배포, 빠른 업데이트.
- CSRF, XSS, SQL 인젝션, 클릭재킹 등 기본적인 보안 완비.
- 스케일링 업, 스케일링 다운을 자유자재로 가능.
- 개발하다 막혔을때 물어볼 곳이 많음.
- SQL이 익숙하지 않아서 강력한 ORM이 필요하다면.
2. Flask를 사용하고 싶다?
- 도저히 1개의 코드베이스에 담을 수 없을 만큼 앱이 큼.
- 너무 앱이 작음.
- 밑 그림부터 시작할 수 있는 실력에 내가 뭘하고 있는지 알고 있다면.
- 팀원 중 그 어느 누구라도 Django와 Python에 익숙치 않다면.
- DB로 이미 생성된 NoSQL을 사용.