-
Django 배포에 사용되는 WSGI란 무엇일까?Django 2021. 6. 4. 15:25
서론
django 프로젝트 중 서버에 배포하는 연습을 하는데 배포 원리와 과정이 궁금해서 조사해본 페이지입니다.
WSGI란 무엇인가?
WSGI(Web Server Gateway Interface) 웹 서버 게이트웨이 인터페이스는 python의 기본적으로 사용되는 웹서버 프레임워크입니다. 표준 WSGI는 PEP 3333으로 자세히 설명되어있습니다.
WSGI가 필요한 이유
Django와 Flask 같은 웹 애플리케이션 프레임워크는 Web Server와 통신하게 되는데
흔히 웹 서버로 사용되는 Apach와 Tomcat은 Java 기반이므로 python코드를 읽을 수 없습니다.
그렇다고 Python 코드를 읽어주는 한정적인 웹 서버를 사용하기엔 비용 문제라던지 안정성 문제가 있을 수 있습니다.
따라서 최적의 솔루션은 모든 웹 서버와 Python 계열의 프레임 워크가 통신할 수 있게 해주는 미들웨어가 필요했습니다.
이에 대한 솔루션으로 나온 것이 WSGI(ASGI 등)입니다. 이하 내용은 PEP 333에 나와있습니다.
그 외에 Django관련으로 잘 설명되어 있는 이미지입니다.
그러나... WSGI의 작동 방식까지 알아봐야 할까?
제 의견은 새로운 웹 앱 프레임워크를 개발해야 할 때나 WSGI에 대해 자세하게 조사할 필요가 있습니다.
따라서 새로운 웹 애플리케이션 프레임워크를 개발하지 않는 거나 개인적인 궁금증에 의한 조사가 아니라면 WSGI 목적과 적용 방법에 대해서만 알면 될 것 같습니다.
작동방식 설명 내용이 필요하다면 하단 참조의 첫 번째 링크를 참조하시면 됩니다.
Reference
https://nitro04.blogspot.com/2020/01/django-python-asgi-wsgi-analysis-of.html
https://medium.com/analytics-vidhya/what-is-wsgi-web-server-gateway-interface-ed2d290449e
'Django' 카테고리의 다른 글
Django queryset distinct and sort (0) 2021.08.02 Django to AWS S3 업로드간 발생하는 I/O operation on closed file 해결방법 (0) 2021.06.21 Django OneToOneField로 연결된 model 자동 생성 (0) 2021.06.14 Django Filefield의 file에서 name 가져오기 (0) 2021.06.14 Django 개발 환경 Static, Media serving (0) 2021.06.01