클라이언트 사이드 렌더링(CSR) 환경에서 페이지 이동 시 발생하는 데이터를 메모리에 일시적으로 보관하는 메커니즘을 의미.
브라우저가 매번 서버에 전체 페이지나 데이터를 요청하는 대신, 이전에 방문했던 경로의 정보를 보관하여 즉각적인 화면 전환을 제공하는 기술임.
Next.js의 App Router나 React Router 같은 현대적인 라이브러리에서 사용자 경험(UX) 향상을 위해 필수적으로 활용되는 기능.
Next.js의 경우 별도의 복잡한 설정 없이도 기본적으로 동작하지만, 캐시 제어를 위해 다음과 같은 접근 방식을 사용.
prefetch 속성을 통해 캐싱 여부 결정 // 기본적으로 prefetch는 true로 설정됨
<Link href="/dashboard" prefetch={true}>대시보드로 이동</Link>
router.refresh()를 사용하여 현재 경로의 캐시를 강제로 새로고침 const router = useRouter();
// 데이터 업데이트 후 호출하여 캐시 갱신 유도
router.refresh();
핵심 요약
- 사용자 경험 개선: 페이지 전환 속도를 획기적으로 높여 매끄러운 인터페이스 제공.
- 네트워크 자원 절약: 불필요한 서버 호출을 줄여 트래픽 비용 및 서버 부하 감소.
- 유효성 관리 필수: 캐시 데이터의 신선도를 유지하기 위한 적절한 무효화 전략 병행 필요.
출처: 한 입 크기로 잘라먹는 Next.js(v15)