History API 라우팅은 세 경계를 맞춘다
pushState만 호출하면 라우팅이 끝난 것이 아니다. URL로 복원되는 화면, 브라우저 기록, 새로고침 서버 처리가 함께 필요하다.
| 경계 | 책임 | 좋은 기준 | 위험 신호 |
|---|---|---|---|
| URL state | 공유·북마크 가능한 상태 표현 | path/query에 핵심 상태 보관 | URL로 화면 재현 불가 |
| history state | 뒤로가기용 작은 보조 상태 | 스크롤 위치 등만 저장 | 큰 앱 상태를 통째로 넣음 |
| render route | 현재 URL을 화면으로 변환 | push/pop에서 같은 로직 사용 | 진입 경로마다 화면이 다름 |
| server fallback | 직접 URL 접근 처리 | SPA entry를 반환 | 새로고침 404 |
History API의 본질은 주소창 꾸미기가 아니라 현재 화면을 URL로 다시 계산할 수 있게 만드는 것이다.