기타

Django, Flask, FastAPI 비교

판다조아 2022. 12. 3. 22:30

Django

 

▶  장점

 

  • 오픈소스로 디테일한 문서가 매우 많으며 사용자가 많아 자료 찾기에 편리합니다.

 

  • Full-stack  Framework로 이미 구조화 되어 있어서 프레임워크 가이드 대로 하면 손쉽게 개발이 가능합니다.

 

  • RDBMS와의 상호 작용을 완전히 지원하는 ORM기능이 내장되어있습니다.
    (ORM(Object relational mapping) - 객체 관계 매핑. 데이터베이스 시스템과 데이터 모델 클래스를 연결)

 

  • 자동으로 관리자 페이지를 제공하며, 이를 통해 web application에서 사용하는 데이터들을 쉽게 생성하거나 변경할 수 있습니다.

 

 

 

▶  단점

 

  • Full-stack  Framework인 만큼 Flask보다 약 10배 많은 코드 라인으로 개발이 비교적 느리며 더 무겁습니다.

 

  • 많은 기능을 제공하고 매우 뛰어나지만 그만큼 복잡하며 자유도가 적습니다.

 

 

 

 

 

 

 

 

Flask

 

▶  장점

 

  • Micro Framework으로 Django 보다 코드가 10% 정도 밖에 안되는 매우 가볍고 심플한 프레임워크 입니다.

 

  • 코드 몇 줄 이면 시작할 수 있습니다. 쉽고 빠른 방법으로 더 낮은 기능을 가진 경량 애플리케이션을 개발할 수 있습니다.

 

  • 처음부터 주어진 기능이 없지만, 내가 원하는 설계 방향대로 framework를 구축해 나갈 수 있다는 점이 자유롭습니다.

 

  • 단순하고 간단하게 일부를 쉽게 안전하게 변경할 수 있습니다.

 

 

 

▶  단점

 

  • 최소한의 기능만 제공하는 만큼 하나하나 필요한 부분을 추가하면서 만들어야 하므로 개발 확장과 배포를 위해서 라이브러리 및 확장을 많이 검색해봐야 합니다.

 

  • DB ORM 구조가 따로 존재 하지 않습니다. (개발자가 원한다면 ORM 지원 패키지를 선택해서 사용하면 됩니다.)

 

 

 

 

 

 

 

 

 

FastAPI

 

▶  장점

 

  • 빠르게 성장하고 있는 프레임워크로 매우 빠른 속도와 높은 성능을 가지고 있습니다.

 

  • Starlette과 Pydantic을 기반으로 하는 가장 빠른 파이썬 웹 프레임워크 중 하나입니다.

 

  • 뛰어난 문서를 가지고 있습니다.

 

  • 코드를 분석하여 OpenAPI문서를 자동으로 생성합니다.

 

  • 더 적은 노력과 디버깅 시간으로 애플리케이션을 생성하는 데 도움이 되는 자동 완성 기능을 제공합니다.

 

 

 

▶  단점

 

  • 아직 2년밖에 되지 않은 프레임워크라 다른 프레임워크들에 비해 커뮤니티의 규모가 작습니다. (정보가 적음)

 

  • 응용 프로그램을 개발할 때 FastAPI 응용 프로그램에서 모든 것을 같이 패키징 해야 하기 때문에 기본 파일이 매우 길거나 복잡해질 수 있습니다.

 

 

 

 

 

 

 

 

Python의 대표적인 Framework인 Django, Flask, FastAPI에 대해 간단히 공부해 보았습니다.

이게 무조건 좋고, 이건 무조건 별로다!가 아닌,

모두 저마다 다른 장/단점을 가지고 있기 때문에 개발 환경과 목적에 맞게 골라서 사용하면 됩니다!

 

 

 

 

 

 

 

출처