👉 Python Web Framework 종류
- Django - http://www.djangoproject.com/
- Flask - http://flask.pocoo.org
- FastAPI - https://fastapi.tiangolo.com/
👉 Django
장점
- High-level Framework로 Instagram, Youtube, Spotify 등의 기업에서 활용
- 기본적인 기능 ~ 프로 개발자들이 개발해 놓은 각종 패키지들까지 모두 포함되어 있음.
- 보안 / DRF(Django Rest Framework) / ORM / 서드파티와의 연계 등 대부분의 기능이 갖추어져 있어 확장성이 좋음
- 어드민 패널이 있어 DB에 CRUD를 할 수 있는 공간 존재
- async orm은 불가능, async view는 가능
단점
- 프레임워크 규모가 큼
- 비교적 속도가 빠르지 않음
👉 Flask
장점
- Micro Web Framework로 최소한의 웹 개발하는데 주로 사용
- 다양한 웹 엔진과 붙여서 사용할 수 있고 가볍기도 해서 빠르게 서비스를 런칭해야할 때 사용하면 좋음
(ex. restAPI, CORS, DB 연동, MVC, Layerd 패턴 등의 기술들을 정해진 틀이아닌 자유롭게 사용 및 다른 언어/프레임워크와 연동 가능) - Django : import해서 편리하게 사용 vs Flask : 해당 기능 직접 작성
단점
- ASGI(비동기) 대신 WSGI(동기)를 사용하고 있어 한 번에 많은 트레픽을 처리하기 어려움.
- Jinja 템플릿 엔진과 Werkzeug WSGI 툴킷에 의존
👉 FastAPI
장점
- 빠른 개발과 고성능을 추구하는 프레임워크, Flask만큼 코드가 간결하고, 성능은 Go나 Node.js에 견줄만하게 빠름
- Starlette과 Pydantic을 기반. Starlette를 통한 ASGI지원과 Pydantic의 간편한 유효성(Validation) 검사가 큰 강점
- OpenAPI문서 자동 생성 / JSON 스키마 / OAuth 2.0등 다양한 표준들이 기반
- FastAPI는 동시성 상황에서 빠름
단점
- 2019년 탄생으로 약한 생태계
- 기능 라이브러리의 구현체 부족
👉 Full-stack Framework VS Micro Web Framework
📌 Full-stack Framework
- 웹 개발에 필요한 요소를 모두 갖춘 웹 프레임워크
- Java Spring, Python Django, Node.js Express, Ruby on Rails
📌 Micro Framwork
- 개발자가 필요한 라이브러리/패키지를 직접 설치하여 개발
- Python Flask, Python FastAPI, Ruby Sinatra등
👉 참고문헌
'Python > Utils' 카테고리의 다른 글
[Python Utils] Python Decorator 활용 (0) | 2022.08.25 |
---|---|
[Python Utils] Python Type 어노테이션/힌트 (Typing, mypy) (0) | 2022.08.24 |
[Python Utils] 코드 컨벤션 (pylint, flake8, pre-commit, mypy) (0) | 2022.08.24 |
[Python Utils] Python 코드 정리 Tool (Black, isort) (0) | 2022.06.30 |
[Python Web] Django / Flask / FastAPI 셋팅 (0) | 2022.04.28 |