카테고리 없음

Django와 FastAPI

멍주다배 2024. 12. 30.

API(Application Programing Interface)

서비스의 요청과 응답을 처리하는 기능 의미

 

Django

  • Battery Included 전략을 사용해 프레임워크에서 기본적으로 제공되는 기능이 많음
  • 초기 프로젝트 세팅에 필요한 작업을 줄일 수 있지만 불필요한 기능까지도 포함될 수 있음
  • DRF(Django REST Framework)와 함께 사용
    • MVC 패턴 쉽게 구현 가능
    • 내장된 시리얼라이저를 활용해 데이터 벨리데이션과 같은 기능을 빠르게 구현 가능
  • 어드민과 같이 기본적으로 제공되는 기능을 활용해 빠르게 프로토타이핑하는 프로젝트에 적합
  • 데이터베이스를 백엔드로 사용하는 웹사이트에 유용
  • 강한 결합 때문에 다른 프레임워크나 디자인 패턴을 적용하기 제한적임

 

FastAPI

  • 경량 프레임워크
  • 웹서버 동작에 필요한 최소한의 필수 기능들로만 이루어짐
  • 장고보다 성능 우수
    • 가벼움, 비동기 처리를 프레임워크 자체적으로 지원
  • (기능이 단순한) 간단한 프로젝트나 요구에 맞는 디자인 패턴을 적용해 확장 가능한 어플리케이션을 개발할 경우에 사용

장점

  • 웹서버의 성능이 빠름 + 직관적인 디자인과 타이핑을 통한 빠른 개발
    • 파이썬 프레임워크 중 가장 빠름
    • 직관적인 디자인으로 처리가 쉬움
  • 모던 프레임워크
    • 프레임워크 내에서 Type Hints를 지원
    • 안정적인 타입 처리와 데이터 벨리데이션, IDE 서포트를 활용한 빠른 개발 가능
  • AsynclO, Backgroun Task에 대한 처리가 매우 쉽고 간단해 별도의 라이브러리 없이도 간단한 비동기 작업 처리 가능
  • 자동으로 OpenAPI 스펙에 맞는 API 문서 생성
    • 문서 누락 방지 (Type Hints로 실제 코드가 문서에 그대로 반영)
  • Swagger UI를 이용해 웹서버에 실제로 요청 보내기 가능

 

프레임워크 FastAPI Django
장점 - 빠른 성능과 속도
- 직관적인 디자인으로 처리가 쉬움
- 간단한 비동기 작업 처리 가능
- 자동 API 문서 생성
- 다양한 기능 내장
- MVC 패턴 쉽게 구현 가능
단점 - 커뮤니규모가 작음
- 일부 기능에 대해 추가 라이브러리 필요
- 다른 프레임워크나 디자인 패턴을 적용하기 제한적
- 불필요한 기능까지도 포함될 수 있음