처음 만난 Next.js 문서


10.5

Cache Interactions

다양한 캐싱 메커니즘을 구성할 때, 이들이 서로 어떻게 상호작용하는지 이해하는 것이 중요합니다.

Data Cache와 Full Route Cache

Data Cache를 재검증하거나 캐싱 제외하는 경우에는 Full Route Cache가 무효화됩니다. 이는 렌더링 결과가 데이터에 의존하기 때문입니다.

하지만 반대로 Full Route Cache를 무효화하거나 캐싱 제외하는 경우에는 Data Cache에 영향을 미치지 않습니다. 캐싱된 데이터와 캐싱되지 않은 데이터를 모두 사용하는 경로를 동적으로 렌더링할 수 있습니다. 이는 페이지의 대부분이 캐싱된 데이터를 사용하지만, 일부 컴포넌트는 요청 시점에 데이터를 가져와야 하는 경우에 유용합니다. 모든 데이터를 다시 가져오는 것으로 인한 성능 저하에 신경쓰지 않고 동적으로 렌더링할 수 있습니다.

Data Cache와 Client-side Router Cache

Data Cache와 Router Cache를 즉시 무효화하려면 Server Actions에서 아래와 같이 revalidatePath() 또는 revalidateTag() 함수를 사용하면 됩니다.

// '/posts' 경로에 대한 캐시 무효화
revalidatePath('/posts');

// 'post' 태그에 대한 캐시 무효화
revalidateTag('post');

하지만 Route Handlers에서 Data Cache를 재검증할 경우 Route Handlers가 특정 route에 연결되어 있지 않기 때문에 Router Cache는 즉시 무효화되지 않습니다. 즉, 강제로 새로고침을 하거나 자동 무효화 기간이 지날 때까지는 Router Cache가 이전 데이터를 계속 제공하게 됩니다.


마지막 업데이트: 2025년 10월 24일 02시 39분

이 문서의 저작권은 이인제(소플)에 있습니다. 무단 전재와 무단 복제를 금합니다.

On this page

  • 10.5 Cache Interactions