Link와 useRouter는 사용자가 보는 이동인지 코드가 결정하는 이동인지로 나눈다
대부분의 내부 페이지 이동은 Link가 기본이고, 이벤트 처리가 끝난 뒤 이동해야 할 때만 useRouter를 꺼낸다.
| 시나리오 | 권장 방식 | 이유 | 대표 실수 |
|---|---|---|---|
| 상단 메뉴 | Link | 목적지가 명확히 보임 | onClick으로 단순 이동 처리 |
| 상품 목록 → 상세 | Link | 크롤링 가능한 href 유지 | id 없는 href 생성 |
| 검색 폼 제출 후 결과 | useRouter.push | 입력값 검증 뒤 이동 | 서버 컴포넌트에서 훅 사용 |
| 로그인 후 대시보드 | router.replace | 로그인 페이지로 뒤로가기 방지 | push로 히스토리 누적 |
| 외부 문서 링크 | a 태그 | 브라우저 기본 링크가 적합 | Link로 외부 이동까지 처리 |