Next.js 캐싱 메커니즘
| 메커니즘 | 대상 | 위치 | 목적 | 지속시간 |
|---|---|---|---|---|
| Request Memoization | 함수의 반환값 | 서버 | React 컴포넌트 트리에서 데이터 재사용 | 요청별 생명주기 |
| Data Cache | 데이터 | 서버 | 사용자 요청과 배포 전반에 걸쳐 데이터 저장 | 영구적 (재검증 가능) |
| Full Route Cache | HTML 및 RSC 페이로드 | 서버 | 렌더링 비용 감소 및 성능 향상 | 영구적 (재검증 가능) |
| Router Cache | RSC 페이로드 | 클라이언트 | 네비게이션 시 서버 요청 감소 | 사용자 세션 또는 시간 기반 |
기본 동작
Next.js는 기본적으로 성능 향상과 비용 절감을 위해 최대한 많이 캐싱합니다:
- 라우트는 정적으로 렌더링됨
- 데이터 요청은 캐싱됨 (옵트아웃하지 않는 한)
캐싱 동작은 다음 요소에 따라 달라집니다:
- 라우트가 정적 또는 동적으로 렌더링되는지 여부
- 데이터가 캐싱되거나 캐싱되지 않는지 여부
- 요청이 초기 방문인지 후속 네비게이션인지 여부
사용 사례에 따라 개별 라우트와 데이터 요청에 대한 캐싱 동작을 구성할 수 있습니다.

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