피드로 돌아가기
Dev.toFrontend
원문 읽기
Next.js Data Cache 전략을 통한 서버 사이드 렌더링 최적화 및 렌더링 모드 제어
Data cache in NextJs
AI 요약
Context
외부 API 호출 결과의 반복적인 요청으로 인한 서버 부하 및 응답 속도 저하 문제 발생. Full Route Cache와 Data Cache의 상호작용으로 인한 렌더링 동작 예측의 어려움 존재.
Technical Solution
fetchAPI 확장 옵션을 통한 Data Cache 제어 및 렌더링 전략 수립{ cache: 'no-store' }설정을 통한 Dynamic Fetch 구현 및 해당 Route의 강제 Dynamic Rendering 전환{ cache: 'force-cache' }도입을 통한 캐시 우선 조회 및 Stale 데이터 발생 시에만 신규 Fetch 수행auto옵션 적용 시 Static Route에서는 Build-time 1회 호출 후 HTML/RSC로 캐싱하여 런타임 API 호출 제거- Dynamic Route 내
auto옵션 사용 시 매 요청마다 Fetch를 수행하여 최신성 유지 및 Data Cache 저장 배제 - Data Cache와 Full Route Cache의 결합을 통한 정적 콘텐츠 제공 및 동적 데이터 업데이트의 Trade-off 관리
실천 포인트
- 실시간 데이터가 필수적인 페이지는 `{ cache: 'no-store' }`를 사용하여 Dynamic Rendering 강제 - 빌드 시점에 데이터가 확정되는 정적 페이지는 `auto` 또는 `force-cache`를 사용하여 API 호출 최소화 - Static Route 내 `auto` 옵션이 Build-time에 캐싱되어 런타임에 API 호출이 발생하지 않는 동작 특성 검토 - 캐시 무효화 전략 수립 전 `force-cache`를 통한 데이터 재사용 효율성 검증