장고 Auth

김나현·2024년 9월 29일
1

#settings.py

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 로직

요청 (Request) 수신:
클라이언트(브라우저 등)로부터 요청이 들어오면, Django 애플리케이션은 이를 수신합니다.

미들웨어 (Middleware) 처리:
요청이 들어오면, Django는 설정에 정의된 미들웨어를 위에서 아래로 순차적으로 통과시킵니다. 각 미들웨어는 요청을 수정하거나, 요청을 중단하고 응답을 반환하거나, 다른 작업을 수행할 수 있습니다.
예를 들어, 인증 미들웨어는 사용자가 인증되어 있는지 확인하고, 그렇지 않은 경우 로그인을 요구할 수 있습니다.

뷰(View) 호출:
모든 미들웨어를 통과한 후, Django는 URL 패턴에 매칭되는 뷰 함수를 호출하여 요청을 처리합니다. 이 단계에서 비즈니스 로직이 수행됩니다.

응답 (Response) 생성:
뷰가 요청을 처리하고 응답 객체를 생성합니다.

응답 (Response) 미들웨어 처리:
응답 객체가 생성된 후, Django는 설정된 미들웨어를 다시 위에서 아래로 통과시킵니다. 이 과정에서 응답이 수정될 수 있습니다. 예를 들어, 캐시 미들웨어는 응답을 캐시할 수 있습니다.

클라이언트로 응답 전송:
모든 미들웨어를 통과한 후, 최종적으로 클라이언트에게 응답이 전송됩니다.

요약
요청이 들어오면: 미들웨어를 거치며 처리가 되고, 이후 URL과 매칭된 뷰로 전달됩니다.
응답이 나갈 때: 뷰에서 생성된 응답이 다시 미들웨어를 거쳐 최종적으로 클라이언트에게 전달됩니다.
이 과정에서 미들웨어는 요청 및 응답에 대한 전처리와 후처리를 수행하는 중요한 역할을 합니다.

미들웨어는 커스텀이 가능하다.

미들웨어의 역할을 한마디로 정의하자면, "요청과 응답 사이에서 처리 과정을 추가하거나 수정하는 중간 단계"라고 할 수 있습니다.

즉, 미들웨어는 요청이 뷰에 도달하기 전에 사전 처리나 검증을 수행하고, 응답이 클라이언트에게 전달되기 전에 후처리를 담당합니다.

분기처리는 특정 조건에 따라 코드의 흐름을 다르게 처리하는 것을 말합니다. 프로그래밍에서 주로 if, else 같은 조건문을 사용하여 상황에 맞게 다른 로직을 실행하는 방식입니다.

profile
참 쉽죠? #개발계의 밥아저씨를 꿈꿉니다⋆⁺₊⋆ ☾⋆⁺₊⋆

0개의 댓글