왜 on-demand
Time-based ISR 은 사용자가 revalidate window 전체 동안 stale data 보일 수도 있음. On-demand revalidation 이 mutation 도착하는 순간 cache invalidate — content 바꾼 editor 가 바로 새 version 봄.
Function 둘, scope 둘
| Function | Invalidate |
|---|---|
revalidatePath(path, type?) | 특정 path. type 이 'page' (leaf 만) 또는 'layout' (그 아래 전부) |
revalidateTag(tag) | fetch(url, { next: { tags } }) 로 tag 붙인 모든 fetch |
어디서 부를 수 있는지
Server Action 과 Route Handler 만. v15 가 strict 하게 함; render 동안 부르면 throw. 이유: invalidation 이 mutation 의 side effect, pure rendering 의 거 아님.