Gunicorn/WSGI 서버 시리즈

anonymous·2021년 4월 21일
0

Gunicorn 시리즈

목록 보기
1/3

🎶 배경

운영을 위한 서비스를 이른 시일 내로 배포해야 한다는 생각 때문에 얕은 이해를 바탕으로 인터넷에 나와 있는 서비스 배포 방식을 따라만 했던 것 같아. 그래서 완전히 내 지식이 된 것 같지 않고 앞으로 더 복잡한 문제 해결을 위해서 기술 용어와 개념을 구체적으로 적어봐야겠다고 결정했어.

🐱‍👓 Gunicorn

우선 Gunicorn을 이해하기 전에 사용자가 내가 만든 웹 서비스를 브라우저로 접근하기 위해서 어떤 일이 일어나는지 살펴볼 거예요. 사용자가 상단에 있는 창에 https://www.naver.com 이렇게 치고 엔터 키를 누르면 웹 브라우저는 서버에 정적 페이지를 요청해요. 여기서 정적 페이지란 css, js, jpg, png 등 변하지 않는 성질을 가진 파일인데요. 정적 페이지만 갖고는 계속해서 변하는 데이터 처리가 어려워요. (물론 요즘은 정적 페이지만 생성하는 Jekyll 같은 프로그램도 있지만)

그래서 웹 브라우저는 동적 페이지 요청도 합니다!

동적 페이지는 내용이 계속 변하기 때문에 데이터베이스에 보관하고 데이터베이스에서 내용을 가져오는 방식이죠. 동적 페이지 요청을 할 때 바로바로 필요한 건 WSGI(Web server gateway interface~ 위스키.. 캬! )인데 파이썬으로 만든 Django 또는 Flask 같은 웹 프레임워크의 경우에 파이썬 프로그램을 호출해야 해요. 그런데 웹 서버는 파이선 프로그램을 어떻게 호출하는지 몰라요. 😢

그래서 웹 서버는 WSGI 서버를 호출하고 WSGI 서버는 파이썬 프로그램을 호출해서 동적 페이지 요청을 처리하는 거예요. 위스키의 대표적인 프로그램으로 uwsgi하고 Gunicorn(두구두구) 가 있는데요. Gunicorn에 대한 호평이 더 좋아서 필자는 Gunicorn을 사용했어요.

✨ 작동 원리

WSGI 서버는 웹 서버와 WSGI 애플리케이션 중간 위치하고요. 그래서 WSGI 미들웨어 또는 컨테이너라고 불리기도 해요. 하단에 있는 다이어그램을 보면 작동 순서를 더 잘 이해할 수 있을 거예요.

다음 순서에는 사용방법을 다룰 거예요!

참고

https://wikidocs.net/75556

profile
기술블로거입니다

0개의 댓글