Protected routes

보호 페이지는 렌더링 전후 중 어디서 막을지 먼저 고른다

서버 검사는 화면 노출을 막고, 클라이언트 검사는 이미 그려진 화면에서 이동을 처리한다.

사용자가 /dashboard 또는 /admin 요청

서버에서 먼저 판단

관리자 페이지나 민감한 데이터 화면에 적합하다.

  1. 1getServerSession으로 세션 확인
  2. 2세션이 없으면 렌더링 전에 redirect
  3. 3통과한 사용자에게만 보호 콘텐츠 전달

클라이언트에서 판단

버튼 상태나 가벼운 안내 UI에 적합하다.

  1. 1useSession으로 상태를 읽음
  2. 2로딩 중에는 보호 화면을 숨김
  3. 3비로그인 상태면 로그인 화면으로 이동

추천: 실제 보호는 서버에서 먼저 막고, 클라이언트는 버튼과 안내 상태를 보조한다.