본문 바로가기
Research/Python

Python_WSGI? ASGI?

by RIEM 2023. 4. 10.
728x90

배경

2003년 이전 파이썬 진영에서는 수 많은 웹 어플리케이션 프레임워크가 존재했다. 이로 인해 새 유저가 프레임워크를 선택하는데 어려움을 겪는 문제들이 자주 발생했다. 이 상황에서 나온 것이 WSGI이다.

CGI

Common Gateway Interface는 서버 또는 다른 어플리케이션 언어들을 묶을 수 있는 공통의 표준 인터페이스다. 단점은 요청 시 어플리케이션을 새로 생성하기 때문에 비효율적이다.

WSGI

WSGI(Web Server Gateway Interface)는 요청 시 매번 실행되는 CGI의 단점을 보완하는 파이썬 진영에서 고안된 인터페이스다.

CGI의 경우 요청 정보를 환경 변수 등으로 처리하지만, WSGI에서는 객체로 처리한다. 인증이나 쿠기 관리는 WSGI middleware로 처리한다. 대표적인 WSGI로 gunicorn가 있다.

ASGI

비동기적 요청 처리에 약한 WSGI를 보완하기 위해 만들어진 표준 인터페이스가 ASGI다. ASGI는 동기성, 비동기성에 대한 표준을 모두 제공한다.

대표적인 ASGI 서버로 Uvicorn을 주로 사용한다.

728x90

댓글