미들웨어 통과 기준

Next middleware matcher 처리

middleware는 모든 서버 로직의 대체물이 아니라 Edge runtime에서 matcher에 걸린 요청을 redirect, rewrite, header 조정으로 빠르게 요청을 먼저 분기하는 관문이다.

01

URL 매칭

config.matcher가 요청 pathname을 middleware 대상으로 포함하는지 본다.

범위 먼저
02

컨텍스트 읽기

cookie, header, geo, pathname처럼 Edge에서 가능한 정보만 사용한다.

limited API
03

분기 결정

인증 실패는 redirect, A/B나 locale은 rewrite, 통과는 NextResponse.next를 반환한다.

action
04

후속 route 처리

middleware 이후 app route, page, API route가 실제 렌더/응답을 이어간다.

not final app logic
/dashboard
세션 없으면 /login redirect 민감 페이지는 middleware와 서버 컴포넌트/handler에서 다시 권한을 확인한다.
defense in depth
/en/about
locale segment 유지 Accept-Language나 cookie로 기본 locale rewrite를 적용할 수 있다.
i18n
/_next/static
matcher에서 제외 정적 asset까지 middleware를 태우면 성능과 캐시 효율이 나빠진다.
exclude assets
/api/upload
무거운 body 처리 부적합 Edge middleware는 요청 본문 처리와 Node 라이브러리에 제약이 있다.
runtime limit

운영 점검

matcher 폭 너무 넓게 잡아 이미지/정적 파일 요청까지 통과하지 않는지 확인한다.
루프 redirect 대상도 matcher에 걸려 무한 redirect가 생기지 않아야 한다.
보안 middleware 통과만 믿지 말고 데이터 접근 지점에서도 권한을 재검증한다.