fastapi/fastapi
FastAPI framework, high performance, easy to learn, fast to code, ready for production
FastAPI – API용 고성능 Python 웹 프레임워크
무엇인가요 – FastAPI는 Python으로 HTTP API를 구축하기 위한 현대적이고 프로덕션 준비 완료된 웹 프레임워크입니다. 표준 Python 타입 힌트, 비동기 웹 커널로 사용하는 Starlette, 그리고 데이터 검증/직렬화를 위한 Pydantic을 활용합니다.
왜 중요한가요 – 프레임워크는 Node.js나 Go와 비슷한 속도를 제공하면서도 개발자 경험을 단순하게 유지합니다: 일반적인 Python 함수를 작성하기만 하면, 자동 요청 검증, 직렬화, 그리고 인터랙티브한 OpenAPI 문서(Swagger UI 및 ReDoc)를 무료로 제공받을 수 있습니다.
핵심 기능 (README에 기재된 내용)
- 성능 – Starlette와 Pydantic 기반; 가장 빠른 Python API 프레임워크 중 하나입니다.
- 개발 속도 빠름 – 일반적으로 개발 속도가 200~300% 향상됩니다.
- 버그 감소 – 자동 검증 덕분에 개발자가 유발하는 오류가 약 40% 감소합니다.
- 지능형 에디터 지원 – 완전한 타입 인식 자동 완성 및 린팅 기능 제공.
- 표준 기반 – OpenAPI(Swagger) 및 JSON-Schema 사양을 자동 생성합니다.
- 자동 문서화 – 인터랙티브한 Swagger UI 및 ReDoc 인터페이스를 기본 제공합니다.
- 의존성 주입 – 깔끔한 아키텍처를 위한 간단한 타입 기반 DI 시스템.
- 보안 헬퍼 – 내장된 OAuth2, JWT, HTTP Basic 등.
- 확장성 – Starlette 확장 기능을 통해 WebSocket, CORS, 쿠키 세션, GraphQL(Strawberry 경유) 등을 지원합니다.
일반적인 사용 사례
- 마이크로서비스 및 내부 API.
- 머신러닝 모델이나 데이터 파이프라인용 공개 RESTful 서비스.
- 빠른 반복이 필요한 웹 또는 모바일 애플리케이션의 백엔드.
- 자동 OpenAPI 문서가 필요한 프로토타이핑 및 프로덕션 배포.
시작하기 (README에서)
# uv(또는 pip)로 설치 – "standard" 확장은 추천되는 종속성들을 포함합니다
uv add "fastapi[standard]"
main.py 생성:
from fastapi import FastAPI
app = FastAPI()
@app.get('/')
def read_root():
return {"Hello": "World"}
@app.get('/items/{item_id}')
def read_item(item_id: int, q: str | None = None):
return {"item_id": item_id, "q": q}
개발 서버 실행:
uv run fastapi dev # 자동 리로드, http://127.0.0.1:8000 에서 제공
http://127.0.0.1:8000/docs (Swagger UI) 또는 .../redoc에 접속하여 대체 UI를 확인하세요.
예제 확장 (PUT 요청에 본문 포함)
from pydantic import BaseModel
class Item(BaseModel):
name: str
price: float
is_offer: bool | None = None
@app.put('/items/{item_id}')
def update_item(item_id: int, item: Item):
return {"item_name": item.name, "item_id": item_id}
문서는 자동으로 새로운 요청 본문 스키마를 표시합니다.
배포 옵션
- FastAPI Cloud –
uv run fastapi deploy로 한 번의 클릭으로 배포 (같은 팀에서 제공). - 어떤 ASGI 호환 호스트든 가능 (Uvicorn, Hypercorn, Gunicorn + Uvicorn 워커, Docker, 서버리스 플랫폼 등).
사용 중인 기업
README에서는 Microsoft, Uber(Ludwig), Netflix(Dispatch), Cisco 및 기타 많은 기업에서 프로덕션 환경에서 사용하고 있다고 언급하고 있습니다.
TL;DR
FastAPI를 사용하면 일반 Python 함수를 작성하고 타입 힌트를 추가하기만 하면, 즉시 다음을 얻을 수 있습니다:
- 고성능 비동기 처리,
- 자동 요청 검증 및 응답 직렬화,
- 실시간 OpenAPI 문서,
- 강력한 에디터 지원. 학습 곡선이 매우 낮아 현대 Python API 개발의 최적 선택입니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- Dispatch
- 프로젝트