이전 글
FastAPI란?
FastAPI는 비교적 최근에 출시된 파이썬 웹 프레임워크로 RESTful API를 빠르고 쉽게 개발할 수 있도록 설계되었음. Python 웹 프레임워크 중 높은 처리 속도를 자랑하며 API명세서를 자동으로 생성해주고 비동기 처리가 간단하다는 장점이 있음.
FastAPI의 장점
① 뛰어난 성능
- FastAPI는 Starlette(ASGI 프레임워크)와 Pydantic(데이터 검증 및 설정 라이브러리)을 기반으로 하며, **비동기 프로그래밍(Asynchronous Programming)**을 지원합니다.
- Node.js와 Go와 유사한 성능을 제공하며, Python 웹 프레임워크 중 높은 처리 속도를 자랑합니다.
② 자동화된 문서화
- OpenAPI 스펙을 기반으로 자동 생성된 Swagger UI와 ReDoc 문서를 제공합니다.
- API를 정의하기만 하면, 개발자가 별도로 작업하지 않아도 대화형 문서가 생성됩니다.
(개인적으로 API명세서를 손수 작업해 본 경험으로는 이건 완전 장점...!)
- API를 정의하기만 하면, 개발자가 별도로 작업하지 않아도 대화형 문서가 생성됩니다.
③ 타입 힌트 기반
- Python의 **타입 힌트(Type Hints)**를 적극 활용하여 데이터 검증, 자동 문서화, 코딩 생산성을 높입니다.
- 코드의 가독성이 뛰어나며, IDE에서 자동 완성과 타입 체크가 가능해 생산성이 향상됩니다.
④ 데이터 검증과 직렬화
- Pydantic을 활용해 요청(Request) 데이터와 응답(Response) 데이터를 간단하게 검증하고 직렬화(Serialization)할 수 있습니다.
⑤ 간단한 비동기 처리
- async와 await 키워드를 사용하여 비동기 코드를 자연스럽게 작성할 수 있습니다.
(Django등 다른 파이썬 웹 프레임워크에서도 가능하나 FastAPI가 더 쉽다고 배웠음) - 데이터베이스와의 비동기 통신, 외부 API 호출 등에서 비동기 처리를 통해 성능을 극대화합니다.
FastAPI의 단점
- 상대적으로 새로운 프레임워크로, Django나 Flask처럼 매우 큰 생태계를 아직 갖추진 못했습니다.
- 동기 방식 코드에 익숙한 개발자들에게는 비동기 프로그래밍 패러다임이 낯설 수 있습니다.
Django vs FastAPI
Django
- 장점:
- 많은 기능을 내장하고 있어 초보자도 쉽게 시작 가능.
- 큰 생태계와 플러그인 지원.
- 안정적인 모놀리식 웹 애플리케이션 구축에 적합.
- 단점:
- 비동기 처리 지원이 제한적.
- 불필요한 기능도 함께 로드되는 경우가 많음.
FastAPI
- 장점:
- 뛰어난 성능과 간결한 코드.
- 자동화된 API 문서화와 타입 힌트 지원.
- 비동기 프로그래밍과 마이크로서비스에 최적화.
- 단점:
- Django에 비해 생태계와 내장 기능이 적음.
- 초보자에게는 설정 과정이 복잡할 수 있음.
- Django: 풀스택 웹 애플리케이션 개발이 필요하거나, 프로젝트 초기에 빠른 개발이 중요하다면 Django가 적합합니다.
- FastAPI: 고성능 REST API를 개발하거나, 비동기 처리가 핵심인 프로젝트에 적합합니다.
구글 트렌드로 확인 결과 아직은 Django가 확실히 더 많이 사용되는 것 같다.
'공부 > FastAPI' 카테고리의 다른 글
[FastAPI] 프로젝트 구조 (0) | 2025.01.17 |
---|---|
[FastAPI] 사용된 패키지 목록 (1) | 2025.01.16 |
[FastAPI] API Status Code 정리 (0) | 2024.12.26 |