




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 ๋ฅผ ๋ฌ์ ํ ๋จ๊ณ์ฉ ๋๋ฒ๊น
์ ํ๋ฉฐ ์๋ฌ๋ฅผ ์ก์๋ผ ์ ์์
์ข์ ๋ด์ฉ ๊ฐ์ฌํฉ๋๋ค~!