한양과학기술고등학교

에듀테크 프로젝트 대시보드

FastAPI 시작하기

ASGI Starlette Pydantic uvicorn OpenAPI

FastAPI 는 타입 힌트 기반의 파이썬 웹 프레임워크입니다. 라우팅·검증·직렬화·문서화를 타입 선언 하나로 처리합니다.

1. 무엇으로 이루어져 있나

FastAPI 는 두 라이브러리 위에 얹힌 얇은 레이어입니다.

구성 요소
  • Starlette — ASGI 토대. 라우팅, 미들웨어, 요청/응답, 백그라운드 태스크, 웹소켓
  • Pydantic — 타입 기반 데이터 검증·직렬화 (v2, Rust 코어)
  • Uvicorn — ASGI 서버 (개발·운영 시 실행 주체)

WSGI(Flask/Django) 와 달리 ASGI 라서 async 를 네이티브로 지원합니다.

2. 설치

터미널
python -m venv venv
source venv/bin/activate

pip install "fastapi[standard]"   # uvicorn, httpx 등 표준 세트 포함
#  또는 최소 설치:
pip install fastapi uvicorn

fastapi[standard] 는 fastapi CLI, uvicorn, python-multipart(폼), jinja2, httpx 등을 함께 설치합니다.

3. 최소 앱

main.py
# main.py
from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"message": "hello"}

4. 실행

터미널
fastapi dev main.py       # 개발용 (자동 리로드) — fastapi[standard] 필요
# 또는
uvicorn main:app --reload --port 8000
주소내용
http://127.0.0.1:8000/실제 응답
/docsSwagger UI 대화형 문서
/redocReDoc 문서
/openapi.jsonOpenAPI 스키마 원본

5. 이 서버에서의 배포 형태

운영 환경에서는 fastapi dev 를 쓰지 않습니다. 이 서버는 Gunicorn + Uvicorn worker + Nginx 구조입니다. 자세한 배포는 배포 페이지 참고.

"타입 힌트 하나로 검증·직렬화·문서화가 동시에 이뤄진다"