핵심 답변
📌 Middleware는 사용자의 요청이 실제 페이지에 도달하기 전에 서버에서 실행되는 코드입니다. 프로젝트 루트의
middleware.ts 파일에 정의합니다.주요 사용 사례:
인증/인가: 로그인 여부 확인 후 리다이렉트
A/B 테스트: 사용자별로 다른 페이지 제공
지역화(i18n): 언어 설정에 따라 라우트 변경
요청 헤더 수정: 커스텀 헤더 추가
예시 코드
typescript
// middleware.ts
import { NextResponse } from 'next/server';
import type { NextRequest } from 'next/server';
export function middleware(request: NextRequest) {
const token = request.cookies.get('token');
if (!token) {
return NextResponse.redirect(new URL('/login', request.url));
}
return NextResponse.next();
}
export const config = {
matcher: ['/dashboard/:path*'], // 적용 경로 설정
};핵심 용어
📌 Edge RuntimeNext.js Middleware는 Edge Runtime에서 실행됩니다. 사용자와 가까운 서버에서 실행되어 응답 속도가 빠릅니다.
📌 matcherMiddleware가 실행될 경로를 지정하는 설정입니다. 모든 경로에 적용하면 성능에 영향을 줄 수 있어 필요한 경로만 지정합니다.