wsgi
-
[Django] Django의 동작 원리와 과정 파헤치기파이썬/Django 2021. 10. 20. 09:38
Django 동작과정 WSGI Application 생성 settings에서 정의한 settings.MIDDLEWARE 로드 WSGI(uwsgi, gunicorn)에서 applcation call WSGI environ(request data를 담은 딕셔너리)과 함께 WSGIRequest 인스턴스 생성 미들웨어 체인에 WSGIRequest 인스턴스와 함께 call 미들웨어를 모두 거쳐간 후 최종적으로 view에 request가 전달되어 개발자가 정의한 로직을 거친 후 최종적으로 Response 반환 상세 보기 우리가 만든 장고 프로젝트 wsgi.py의 application 변수에는 callable한 WSGIHandler의 인스턴스가 반환된다. 이때 settings에 정의한 미들웨어를 로드한다. WSGi가..
-
Gunicorn 동작 과정 알아보기파이썬/Django 2021. 10. 10. 14:15
파이썬 웹 애플리케이션과 웹 서버 사이에 위치하는 Gunicorn 이라는 WSGI가 어떻게 동작하는지 알아본다. WSGI? Web Server Gateway Interface의 약자로 파이썬의 WAS이다. 어떻게 Gunicorn이 내 장고 애플리케이션을 동작시키는지? WSGI서버와 이 WSGI로 동작하기 위한 애플리케이션 사이에 지켜지는 hook들이 있는데 이 hook을 가지고 wsgi서버가 애플리케이션을 실행시킴 import os from django.core.wsgi import get_wsgi_application os.environ.setdefault("DJANGO_SETTINGS_MODULE", "django_defaults.settings") application = get_wsgi_appli..
-
ASGI(Asyncronous Server Gateway Interface)란?파이썬/Etc. 2021. 5. 8. 15:43
WSGI가 나오게 된 동기 파이썬은 현재 다양한 웹 애플리케이션(django, flask, fast api 등)을 자랑한다. 그러나, 이러한 폭 넓은 선택들은 새로운 파이썬 사용자에게 문제가 될 수 있다. 일반적으로 웹 프레임워크를 선택하면 사용가능한 웹 서버의 선택이 제한되고 그 반대도 마찬가지이기 때문이다. 따라서 WSGI는 웹 서버와 웹 프레임워크간의 구현에 구애받지 않는 인터페이스로 만들어져 이식가능한 웹 애플리케이션 개발을 할 수 있다. WSGI의 한계 웹소켓을 사용할 수 없다. wsgi.websocket을 사용할 수 있으나 표준화되지 않았다. HTTP/2(Concurrency) 동시성을 적용할 수 없다. Can't use async and await: 파이썬의 비동기를 사용할 수 없다. 비동기..