Next.js 캐싱 메커니즘

메커니즘대상위치목적지속시간
Request Memoization
함수의 반환값서버React 컴포넌트 트리에서 데이터 재사용요청별 생명주기
Data Cache데이터서버사용자 요청과 배포 전반에 걸쳐 데이터 저장영구적 (재검증 가능)
Full Route CacheHTML 및 RSC 페이로드서버렌더링 비용 감소 및 성능 향상영구적 (재검증 가능)
Router CacheRSC 페이로드클라이언트네비게이션 시 서버 요청 감소사용자 세션 또는 시간 기반

기본 동작

Next.js는 기본적으로 성능 향상과 비용 절감을 위해 최대한 많이 캐싱합니다:

  • 라우트는 정적으로 렌더링
  • 데이터 요청은 캐싱됨 (옵트아웃하지 않는 한)

캐싱 동작은 다음 요소에 따라 달라집니다:

  • 라우트가 정적 또는 동적으로 렌더링되는지 여부
  • 데이터가 캐싱되거나 캐싱되지 않는지 여부
  • 요청이 초기 방문인지 후속 네비게이션인지 여부

사용 사례에 따라 개별 라우트와 데이터 요청에 대한 캐싱 동작을 구성할 수 있습니다.

주의사항

Middleware에서는 fetch 캐싱이 지원되지 않습니다. Middleware 내부에서 수행되는 모든 fetch는 캐싱되지 않습니다.