[Interface] WSGI, ASGI
๐ก WSGI (Web Server Gateway Interface) ๐ก
ํ์ด์ฌ ์น ์ดํ๋ฆฌ์ผ์ด์ ๊ณผ ์น ์๋ฒ ๊ฐ์ ํ์ค ์ธํฐํ์ด์ค
์ฃผ๋ก HTTP ํ๋กํ ์ฝ์ ๋ค๋ฃจ๋ ๋ฐ ์ฌ์ฉ
๋ค๋ฅธ ํ๋กํ ์ฝ์ ์ง์ํ๊ธฐ ์ํด ๋ณ๋์ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ์ด ํ์
WSGI ์๋ฒ
WSGI ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ์น ์๋ฒ
WSGI ์๋ฒ์๋ Gunicorn, uWSGI ๋ฑ์ด ์์
* WSGI ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ค *
- WSGI๋ฅผ ์ค์ํ๋ ์น ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ์ฌ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๋ค
๋ฐ๋ผ์ WSGI๋ฅผ ์ง์ํ๋ ์น ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ๋ฉด ํด๋น ํ๋ ์์ํฌ์ ๊ท์น๊ณผ ๊ท๊ฒฉ์ ๋ฐ๋ผ ์ดํ๋ฆฌ์ผ์ด์ ์ ์์ฑํ๊ณ
์ด๋ฅผ ์น ์๋ฒ์ ์ฐ๊ฒฐํ์ฌ ์คํํ ์ ์์
๐ก ASGI (Asynchronous Server Gateway Interface) ๐ก
ํ์ด์ฌ์ ๋น๋๊ธฐ ์น ์ดํ๋ฆฌ์ผ์ด์ ๊ณผ ์น ์๋ฒ๊ฐ์ ํ์ค ์ธํฐํ์ด์ค
WSGI๋ณด๋ค ํจ์จ์ ์ธ ์ฒ๋ฆฌ๋ฅผ ์ ๊ณต
HTTP ์ธ ๋ค์ํ ํ๋กํ ์ฝ ์ง์
์น ์ดํ๋ฆฌ์ผ์ด์ ํ๋ ์์ํฌ(FastAPI, Django ๋ฑ) โ ์น ์๋ฒ ๊ฐ์ ํต์ ์ ๋ด๋น
ASGI ์๋ฒ
ASGI ์ดํ๋ฆฌ์ผ์ด์ (ASGI ์ธํฐํ์ด์ค๋ฅผ ๋ฐ๋ฅด๋ ์น ์ดํ๋ฆฌ์ผ์ด์ =FastAPI, Django ๋ฑ)์ ์คํํ๊ธฐ ์ํ ์๋ฒ
ASGI ์๋ฒ์๋ Uvicorn์ด ์์
๐ก ์น ํ๋ ์์ํฌ ๋น๊ต ๐ก
Django
์ด๊ธฐ ๋ฒ์ ์ WSGI์ ๋ง์ถฐ์ง
3.1 ์ดํ ๋ฒ์ ๋ถํฐ๋ ASGI๋ฅผ ํตํด ๋น๋๊ธฐ ์ฒ๋ฆฌ ๊ฐ๋ฅ
Starlette
ASGI ๊ธฐ๋ฐ ๊ฒฝ๋ ์น ํ๋ ์์ํฌ
FastAPI
Starlette ํ๋ ์์ํฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ๋ฐ (Starlette ๊ธฐ๋ฅ ํ์ฅ)
Flask
WSGI ์ง์
Python์ ๊ธฐ๋ณธ ๋ชจ๋์ธ Werkzeung, Jinja2 ๊ธฐ๋ฐ์ผ๋ก ๊ฐ๋ฐ
Sanic
ASGI ๊ธฐ๋ฐ
๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฅผ ๊ฐ์กฐํ๋ ์น ํ๋ ์์ํฌ
'WebFramework' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Web] SSR๊ณผ CSR (0) | 2023.07.25 |
---|