<aside>
💡 출처 : Uvicorn doc
</aside>
Uvicorn이란?
최근까지 python에는 Asyncio 프레임 워크를 위한 저수준 서버 / 애플리케이션 인터페이스가 없었다. 이런 상황에서 Uvicorn이 등장했다. ubloop및 httptools를 사용하는 ASGI Web Server 이다. 현재는 Http/1.1를 지원한다.
ASGI란 ?
ASGI(Asynchronous Server Gateway Interface)는 비동기 Python 웹 서버이다.
Asyncio란?
- Python 표준 라이브러리와 함께 제공되는 비동시 I/O 프레임 워크이다.
- Asyncio는 async/await 구문을 사용하여 비동기(Asynchronous) 코드를 작성하는 라이브러이다.
- 대규모 I/O처리 및 복잡하게 설계된 서버 구조와 적합하다.
- 대기 시간으로 낭비하지 않고 그 시간 CPU가 다른 처리를 할 수 있도록 하는데 이를 흔히 non-blocking이라고 한다.
uvloop란?
- Cython으로 작성되었으며 libuv 위에 구축되어있다.
- libuv는 Nodejs에서 사용하는 고성능 다중 플랫폼 동기 I/O 라이브러리이다.
- uvloop 기반 asyncio의 성능은 Go 프로그램 성능에 가깝다.
- TCP 성능 측정

