Django와 Flask, Fast API

Ahyeon, Jung·2023년 9월 19일
post-thumbnail

파이썬 웹 개발에 사용되는 웹 프레임워크는 가장 대표적으로 Flask와 Django가 있다. 두 프레임워크는 각각의 장단점이 있으므로 상황에 따라 적절한 선택을 한다. 요약하자면, 플라스크는 유연성과 빠른 프로토타이핑을 중시하는 작은 규모의 프로젝트에 좋고, 장고는 강력한 내장 기능과 대규모 애플리케이션에 적합하다.

Django

풀 스택 웹 프레임워크로 강력한 내장 기능과 구조를 제공
복잡한 Python 기반 웹 앱을 구축하는데 사용됨
확장성을 제공하는 강력한 아키텍처
MVT(Model-View-Template) 구조로 전체 스택 개발을 위한 프레임워크
ORM(Object-Relational Maper)을 내장하여 다양한 데이터베이스에 유연하게 액세스 가능
기본적으로 데이터베이스에서 개체를 삽입하거나 호출하기 위해 많은 쿼리를 작성할 필요없음
사용자가 더 많음

  • ORM, 사용자 인증, 관리자 패널, 폼 처리, URL 라우팅 등
  • 안정성과 확장성을 요구하는 복잡한 대규모 웹 애플리케이션 프로젝트에 적합
  • 프로젝트 구조와 개발 관례를 강제하기 때문에 일관된 코드 작성과 프로젝트 구조를 유지하기에 좋음
  • 보안에 대한 많은 기능과 내장된 방어 메커니즘을 제공하여 애플리케이션의 보안을 강화할 수 있음
  • 관리 명령을 자동으로 생성하여 데이터베이스 마이그레이션과 같은 작업을 간편하게 수행 가능

Flask

마이크로 웹 프레임워크로 가벼우면서도 강력한 도구
장고와 비교하여 최소한의 구조를 제공
MVC(Model-Views-Controller) 구조
가상 환경에 flask를 설치하고 프로젝트를 열면 빈 파일 디렉토리가 나타남
가볍기 때문에 장고만큼 많은 내장 패키지를 제공하지 않음
플라스크의 ORM 기능을 사용하려면 SQLAlchemy라는 타사 데이터베이스 주입 패키지가 필요
Flask에는 api 빌드를 위한 rest 확장 기능도 있지만 장고가 제공하는 모든 기능을 갖춘 내장 api 구조는 제공X
대부분의 연결을 만들고 스스로를 구조화하기 때문에 python을 사용한 웹 개발 워크플로에 대한 기본적인 이해를 제공
파일 연결 방식에 대한 제어권을 잃지 않고 의도 한대로 빌드하는데 초점을 맞춘 직접적인 프레임워크

  • 간단한 구조로 커스터마이징하기 쉬움
  • 직관적
  • 필수적인 기능만을 내장
  • 간단한 API 서비스를 빠르게 개발하는데 적합하며 RESTful API 구축 용이
  • 작은 규모의 프로젝트나 프로토타이핑에 적합하며, 개발자들이 최소한의 부담으로 빠르게 개발 가능

Fast API

파이썬 기반의 현대적이고 빠른 웹 프레임워크
신속한 웹 API 개발과 효율적인 프로덕션 배포

  • 내부적으로 Pydantic을 사용하여 입력 및 출력 데이터 검증을 수행하며 Starlette 및 Pydantic의 코루틴을 활용하여 비동기 프로그래밍을 지원하여 빠른 응답 시간을 제공
  • 자동 API 문서 생성을 지원. Swagger 및 ReDo과 통합되어 API 엔드포인트, 입력 및 출력 모델, 문서화 주석 등을 기반으로 사용자 친화적인 API 문서를 자동으로 생성
  • Python 3.6 이상에서 타입 힌트를 활용하여 API 엔드포인트의 입력 및 출력 데이터 모델을 정의가능. 정적 타입 검사를 통해 버그를 미리 방지 가능
  • 간단한 문법과 자동화된 입력 데이터 검증, 자동 문서화를 제공하여 개발 시간을 단축. Python의 기능을 활용하여 직관적이고 빠른 개발 가능
  • WebSocket 지원

Reference

https://kimkani.tistory.com/35

profile
https://a-honey.tistory.com/

0개의 댓글