WSGI๋ก ๋ํ์ ์ธ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ ์์
๊ฒฐ๊ตญ WSGI๋ ์น ์๋ฒ์ ์ ํ๋ฆฌ์ผ์ด์ ์ฌ์ด์ ๋ฏธ๋ค์จ์ด ์ญํ ์ ํ๋ฉฐ ๊ธฐ์ ์ ์ผ๋ก๋ ์น ์๋ฒ๋ WSGI์ ๋ํ ์๋ ์ฝ๋๊ฐ ํ์ํ๊ณ , ์ ํ๋ฆฌ์ผ์ด์ ๋ํ WSGI์ ๋ํ ์๋ ์ฝ๋๊ฐ ํ์ํ Client-Server Model์ ์์ฉํ ๊ฒ
Tip! ์ถ๊ฐ ๋ด์ฉ
django-admin startproject
๋ฅผ ํตํด ์๊ธฐ๋ ๋ฉ์ธ ํ๋ก์ ํธ์ ๋๋ ํ ๋ฆฌ์๋ asgi.py
์ wsgi.py
๊ฐ ์์ฑ๋จrequest/response
ํ์์ ๊ณ ์ ๋์ด ์์request/response
๋ก ์ด๋ฃจ์ด์ง WSGI์ ๋ฌ๋ฆฌ ASGI๋ send/receive
๋ก ๋์ด ์์ด ๋น๋๊ธฐ์ ์ผ๋ก ์ด๋ฒคํธ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ฐ, ๊ทธ๋ก์ธํด ์ฌ๋ฌ ์ก์์ ์ด๋ฒคํธ๊ฐ ๊ฐ๋ฅasgiref
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํตํด ASGI ์๋ฒ ๋ด์์ WSGI๋ฅผ ์คํ ํ ์๋ ์๋ค๊ณ ํจChannels
๊ธฐ๋ฅ์ ์ ๊ณตํ๊ณ ์์ผ๋ฉฐ, ์ด๊ฒ์ ASGI ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค์ด ์ง ๊ฒTip! ์ถ๊ฐ ๋ด์ฉ
gunicorn
, uwsgi
๋ฑ์ด ์์gunicorn
๋ง ์์ด๋ http request๋ฅผ ์ฒ๋ฆฌํ ์ ์์ง๋ง, gunicorn
์๋ ์๊ณ nginx
์๋ ์๋ ๊ธฐ๋ฅ ๋๋ฌธ์ ๋์ ์ฐ๋ํด์ ์djangodml media
, css
๋ฑ staticํ ์์ฒญ์ ์ง์ ์ฒ๋ฆฌํ๊ณ ๋ค์ด๋๋ฏนํ ์์ฒญ์ gunicorn
์ ๋๊นgunicorn
์ผ๋ก ๋์ด๊ฐ๋ ์๊ฐ ์์ ์ฌ์ฉ์ด ํฌ๊ฒ ๋์ด staticํ ์์ฒญ์ ๋ฐ๋ก ์ฒ๋ฆฌํด์ฃผ๋๊ฒ ์ค์nginx
๋ C๋ก ๊ตฌํ๋์ด ์๋์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ ์ธก๋ฉด์์ ๋ฐ์ด๋จrunserver
๋ ๋จ์ผ ํ๋ก์ธ์ค, ๋จ์ผ ์ฐ๋ ๋๋ผ nginx
์์ ์๋ฌด๋ฆฌ ๋ง์ ์์ฒญ์ ์ฒ๋ฆฌํด๋ ๊ฒฐ๊ตญ Django ๋ด์ฅ ์๋ฒ์์ ๋ณ๋ชฉ์ด ์๊นprint()
๋ฑ์ผ๋ก breakpoint ๋ฅผ ๋ฌ์ ํ ๋จ๊ณ์ฉ ๋๋ฒ๊น
์ ํ๋ฉฐ ์๋ฌ๋ฅผ ์ก์๋ผ ์ ์์