데코레이터(@) 자체는 파이썬의 문법이지만, 그 안에 담긴 강력한 자동화 기능들(유효성 검사, 문서화 등)이 바로 FastAPI의 핵심 기능입니다.
@)와 라우팅@app.get("/") 같은 코드는 파이썬의 데코레이터 문법을 활용한 FastAPI의 라우팅 기능입니다.
@는 함수를 받아서 기능을 추가하는 '장식자'일 뿐임/dump)로 들어오는 HTTP 요청을 어떤 파이썬 함수와 연결할지 결정합니다. Flask 등 다른 프레임워크도 쓰지만, FastAPI는 이를 비동기(async def)와 결합해 훨씬 빠르게 처리GET 요청 확인, URL / 검사, 에러 처리를 해줌data: Item)를 적어주면, FastAPI가 들어오는 데이터가 숫자인지 문자열인지 알아서 검사합니다.422 Unprocessable Entity 에러를 뱉어줌서버를 띄우고 /docs에 접속했을 때 보이는 API 명세 페이지
Depends() 기능
| 기능 | FastAPI | Flask | Django |
|---|---|---|---|
| 비동기 지원 | 기본 지원 (매우 빠름) | 제한적 | 무거움 |
| 유효성 검사 | 자동 (Pydantic) | 수동 구현 필요 | 자체 Form 기능 |
| API 문서 | 자동 생성 (/docs) | 외부 라이브러리 필요 | 외부 라이브러리 필요 |
| 속도 | 최상 (Go/Node.js 급) | 보통 | 무거움 |
Dump It)에서 쓴 FastAPI 기능들@app.post("/dump"): 고민을 제출하는 통로(라우팅)를 만들었음CORSMiddleware: 로컬과 서버 간의 통신 보안 문제를 한 줄로 해결했음BackgroundTasks: 고민을 버린 후 "비동기적으로" 삭제 예약을 거는 로직을 구현하게 해줬음