본문 바로가기
Python/API

uvicorn 이란 무엇인가? (feat. ASGI)

by JONGSKY 2024. 4. 3.
728x90
SMALL

1. 글을 쓰게 된 계기

 

이전에 말했던 것처럼 gunicorn과 Uvicorn은 약속처럼 늘 같이 사용하고 있다.

 

그래서 이론적으로 다시 한번 정리하고자 글을 쓰게 되었다.

혹시 gunicorn에 대해서 궁금하신 분은 아래 링크를 참고하면 좋을 것 같다.

 

 

gunicorn은 무엇인가? (feat. WSGI)

1. 글을 쓰게 된 계기 이전에 작고 큰 API들을 많이 개발했었다. 이전에는 flask나 django를 많이 사용했다면 최근에는 오히려 더 빠르게 개발할 수 있는 fastapi를 자주 사용하곤 한다. 그럴 때마다 guni

jongsky.tistory.com

 

2. ASGI란 무엇인가?

 

ASGI(Asynchronous Server Gateway Interface)는 WSGI의 비동기 버전이라고 생각할 수 있다.

WSGI가 싱글 스레드 요청 처리에 초점을 맞춘 반면에, ASGI는 비동기 I/O를 통해 여러 요청을 동시에 처리할 수 있는 구조를 제공한다.

 

WSGI(Web Server Gateway Interface)의 진화된 형태로, 비동기 파이썬 웹 애플리케이션을 지원하기 위해 설계되었다.

 

https://jellybeanz.medium.com/cgi-wsgi-asgi-%EB%9E%80-cgi-wsgi-asgi-bc0ba75fa5cd

 

3. Uvicorn이란 무엇인가?

 

Uvicorn은 Python으로 작성된 ASGI 규격을 구현한 비동기 웹 서버이다.

ASGI 3.0 사양을 완벽하게 구현하며 이로 FastAPI, Django 등 python 웹 프레임워크와 원활하게 호환 가능하다.

 

굉장히 강력하고 유연한 ASGI 서버이며 특히 FastAPI와 같은 최신 Python 웹 프레임워크와 함께 많이 사용하며

프로덕트 환경에서도 웹서버로 사용하거나, Nginx 같은 리버스 프록시 뒤에 배치하여 사용가능하다.

728x90
LIST