본문 바로가기
IT/PYTHON

WSGI란 ? GUNICORN?

by 골든크랩 2021. 10. 28.
728x90
반응형

개인적인 생각은...IT 기술은 너무 빠르게 발전하고 있다...AA 로 성장하기 위해서, 기존 학습량보다 훨씬 방대한 량의 HW, SW, NETWORK 등의 기술을 이해하기위한 노력이 필요해 보인다.

게다가, AI, 빅데이터 영역으로 확장은...학부시절의 통계에 대한 깊은 이해가 필요하고..

공부에 끝이 없구나...ㅠㅠ...

 

WSGI 가 뭔지 알아보니 아래와 같은 글들을 발견했다.

 

====================================================================

아래글 출처 : https://this-programmer.tistory.com/345

 

gunicorn은 WSGI의 일종이다. 그렇다면 WSGI는 뭘까? CGI의 일종이다. 그렇다면 CGI는 뭘까? 그렇다. gucniron이 뭐하는 놈인지 이해하기 위해선 CGI라는 것부터 이해해야 한다.
 CGI를 풀어써보면 Common Gateway Interface라고 하는데 한국말로 직역하자면 "공용 경로 인터페이스"라고도 할 수 있다. 영어로 된 단어를 억지로 직역하려니 느낌이 이상한데 이는 웹의 역사와 함께 이해하면 쉬울 것이다.
 웹은 원래 정적인 정보의 나열이 전부였다. 워낙에 웹이 발전하다보니 오히려 정적인 웹을 찾기 힘든 추세가 되어 잘 와닿지 않을 수 있는데 회원가입이나 Contact Form도 따로 없는, 그저 할 수 있는게 볼 수 있는 것밖에 없는 회사소개 페이지를 떠올리면 될 것이다. 그렇게 단순 정보의 나열뿐이었던 단방향 형태의 웹은 점점 수요가 다양해지고 당연스럽게 동적인 웹으로서의 발돋음을 하게 되는데 그 과정에서 사용자들이 입력하는 데이터를 처리할 로직이 필요했다. 예를 들어 내가 회원가입을 하면 회원 리스트에 내 이름이 올라가는 것처럼 말이다.
 이것을 처리하기 위해 개발자들은 각자 자신이 사용하던 언어를 사용하기 시작했는데 언어가 제각각이니 규격도 제각각 아니겠는가. 하지만 이를 "공통적인 형태"로 주고받기 위해 만든 것이 바로 CGI이다. 그러니까 이런저런 언어들이 사용자들의 다양한 요청을 이해할 수 있게 "이 문을 지나면 이러한 형태가 됩니다"하고 정해놓은 규약이자 프로그램이 바로 CGI라는 것이다.
 위의 예제로 설명하자면 회원가입한 자신의 목록을 다시 조회하기 위해선 html만으로는 어림없다. 서버 내부에서 데이터를 저장하고 조회하는 일련의 기능이 있어야 하는데 이러한 사용자의 http request가 webserver를 통해 서버 내부로 들어오고 CGI를 통해 일관된 형태로 해석되어 응용 프로그램에 전달돼 사전 작성해놓은 로직에 따라 html을 다시 그래내어 webserver의 http response를 통해 사용자에게 되돌아가는 것이다. 그러니까 결론적으로 말하자면 CGI는 웹서버와 응용프로그램 사이의 동시통역사라고 할 수 있다.

 

그렇다면 WSGI는 무엇일까? WSGI는 풀어 쓰면 Web Server Gateway Interface이다. 딱 봐도 "웹을 위해 만들어진 인터페이스구나" 라는 걸 알 수 있는데 틀린 말은 아니지만 애석하게도 파이썬 스크립트가 웹 서버와 통신하기 위해 만들어진 인터페이스이다. 파이썬이라는 단어는 없지만 파이썬을 위해 만들어진 것이라는 의미이다. 위에서 CGI를 설명한 것과 같이 웹서버에서의 요청을 해석하여 파이썬 응용프로그램에 던지는 역할을 한다.

 

 

아래글 출처 : http://blog.hwahae.co.kr/all/tech/tech-tech/5567/

원문을 대충 대충 정리해서 WSGI 와 GUNICORN 에 대해 기록을 남김...

 

 

 WSGI란 python으로 작성된 웹 어플리케이션과 python으로 작성된 서버 사이의 약속된 인터페이스 또는 규칙이라 보시면 됩니다. 간단히 말하면 WSGI 서버와 웹 어플리케이션이 WSGI의 규칙에 따라 작성되면, 웹 어플리케이션 입장에서는 내부 구현과 상관 없이 자유롭게 WSGI 서버를 골라서 사용할 수 있는 유연성을 제공합니다.

 

Django Framework 기반의 백엔드 어플리케이션을 위한 WSGI 서버로 gunicorn을 채택하여 사용해오고 있습니다. 

gunicorn은 WSGI(Web Server Gateway Interface) 서버입니다. 

발음은 지유니콘 또는 구니콘이라고 읽음(위키백과참조) https://en.wikipedia.org/wiki/Gunicorn

 

 

 

 

 

 

728x90
반응형

'IT > PYTHON' 카테고리의 다른 글

numpy 와 python 버전이 안 맞을때  (0) 2022.03.31
Celery?  (0) 2021.10.28
f-strings (문자열 만들기)  (0) 2021.10.01
윈도우즈10 에서 scrapy 설치하기  (0) 2021.09.09
python 개발환경구축(우분투,VS Code)  (0) 2021.05.10

댓글