Uvicorn
Uvicorn은 ASGI 서버 구현체로 애플리케이션 서버의 근간이 되는 서버 구현체입니다. 그렇다고 해서 FastAPI가 Starlette에 의존하듯이 Starlette이 Uvicorn을 의존하는 것은 아닙니다. Starlette은 Uvicorn이 아니더라도 ASGI와 호환하는 서버가 있으면 해당 서버 구현체를 사용할 수 있습니다. 다만 FastAPI가 Uvicorn을 권장하고 선호하는 것일 뿐입니다.
▼ 표 3-2 Starlette과 Uvicorn 역할 비교
|
특성 |
Starlette |
Uvicorn |
|
주요 역할 |
웹 프레임워크 |
웹 서버 |
|
계층 |
애플리케이션 레벨 |
서버 레벨 |
|
주요 기능 |
라우팅, 미들웨어, 웹 소켓 |
HTTP 요청 처리, 프로세스 관리 |
|
사용 시점 |
앱 로직을 구현할 때 |
앱을 실행할 때 |
|
FastAPI와 관계 |
FastAPI 기반 |
FastAPI 실행 환경 |
|
확장성 |
미들웨어, 라우터 확장 |
워커, 프로세스 확장 |
|
성능 특성 |
비동기 요청 처리 |
고성능 단일 스레드 |
|
설정 방식 |
코드 |
명령줄, 설정 파일 |
|
디버깅 |
상세 오류 정보 |
서버 로그 |
|
보안 |
CORS, 인증 |
SSL/TLS, 프록시 |