출시·고도화 중
Framework · 2018년 공개
FastAPI는 Python 타입 힌트를 바탕으로 요청 검증, 직렬화, API 문서를 자동으로 처리하는 고성능 웹 API 프레임워크입니다.
FastAPI는 Python으로 웹 API를 만들기 위한 현대적인 프레임워크입니다. 2018년에 Sebastián Ramírez가 처음 공개했고, 지금은 오픈 소스로 활발히 개발되고 있습니다. 내부적으로 웹 처리는 Starlette, 데이터 검증은 Pydantic을 사용하며, 함수 매개변수에 붙인 타입 힌트만으로 요청 값 변환과 검증, 응답 직렬화, OpenAPI 문서 생성이 이루어집니다.
FastAPI는 REST API 서버, 마이크로서비스, 머신러닝 모델 서빙, 내부 관리용 백엔드처럼 입력 검증과 문서화가 중요한 곳에서 특히 많이 쓰입니다. ASGI 기반이라 async/await로 많은 동시 요청을 효율적으로 처리할 수 있고, 일반 def 함수도 그대로 쓸 수 있습니다. 의존성 주입 시스템 덕분에 데이터베이스 세션, 인증, 설정 같은 공통 로직을 깔끔하게 나누고 테스트에서 쉽게 바꿔 끼울 수 있습니다.
처음 배운다면 가상 환경을 만든 뒤 pip install "fastapi[standard]"로 설치하고, fastapi dev main.py로 개발 서버를 띄워 /docs에 나타나는 대화형 문서에서 API를 직접 호출해 보는 것을 권합니다. 공식 문서의 'Tutorial - User Guide'는 경로 매개변수부터 보안, 데이터베이스, 테스트까지 단계별 예제로 구성되어 있어 순서대로 따라 하기 좋습니다. Python 타입 힌트와 Pydantic 모델에 익숙해지면 FastAPI의 대부분을 이해할 수 있습니다.
매개변수와 Pydantic 모델의 타입 선언만으로 요청 데이터를 변환하고 검증하며, 잘못된 입력에는 자세한 오류 응답을 자동으로 돌려줍니다.
코드에서 OpenAPI 스키마를 만들어 /docs(Swagger UI)와 /redoc에서 대화형 문서를 바로 제공합니다.
Depends로 데이터베이스 세션, 인증, 공통 매개변수를 선언하면 FastAPI가 요청마다 알맞게 준비해 주고, 테스트에서는 쉽게 바꿀 수 있습니다.
Starlette와 ASGI 위에서 동작해 async def 엔드포인트로 많은 동시 연결을 효율적으로 처리하며, 일반 def 함수도 함께 쓸 수 있습니다.
프로젝트 폴더에서 Python 가상 환경을 만들고 활성화합니다. 아래 명령은 macOS와 Linux 기준이며, Windows에서는 .venv\Scripts\activate로 활성화합니다.
python -m venv .venv && source .venv/bin/activatestandard 추가 구성으로 FastAPI를 설치합니다. 개발 서버 Uvicorn과 fastapi 명령줄 도구 등 자주 쓰는 의존성이 함께 설치됩니다.
pip install "fastapi[standard]"main.py를 만든 뒤 개발 서버를 실행합니다. 코드를 고치면 자동으로 다시 불러오며, 브라우저에서 http://127.0.0.1:8000/docs를 열면 대화형 API 문서를 볼 수 있습니다.
fastapi dev main.pyFastAPI()로 애플리케이션 객체를 만들고, @app.get 데코레이터로 경로와 HTTP 메서드를 함수에 연결합니다. 함수가 돌려주는 딕셔너리는 JSON 응답으로 바뀝니다. 두 번째 엔드포인트의 item_id: int는 경로 값을 정수로 변환·검증하고, 기본값이 있는 q는 선택적인 쿼리 매개변수가 됩니다. fastapi dev main.py로 실행한 뒤 /docs에서 두 엔드포인트를 직접 호출해 볼 수 있습니다.
main.py
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"message": "Hello, world!"}
@app.get("/items/{item_id}")
def read_item(item_id: int, q: str | None = None):
return {"item_id": item_id, "q": q}
pip install "fastapi[standard]"
fastapi dev main.py설치부터 FastAPI 의 핵심 개념까지, 여섯 장으로 차근차근 따라 합니다.
FastAPI 에 관해 묻고, 경험을 나누고, 의견을 주고받는 곳입니다.
아직 토론이 없습니다. 첫 이야기를 시작해 보세요.
댓글 0개
로그인 · 로그인하면 댓글을 남길 수 있습니다.
첫 댓글을 남겨 보세요.