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 패턴 쉽게 구현 가능 |
단점 | - 커뮤니규모가 작음 - 일부 기능에 대해 추가 라이브러리 필요 |
- 다른 프레임워크나 디자인 패턴을 적용하기 제한적 - 불필요한 기능까지도 포함될 수 있음 |