Closed hyeyoonS closed 1 month ago
미들웨어에 대해서 설명해주세요. 사용 경험이 있다면 구현 방식을 설명해주세요.
middleware는 요청(request)이 수행되기 이전에 실행되는 코드입니다. Request객체와 Response객체에 접근할 수 있어 Request에 따라 Response를 rewriting, redirecting, modifying 할 수 있습니다.
middleware는 캐쉬된 컨텐츠 이전에 실행되며 매 라우트마다 호출됩니다.
middleware를 사용하면 성능, 보안 그리고 사용자 경험을 향상시킬 수 있습니다.
get
getAll
delete
set
import { NextRequest, NextResponse } from "next/server"; export async function middleware(request: NextRequest) { const accessToken = request.cookies.get("accessToken"); const path = request.nextUrl.pathname; if (accessToken) { if (path === "/" || path.startsWith("/login") || path.startsWith("/signup")) return NextResponse.redirect(new URL("/home", request.url)); if (accessToken is expired) { //accessToken만료일경우 const response = NextResponse.next(); const newAccessToken = await getRefreshToken(); response.cookies.set("accessToken", newAccessToken); return response; } } export const config = { matcher: ["/((?!api|_next/static\\/?).*)"], };
middleware는 최상위 폴더에 middleware.ts(.js) 파일을 만들어 사용합니다. middleware 파일은 1개만 사용 가능합니다.
📎 질문
미들웨어에 대해서 설명해주세요. 사용 경험이 있다면 구현 방식을 설명해주세요.
✏ 구술 답변 키워드
✏ 서술 답변
Next.js에서 middleware의 역할
middleware는 요청(request)이 수행되기 이전에 실행되는 코드입니다. Request객체와 Response객체에 접근할 수 있어 Request에 따라 Response를 rewriting, redirecting, modifying 할 수 있습니다.
middleware는 캐쉬된 컨텐츠 이전에 실행되며 매 라우트마다 호출됩니다.
middleware를 사용하면 성능, 보안 그리고 사용자 경험을 향상시킬 수 있습니다.
활용 요소
주의할 점
middleware를 사용한 이유
get
getAll
delete
set
으로 쿠키를 조작할 수 있습니다.middleware는 최상위 폴더에 middleware.ts(.js) 파일을 만들어 사용합니다. middleware 파일은 1개만 사용 가능합니다.