FastAPI는 최근 가장 주목받는 Python 웹 프레임워크 중 하나로
특히 높은 성능과 빠른 개발 속도로 많은 개발자들이 선택하고 있다.
그렇다면 FastAPI는 왜 빠를까?
바로 ASGI + Starlette + 비동기 처리 구조
이 세 가지가 결합되면서 높은 성능을 만들어낸다.

ASGI (Asynchronous Server Gateway Interface)
= Python에서 비동기 웹 서버 표준

요청 1 → 처리 → 응답
요청 2 → 대기
하나씩 처리 (동기)
요청 1 처리 중
요청 2도 동시에 처리
요청 3도 처리
여러 요청을 동시에 처리 (비동기)
즉
WSGI = 한 줄 서서 기다리기
ASGI = 여러 줄 동시에 처리
Starlette = ASGI 기반 초경량 웹 프레임워크
비동기 처리 기본 지원
빠름
최소 기능만 제공 (가볍다)
FastAPI 내부에서 실제로 요청을 처리하는 엔진
FastAPI = 기능 (API 설계)
Starlette = 엔진 (요청 처리)
[Client]
↓
[Uvicorn (ASGI 서버)]
↓
[Starlette]
↓
[FastAPI]
↓
[비즈니스 로직]
따라서 FastAPI는 ...
동시에 많은 요청 처리 가능
I/O 작업 (DB, API 호출) 효율적
CPU 낭비 줄임
하나 끝나야 다음 실행
data1 = request_api()
data2 = request_api()
import asyncio
async def main():
await asyncio.gather(
request_api(),
request_api()
)
동시에 실행
즉
ASGI = 비동기 웹 서버 표준
Starlette = ASGI 기반 엔진
FastAPI = 그 위에서 동작하는 API 프레임워크
FastAPI는 ASGI 기반 Starlette 위에서 동작하여 비동기 처리를 통해 높은 성능을 제공한다