11/6

졸용·2025년 11월 6일

TIL

목록 보기
109/144

🔹 FastAPI란?

FastAPI는 Python으로 빠르고 현대적인 웹 API 서버를 만들 수 있도록 설계된 웹 프레임워크를 말한다.

특히 빠른 개발, 높은 성능, 자동 문서화를 강점으로 가지고 있다.



🔹 FastAPI의 주요 특징

🔸 고속 (Fast)

  • 이름처럼 정말 빠르게 동작한다.
  • 내부적으로 ASGI(Asynchronous Server Gateway Interface) 기반을 사용하고, Starlette(웹 부분)와 Pydantic(데이터 검증 부분) 덕분에 높은 처리량을 보여준다.
  • 성능 면에서 Node.js나 Go 기반 웹 프레임워크와 비슷하거나 더 빠른 경우도 있다.

🔸 자동 API 문서 생성

  • 개발한 API는 자동으로 Swagger UI나 ReDoc 같은 문서화 도구로 렌더링 된다.
  • 즉, /docs 경로로 접속하면 바로 API 문서를 확인하고 테스트도 할 수 있다.

🔸 타입 힌트 기반 개발

  • Python의 타입 힌트(type hints)를 적극 활용해서, IDE의 자동완성과 오류 검출이 편하고 정확해진다.
  • 예를 들어, 요청/응답 데이터 스키마를 정의할 때 Pydantic 모델을 사용하면, 그 자체로 유효성 검사를 자동으로 수행해준다.

🔸 비동기(Async) 지원

  • async/await 문법을 지원하기 때문에, 아주 많은 요청을 동시에 처리해야 하는 상황에서 효율적이다.

🔸 예시 코드

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"message": "Hello FastAPI!"}

@app.get("/items/{item_id}")
def read_item(item_id: int, q: str | None = None):
    return {"item_id": item_id, "q": q}

이를 실행 후 /docs로 접속하면 Swagger UI로 API를 직접 테스트할 수 있다.



🔹 FastAPI가 적합한 경우

  • RESTful API 서버 개발
  • 비동기 기반의 고성능 백엔드
  • Python 데이터 과학/ML 모델 API화
  • 마이크로서비스 (MSA) 구현
  • 빠른 프로토타입 작성 + 자동 문서화가 필요한 프로젝트


🔹 장점 요약

항목FastAPI 특징
성능매우 빠름 (Node.js, Go와 경쟁)
문서화자동으로 Swagger/Redoc 문서 제공
생산성타입 힌트 + 자동 검증으로 개발 효율 상승
비동기 지원async/await 기본 지원
생태계Starlette + Pydantic 기반
profile
꾸준한 공부만이 답이다

0개의 댓글