배경
Next.js cacheLife API에서 expire 옵션을 생략하면 INFINITE_CACHE (never)로 동작하지만, 공식 문서에 이에 대한 설명이 없음.
현재 상황
expire 타입: expire?: number (optional)
- 생략 시 내부적으로
INFINITE_CACHE = 0xfffffffe (~136년)로 처리
- 빌트인 프리셋 중
default와 max가 expire: never로 동작
- 공식 문서의 모든 커스텀 프로필 예시에서
expire를 항상 숫자로 명시하고 있어, 생략 가능 여부나 never 동작이 문서화되지 않음
문서에 누락된 내용
expire를 생략하면 캐시가 만료되지 않는다는 설명
expire: never가 가능한지 여부 (실제로는 불가, 생략해야 함)
- 빌트인 프리셋의 expire 값 비교표
expire가 지나면 stale 데이터도 사라져서 cold start가 발생한다는 동작 설명
소스 코드 근거
// next/dist/lib/constants.js
const INFINITE_CACHE = 0xfffffffe;
// next/dist/build/templates/app-route.js
const expire = typeof context.renderOpts.collectedExpire === 'undefined'
|| context.renderOpts.collectedExpire >= INFINITE_CACHE
? undefined
: context.renderOpts.collectedExpire;
기여 방향
docs/01-app/03-api-reference/04-functions/cacheLife.mdx 수정
- Cache profile properties 섹션에 expire 생략 시 동작 추가
- 커스텀 프로필 예시에 expire 생략 케이스 추가
배경
Next.js
cacheLifeAPI에서expire옵션을 생략하면INFINITE_CACHE(never)로 동작하지만, 공식 문서에 이에 대한 설명이 없음.현재 상황
expire타입:expire?: number(optional)INFINITE_CACHE = 0xfffffffe(~136년)로 처리default와max가 expire: never로 동작expire를 항상 숫자로 명시하고 있어, 생략 가능 여부나 never 동작이 문서화되지 않음문서에 누락된 내용
expire를 생략하면 캐시가 만료되지 않는다는 설명expire: never가 가능한지 여부 (실제로는 불가, 생략해야 함)expire가 지나면 stale 데이터도 사라져서 cold start가 발생한다는 동작 설명소스 코드 근거
기여 방향
docs/01-app/03-api-reference/04-functions/cacheLife.mdx수정