middleware와 Django

주영광·2025년 4월 24일
0

Django에는 middleware라는 개념이있다. 이건 fastapi에도 있고

다른 프레임워크에도 다른 이름으로 같은 기능을 하는 것들이 많다.

프레임워크 | 이름 | 역할
Django | Middleware | 인증, CSRF, 세션 처리 등
Express (Node.js) | Middleware (app.use()) | 요청 로그, CORS 처리 등
Spring (Java) | Filter / Interceptor | 인증, 권한 검사, 로깅
Laravel (PHP) | Middleware | 사용자 인증, 라우팅 제한
FastAPI | Middleware | CORS, 로그, 에러 처리 등
Ruby on Rails | Rack Middleware | 요청 전후 처리

장고에서 실제 쓰는 미들웨어를 보면

MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware',
'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',
'allauth.account.middleware.AccountMiddleware',
]

cors, https, session기반 로그인/로그아웃, csrf, clickjacking 방지 등등

생각보다 많은 기능을 한다.

간단히 표현하면 클라이언트와 view 사이에서 요청을 잠시 hook하여 요청에 다양한 효과를 부과한다음 전달하는 기능이라고 이해하면 될듯하다.

profile
오직 실력만이 나를 증명한다.

0개의 댓글