FastAPI의 기능 (Dump It!)

Rrrryu·2026년 4월 10일

PROJECT

목록 보기
8/8

데코레이터(@) 자체는 파이썬의 문법이지만, 그 안에 담긴 강력한 자동화 기능들(유효성 검사, 문서화 등)이 바로 FastAPI의 핵심 기능입니다.


1. 데코레이터(@)와 라우팅

@app.get("/") 같은 코드는 파이썬의 데코레이터 문법을 활용한 FastAPI의 라우팅 기능입니다.

  • 파이썬 문법: @는 함수를 받아서 기능을 추가하는 '장식자'일 뿐임
  • FastAPI 기능: 특정 URL(예: /dump)로 들어오는 HTTP 요청을 어떤 파이썬 함수와 연결할지 결정합니다. Flask 등 다른 프레임워크도 쓰지만, FastAPI는 이를 비동기(async def)와 결합해 훨씬 빠르게 처리
    GET 요청 확인, URL / 검사, 에러 처리를 해줌

2. Pydantic을 이용한 자동 유효성 검사 (⭐)

  • 기능: 함수 인자에 타입 힌트(data: Item)를 적어주면, FastAPI가 들어오는 데이터가 숫자인지 문자열인지 알아서 검사합니다.
  • 데이터 정제(Cleaning) 단계를 프레임워크가 대신 해주는 셈. 잘못된 데이터가 들어오면 코드를 짜지 않아도 알아서 422 Unprocessable Entity 에러를 뱉어줌

3. 자동 문서화 (Swagger UI)

서버를 띄우고 /docs에 접속했을 때 보이는 API 명세 페이지

  • 기능: 코드를 분석해서 실시간으로 API 명세서를 만들어줌
  • 프론트엔드와 협업하거나 본인이 만든 API를 테스트할 때 별도의 도구(Postman 등) 없이도 바로 실행해 볼 수 있음

4. 의존성 주입 (Dependency Injection)

Depends() 기능

  • 기능: DB 세션 연결이나 사용자 인증 로직을 함수마다 매번 적지 않고, 필요할 때만 끼워 넣는 기능
  • 예시: "이 API는 로그인을 해야만 쓸 수 있다"는 로직을 한 줄로 모든 함수에 적용할 수 있음

📊 FastAPI vs 다른 프레임워크 (기능 중심)

기능FastAPIFlaskDjango
비동기 지원기본 지원 (매우 빠름)제한적무거움
유효성 검사자동 (Pydantic)수동 구현 필요자체 Form 기능
API 문서자동 생성 (/docs)외부 라이브러리 필요외부 라이브러리 필요
속도최상 (Go/Node.js 급)보통무거움

🛠️ 이번 프로젝트(Dump It)에서 쓴 FastAPI 기능들

  • @app.post("/dump"): 고민을 제출하는 통로(라우팅)를 만들었음
  • CORSMiddleware: 로컬과 서버 간의 통신 보안 문제를 한 줄로 해결했음
  • BackgroundTasks: 고민을 버린 후 "비동기적으로" 삭제 예약을 거는 로직을 구현하게 해줬음

0개의 댓글