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 Clouduv run fastapi deploy로 한 번의 클릭으로 배포 (같은 팀에서 제공).
  • 어떤 ASGI 호환 호스트든 가능 (Uvicorn, Hypercorn, Gunicorn + Uvicorn 워커, Docker, 서버리스 플랫폼 등).

사용 중인 기업

README에서는 Microsoft, Uber(Ludwig), Netflix(Dispatch), Cisco 및 기타 많은 기업에서 프로덕션 환경에서 사용하고 있다고 언급하고 있습니다.


TL;DR

FastAPI를 사용하면 일반 Python 함수를 작성하고 타입 힌트를 추가하기만 하면, 즉시 다음을 얻을 수 있습니다:

  • 고성능 비동기 처리,
  • 자동 요청 검증 및 응답 직렬화,
  • 실시간 OpenAPI 문서,
  • 강력한 에디터 지원. 학습 곡선이 매우 낮아 현대 Python API 개발의 최적 선택입니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • Dispatch
  • 프로젝트