๐[Django] settings.py ํํค์น๊ธฐ 2 - MIDDLEWARE
๋ฏธ๋ค์จ์ด๊ฐ ๋ญ๊น?
Django์ MIDDLEWARE๋ฅผ ์๊ธฐ ์ํด Django ๊ณต์ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ๋ค.
๋ฏธ๋ค์จ์ด
๋ Django์ ์์ฒญ/์๋ต ์ฒ๋ฆฌ์ ๋ํ ํํฌ ํ๋ ์์ํฌ
์ด๋ค.
๋ํ, Django์ ์
๋ ฅ/์ถ๋ ฅ์ ์ ์ญ์ ์ผ๋ก ๋ณ๊ฒฝํ๊ธฐ ์ํ ๊ฐ๋ณ๊ณ ์ ์์ค์ ํ๋ฌ๊ทธ์ธ
์์คํ
์ด๋ค.
๊ฐ ๋ฏธ๋ค์จ์ด์ ๊ตฌ์ฑ ์์๋ ํน์ ๊ธฐ๋ฅ์ ์ํํ๋ ๋ชฉ์ ์ ๊ฐ๊ณ ์๋๋ฐ, ์๋ฅผ ๋ค์ด Django์ AuthenticationMiddleware
์ธ์
์ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์๋ฅผ ์์ฒญ๊ณผ ์ฐ๊ฒฐํ๋ ๋ฏธ๋ค์จ์ด ๊ตฌ์ฑ ์์๊ฐ ํฌํจ๋์ด ์๋ค.
์ฆ, ๋ฏธ๋ค์จ์ด๋ ์๋ก ๋ค๋ฅธ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์๋ก ํต์ ํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์ํํธ์จ์ด์ธ ๊ฒ์ด๋ค.
Django MIDDLEWARE ํ์ฑํ
๋ฏธ๋ค์จ์ด ๊ตฌ์ฑ ์์๋ฅผ ํ์ฑํํ๋ ค๋ฉด Django์ settings.py์์ย [MIDDLEWARE
](https://docs.djangoproject.com/en/5.1/ref/settings/#std-setting-MIDDLEWARE) ๋ฆฌ์คํธ์ ์ถ๊ฐํ๋ฉด ๋๋ค.
ย [MIDDLEWARE
](https://docs.djangoproject.com/en/5.1/ref/settings/#std-setting-MIDDLEWARE) ์์ ๋ฏธ๋ค์จ์ด ๊ตฌ์ฑ ์์๋ ๋ฌธ์์ด(๋ฏธ๋ค์จ์ด ํฉํ ๋ฆฌ์ ํด๋์ค ๋๋ ํจ์ ์ด๋ฆ์ ๋ํ ์ ์ฒด Python ๊ฒฝ๋ก)๋ก ํํ๋๋ค.
django-admin startproject
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑํ ํ๋ก์ ํธ์ ๊ธฐ๋ณธ MIDDLEWARE ๋ชฉ๋ก์ ๋ค์๊ณผ ๊ฐ๋ค.
MIDDLEWARE = [
"django.middleware.security.SecurityMiddleware",
"django.contrib.sessions.middleware.SessionMiddleware",
"django.middleware.common.CommonMiddleware",
"django.middleware.csrf.CsrfViewMiddleware",
"django.contrib.auth.middleware.AuthenticationMiddleware",
"django.contrib.messages.middleware.MessageMiddleware",
"django.middleware.clickjacking.XFrameOptionsMiddleware",
]
Django๋ฅผ ์ค์นํ ๋๋ ์ฌ์ค ๋ฏธ๋ค์จ์ด๊ฐ ํ์ํ์ง ์์, MIDDLEWARE๊ฐ ๋น์ด์์ด๋ ๋๋ค.
ํ์ง๋ง, ์ต์ํ CommonMiddleware
๋ฅผ ์ฌ์ฉํ ๊ฒ์ ๊ฐ๋ ฅํ ๊ถ์ฅํ๋ค๊ณ ํ๋ค.
๋ฏธ๋ค์จ์ด๋ ๋ค๋ฅธ ๋ฏธ๋ค์จ์ด์ ์ข
์๋ ์ ์์ด, ๋ฏธ๋ค์จ์ด์ ์์๊ฐ ์ค์ํ๋ค!
์๋ฅผ ๋ค๋ฉด AuthenticationMiddleware
๋ ์ธ์ฆ๋ ์ฌ์ฉ์๋ฅผ ์ธ์
์ ์ ์ฅํ๋ฏ๋ก SessionMiddleware
๋ค์์ ์คํ๋์ด์ผ ํ๋ค.
default MIDDLEWARE ํํค์น๊ธฐ!
- django.middleware.security.SecurityMiddleware
- django.contrib.sessions.middleware.SessionMiddleware
- django.middleware.common.CommonMiddleware
- django.middleware.csrf.CsrfViewMiddleware
- django.contrib.auth.middleware.AuthenticationMiddleware
- django.contrib.messages.middleware.MessageMiddleware
- django.middleware.clickjacking.XFrameOptionsMiddleware
์ฐธ๊ณ ์๋ฃ
[Middleware | Django documentation](https://docs.djangoproject.com/en/5.1/topics/http/middleware/) |
๋๊ธ๋จ๊ธฐ๊ธฐ