이벤트 뒤 이동은 router를 쓴다
저장 완료, 검색 조건 변경처럼 클라이언트 이벤트 결과에 따라 이동할 때 router API가 맞다.
권한과 canonical은 서버에서 결정한다
로그인 필요, 오래된 URL 정리처럼 서버가 판단해야 하는 이동은 redirect로 처리한다.
Link
선언형 이동
href가 보이고 브라우저/접근성 흐름과 잘 맞는다.
버튼처럼 보이더라도 목적지가 있으면 링크다.
router.push
명령형 이동
이벤트 처리 후 계산된 경로로 이동한다.
client component 안에서 사용한다.
redirect
서버 단절
렌더링을 중단하고 다른 위치로 보낸다.
권한 검사와 잘 맞는다.
replace
history 교체
뒤로 가기 스택에 남기지 않아야 할 이동에 쓴다.
로그인 후 리다이렉트 등에서 고려한다.
의미 · 권한 · history 점검
이동 선택
// Link: visible navigation
// router.push: after client event
// redirect: server-side decision