보호 라우트

Next 라우트 보호 위치

서버 컴포넌트, 미들웨어, 클라이언트 보호는 목적이 다르다. 콘텐츠 노출을 막을수록 서버 쪽으로 판단을 당긴다.

Server Component

페이지 렌더링 전에 세션을 확인한다. 보호 콘텐츠가 잠깐 보이는 문제를 줄인다.

getServerSession()

Middleware

여러 경로를 입구에서 공통 차단한다. 관리자 영역처럼 범위가 넓을 때 적합하다.

matcher: ["/admin"]

클라이언트 보호 기준

이미 렌더된 화면 안에서 UX를 보완한다. 보안의 주된 차단선으로 두지는 않는다.

useSession()
비공개 페이지: 서버에서 redirect
경로 묶음: 미들웨어 matcher
권한 표시: 클라이언트는 보조