스킬 정리 및 리팩토링
This commit is contained in:
33
proxy.ts
Normal file
33
proxy.ts
Normal file
@@ -0,0 +1,33 @@
|
||||
import { type NextRequest } from "next/server";
|
||||
import { updateSession } from "@/utils/supabase/middleware";
|
||||
|
||||
/**
|
||||
* [Next.js Proxy 진입점]
|
||||
*
|
||||
* 웹사이트의 모든 요청은 이 함수를 가장 먼저 거쳐갑니다.
|
||||
* 여기서 로그인 여부를 체크하거나 세션을 갱신합니다.
|
||||
*/
|
||||
export async function proxy(request: NextRequest) {
|
||||
// 방금 만든 updateSession 함수를 호출하여 쿠키/세션을 관리합니다.
|
||||
return await updateSession(request);
|
||||
}
|
||||
|
||||
/**
|
||||
* [Proxy 설정]
|
||||
*
|
||||
* Proxy가 '어떤 경로'에서 실행될지, '어떤 경로는 무시할지' 정하는 규칙입니다.
|
||||
*/
|
||||
export const config = {
|
||||
matcher: [
|
||||
/*
|
||||
* 아래 정규식(Regex)은 다음 파일들을 제외(exclude)하고 모든 요청을 Proxy로 보냅니다:
|
||||
* - _next/static (이미 빌드된 정적 파일들)
|
||||
* - _next/image (이미지 최적화 API)
|
||||
* - favicon.ico (파비콘 아이콘)
|
||||
* - .svg, .png, .jpg 등 이미지 파일들
|
||||
*
|
||||
* 즉, html 페이지 요청이나 데이터 요청에만 Proxy가 작동하도록 하여 성능을 최적화합니다.
|
||||
*/
|
||||
"/((?!_next/static|_next/image|favicon.ico|.*\\.(?:svg|png|jpg|jpeg|gif|webp)$).*)",
|
||||
],
|
||||
};
|
||||
Reference in New Issue
Block a user