v15 의 가장 큰 동작 변화
Next.js 14 에선 Server Component 안 fetch() 가 default 로 cache. 개발자가 모르는 stale data 에 데였어. Next.js 15+ 가 default 뒤집음: fetch 가 cache 안 됨, opt-in 안 하면.
Opt-in caching option
| 전략 | 설정 방법 |
|---|---|
| 영원히 cache (revalidate 까지) | fetch(url, { cache: 'force-cache' }) |
| ISR — N 초마다 revalidate | fetch(url, { next: { revalidate: 60 } }) |
| On-demand invalidation 위해 tag | fetch(url, { next: { tags: ['posts'] } }) |
| No cache (default) | fetch(url) 또는 명시적 { cache: 'no-store' } |
| Route-level default | export const revalidate = 60 |
Migration 모양
v14 app 이 upgrade 후 느리게 느껴지면, 매 render 마다 fresh data 진짜 안 필요한 route 찾아서 cache: 'force-cache' 또는 next: { revalidate } 추가. 옛날엔 공짜 cache 받았던 거 이제 못 받아.