본문 바로가기
CS/Interview

Gunicorn이란?

by Shark_상어 2023. 3. 25.
728x90

📌 Gunicorn

Gunicorn이란 python WSGI의 일종이다.

 

📌 WSGI가 무엇인지?

정의를 보면, "파이썬 어플리케이션(파이썬 스크립트)이 웹 서버와 통신하기 위한 인터페이스"라고 한다.

와닿지 않는다. 그래서 뭐라는거지?

 

예전 포스팅에서 한번 Web서버와 WAS 서버의 차이에 대해 서술한 적이 있다. https://wlgustlra.tistory.com/132

Web서버는 정적인 컨텐츠를 처리하고, WAS 서버는 동적인 컨텐츠를 처리한다고 말이다.

 

그렇다면 우리가 작성하는 정적인 파이썬 코드 덩어리가 이러한 컨텐츠들을 어떻게 처리하는걸까?

이 코드덩어리가 HTTP 요청을 받기 위해서는 파이썬 코드를 HTTP 형식으로 바꿔주는 작업이 필요한데

 

이를 동작하게 하는 기술이 CGI(Common Gateway Interface)이다.

 

하지만 CGI의 단점이 있었는데,

요청이 들어올때마다 파이썬 코드를 처음부터 실행한다는 것이었다. (속도.... 필수인데.. 너무 느리잖아)

 

그렇다보니 효율도 떨어지고 서버에서도 응답속도가 현저히 떨어질 수 밖에 없었고 이를 보완한것이 WSGI(Web Server Gateway Interface)라고 한다. Gunicorn은 이 WSGI를 구현한 패키지 중 하나라고 이해하면 될 듯하다.

 

WSGI 순서도

다음은 지금까지 설명한 내용을 그림으로 나타낸 것이다.

이미지 출처:https://wikidocs.net/75556

웹 브라우저의 정적 페이지 요청은 웹 서버가 처리하고, 동적 페이지 요청은 [WSGI 서버 → WSGI 애플리케이션]으로 처리한다.

728x90

'CS > Interview' 카테고리의 다른 글

WAS와 Web Server 차이  (0) 2023.03.09
쿠버네티스 란 무엇인가??  (0) 2023.03.07
Redis는 무엇인가??  (0) 2023.02.19
[Python] 병렬처리(Multiprocessing)를 통한 연산속도 개선  (0) 2023.02.18
[Python] 'is'와 '=='의 차이  (0) 2023.02.16