캐시 의도를 쓴다
항상 최신인지, 일정 시간 재사용 가능한지, 수동 무효화할지 fetch 옵션과 route 설정으로 표현한다.
병렬 요청 생성
서로 독립인 데이터는 await를 연달아 쓰기보다 Promise.all로 waterfall을 줄인다.
no-store
요청마다 최신
개인화나 자주 바뀌는 값에 맞지만 캐시 이점을 포기한다.
남용하면 느려진다.
revalidate
시간 기반 갱신
일정 시간 동안 재사용하고 이후 갱신한다.
오래된 정보 허용 범위와 맞춘다.
tag
의미 기반 무효화
mutation 이후 관련 데이터만 다시 검증하는 데 유용하다.
태그 이름 체계를 정한다.
parallel
대기 시간 절감
독립 fetch는 병렬로 시작해 전체 대기를 줄인다.
의존 데이터는 순차가 맞다.
비밀 · 신선도 · waterfall 점검
병렬 fetch
const userPromise = getUser();
const postsPromise = getPosts();
const [user, posts] = await Promise.all([userPromise, postsPromise]);