민감한 콘텐츠일수록 서버에 가까운 위치에서 막고, 클라이언트는 사용성 보조에 둔다.
| 위치 | 막는 시점 | 주 용도 | A급 기준 |
|---|---|---|---|
middleware.ts |
라우트 진입 전 | 여러 경로의 공통 인증, admin prefix 보호 | matcher가 좁고 redirect 규칙이 명확하다. |
| 서버 컴포넌트 | HTML 생성 전 | 페이지별 세션, 역할, 소유권 검사 | 보호 데이터 조회 전에 세션을 먼저 확인한다. |
| 클라이언트 컴포넌트 | JS 로드 후 | 버튼 표시, 안내문, UX 보조 | 보안 경계가 아니라 화면 상태로만 사용한다. |
| 버튼 숨김만 사용 | 요청 차단 없음 | 사용 금지에 가까운 보조 장치 | 서버/미들웨어 검사와 함께 써야 한다. |