웹 애플리케이션을 개발할 때 사용되는 파이썬 프레임워크에는 Django, Flask, FastAPI 가 있다.
각 프레임워크 별 장점, 단점 및 활용 사례를 알아보자.
Django
2003년에 개발된 Model-Template-View 패턴으로 웹 사이트 구축에 사용되는 무료 오픈 소스 프레임워크이다.
Instagram, Youtube 등 Tech 대기업에서 사용되고 있으며 재사용 가능한 코드를 장려하기 때문에 인기가 있다.
장점
- 코드 구조가 매우 효율적이다.
- DRF(Django Rest framework)의 모듈러형 아키텍처와 커스터마이즈 가능한 아키텍처로 인해 Django를 사용하여 웹 API를 구축하기 쉽다.
- 공동 SQL 주입 및 사이트 간 요청 위조 공격에 대한 방어 기능을 제공함으로써 보안을 강조
단점
- 많은 재사용 가능한 모듈 때문에 속도가 느리다.
- 이전 버전이 새로운 릴리즈와 호환성이 있는지 확인해야 한다.
사용 사례
- 부하가 높은 예약 엔진
- 쇼핑 플랫폼
- 학교 관리 시스템
- 웹 기반 응용 프로그램을 지원하는 IOS 및 Android 응용 프로그램.
- 관리 대시보드, 사진 기반 검증, 사용자 알림 전송을 위한 이메일 시스템 등을 구현할 수 있다
Flask
Python으로 작성된 마이크로 웹 프레임워크로 미니멀리즘 웹 애플리케이션을 개발하는 데 사용할 수 있다.
또한, 플라스크에는 ORM, 캐싱, 인증 등의 템플릿 엔진 옵션이 준비되어 있다.
장점
- 유연하다.
- Unit 테스트 가능
- 매우 간단하여 초보자가 배우기 쉽다.
단점
- 보안 침해를 일으킬 수 있는 모듈을 사용한다.
- 모든 요청을 차례대로 처리하는 단일 소스를 가지고 있기에 속도가 좀 걸린다.
- 부하가 높은 엔터프라이즈 소프트웨어에는 사용하지 않는 것이 좋다.
사용 사례
- 전자 상거래 시스템
- 페이스북 / 트위터봇
- 온라인 ㅍ소셜 네트워크
- 정적 사이트
FastAPI
웹 API를 구축하는 데 사용되는 최신 오픈 소스 고속 고성능 Python 웹 프레임워크이며 Python 3.6+ 표준 유형 기반으로 한다.
장점
- 깊이 중첩된 json 요청에서도 개발자의 데이터 유형을 검증한다.
- JSON Schema, OAuth 2.0 및 OpenAPI와 같은 표준을 기반으로 구축된다.
- Graphene-python이라는 Python 라이브러리를 사용하여 GraphQL API를 쉽게 구축할 수 있다.
- 빠르다.
단점
- 다른 프레임워크에 비해 커뮤니티가 작고 외부 교육 자료가 거의 없다.
사용 사례
- 속도가 중요한 경우 완벽하게 작동한다.
- 넷플릭스는 내부 위기관리를 위해 FastAPI를 사용
Django, Flask, FastAPI 를 간단히 비교해보자.
Package
Django > Flask = FastAPI
Community
Django > Flask > FastAPI
성능
FastAPI > Flask > Django
유연성
Flask > Django = FastAPI
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
Ref
https://www.section.io/engineering-education/choosing-between-django-flask-and-fastapi/
'정리노트' 카테고리의 다른 글
Python 가상환경 생성, 활성화, 비활성화, 삭제 (0) | 2022.12.07 |
---|---|
파이썬의 가상환경과 종류 (0) | 2022.12.07 |
intelliJ의 폴더들에 대해 (0) | 2020.08.07 |
IntelliJ에서 jar 파일 생성 (0) | 2020.06.28 |
댓글