FastAPI

정지웅·2025년 4월 24일

FastAPI framework, high performance, easy to learn, fast to code, ready for production

FastAPI는 Node.js와 Go만큼 빠릅니다. 이는 Starlette와 Pydantic을 통해서 가능합니다.

1. Starlette

Starlette is a lightweight ASGI framework/toolkit, which is ideal for building async web services in Python.

Starlette은 경량화된 ASGI 프레임워크입니다. 웹소켓, backgroud tasks 등 다양한 기능을 지원하고, FastAPI는 이 Starlette을 상속받아 확장한 프레임워크입니다. FastAPI가 ASGI 프레임워크가 되는 이유도 바로 이 Starlette을 상속받았기 때문입니다. Starlette는 라우팅, 요청/응답처리, 미들웨어 웹소켓 등 필수요소만 있어 낮은 레벨에서 빠르게 동작하고 불필요한 오버헤드가 없습니다.

2. Pydantic

Pydantic is the most widely used data validation library for Python.

Pydantic은 데이터 유효성 검사, 파싱, Response 모델을 직렬화 하는 등의 데이터 관련된 역할을 수행합니다. Pydantic은 Cython기반으로 작성되어 있어 JSON -> Python 객체 변환 속도가 빠릅니다.

Cython은 Python 문법을 그대로 사용하면서 변수에 정적 타입 지정을 통해 C 코드로 변환하고 컴파일해서 실행 속도를 높이는 도구다. 파이썬은 인터프리터기 때문에 모든 변수가 동적으로 확인되고, 실행 중에 내부적으로 가이지 컬렉팅 등이 실행되는 등 느린 단점을 C 코드로 변환, 컴파일을 통해 해결함.

0개의 댓글