FastAPI가 빠른 이유: ASGI, Starlette, Uvicorn

예린·2026년 4월 20일

FastAPI

목록 보기
2/4

FastAPI는 최근 가장 주목받는 Python 웹 프레임워크 중 하나로
특히 높은 성능과 빠른 개발 속도로 많은 개발자들이 선택하고 있다.

그렇다면 FastAPI는 왜 빠를까?

바로 ASGI + Starlette + 비동기 처리 구조

이 세 가지가 결합되면서 높은 성능을 만들어낸다.

ASGI란?

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

기존 방식 (WSGI)

요청 1 → 처리 → 응답
요청 2 → 대기

하나씩 처리 (동기)

ASGI 방식

요청 1 처리 중
요청 2도 동시에 처리
요청 3도 처리

여러 요청을 동시에 처리 (비동기)


WSGI = 한 줄 서서 기다리기
ASGI = 여러 줄 동시에 처리

Starlette란?

Starlette = ASGI 기반 초경량 웹 프레임워크

비동기 처리 기본 지원
빠름
최소 기능만 제공 (가볍다)

FastAPI 내부에서 실제로 요청을 처리하는 엔진

FastAPI = 기능 (API 설계)
Starlette = 엔진 (요청 처리)

FastAPI 구조 이해

[Client]

[Uvicorn (ASGI 서버)]

[Starlette]

[FastAPI]

[비즈니스 로직]

  1. 클라이언트 요청
  2. Uvicorn (ASGI 서버) 받음
  3. Starlette가 처리
  4. FastAPI 로직 실행
  5. 응답 반환

따라서 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 위에서 동작하여 비동기 처리를 통해 높은 성능을 제공한다

0개의 댓글