Uvicorn은 ASGI(Asynchronous Server Gateway Interface) 표준을 구현한 고성능 Python 웹 서버입니다.
asyncio 기반의 이벤트 루프를 사용하여 단일 프로세스 내에서 수천 개의 동시 연결을 효율적으로 처리할 수 있습니다.
flowchart TD
A[uvicorn.run] --> B{실행 모드 선택}
B -->|reload=True| C[ChangeReload Supervisor]
B -->|workers>1| D[Multiprocess Supervisor]
B -->|단일 프로세스| E[Server.run]
C --> F[자식 프로세스]
D --> G[워커 프로세스들]
F --> E
G --> E
E --> H[Config.load]
H --> I[Server.serve]
I --> J[startup]
J --> K[create_server]
K --> L[Protocol Factory]
L --> M[이벤트 루프]
M --> N{요청 도착}
N --> O[Protocol 인스턴스]
O --> P[RequestResponseCycle]
P --> Q[ASGI App 호출]
style A fill:#e1f5ff
style E fill:#ffe1e1
style M fill:#e1ffe1
style Q fill:#fff4e1