10.4
Client-side Router Cache
Client-side Router Cache는 Next.js에서 레이아웃, 로딩 상태, 페이지로 분할된 route segment의 RSC Payload를 저장하는 메모리 기반의 클라이언트 측 라우터 캐시입니다. Router Cache를 통해 사용자가 route를 탐색할 때 방문한 route segment를 캐싱하고, 사용자가 탐색할 가능성이 높은 경로를 미리 가져오게(prefetch) 됩니다. 이를 통해 즉각적인 페이지 탐색(뒤로 및 앞으로)이 가능해지고 탐색 간 전체 페이지를 새로고침하지 않으며, React state와 브라우저 state를 유지시켜 줍니다.
Router Cache를 사용하면 아래와 같은 동작이 일어나게 됩니다.
next.config.js 파일에 실험적 옵션인 staleTimes 설정을 사용할 수 있음참고로 Client-side Router Cache는 Next.js와 서버 컴포넌트에만 적용되며, 브라우저의 Back/Forward cache (bfcache)와는 다르지만 유사한 결과를 제공합니다.
캐시는 브라우저의 임시 메모리에 저장됩니다. Router Cache의 지속 시간은 아래 두 가지 요인에 의해 결정됩니다.
prefetch={null} 또는 지정되지 않은 경우)prefetch={true} 또는 router.prefetch 사용)페이지를 새로고침 하면 모든 캐싱된 세그먼트가 삭제되지만, 자동 무효화 기간은 prefetch된 시점부터 개별 세그먼트에만 영향을 미칩니다. 참고로 실험적인 staleTimes 설정 옵션을 사용하면 자동 무효화 시간을 조정할 수 있습니다.
라우터 캐시를 무효화하는 방법은 아래와 같이 두 가지가 있습니다.
revalidatePath()를 사용하여 특정 경로에 대한 데이터 무효화revalidateTag()를 사용하여 특정 태그에 대한 데이터 무효화cookies.set() 또는 cookies.delete()를 사용하여 쿠키를 사용하는 경로가 오래되지(stale) 않도록 라우터 캐시를 무효화router.refresh() 호출router.refresh()를 호출하면 Router Cache가 무효화되며, 현재 경로에 대해 서버에 새로운 요청을 보냄Next.js 버전15부터는 페이지 segment가 기본적으로 캐싱에서 제외됩니다. 참고로 <Link> 컴포넌트의 prefetch 속성을 false로 설정하면 prefetch도 사용하지 않도록 설정할 수 있습니다.
마지막 업데이트: 2025년 10월 24일 02시 39분
이 문서의 저작권은 이인제(소플)에 있습니다. 무단 전재와 무단 복제를 금합니다.
On this page