사용자 정의 Next.js 캐시 핸들러
Next.js에서 Pages와 App Router를 위한 기본 캐시 핸들러는 파일 시스템 캐시를 사용합니다. 이는 별도의 구성이 필요하지 않지만, next.config.js
의 cacheHandler
필드를 사용하여 캐시 핸들러를 사용자 정의할 수 있습니다.
next.config.js
module.exports = {
cacheHandler: require.resolve("./cache-handler.js"),
cacheMaxMemorySize: 0, // 기본 인메모리 캐싱 비활성화
};
사용자 정의 캐시 핸들러의 예시를 보고 구현에 대해 자세히 알아보세요.
API 참조
캐시 핸들러는 다음 메서드를 구현할 수 있습니다: get
, set
, 그리고 revalidateTag
.
get()
매개변수 | 타입 | 설명 |
---|---|---|
key | string | 캐시된 값의 키입니다. |
캐시된 값을 반환하거나 찾지 못한 경우 null
을 반환합니다.
set()
매개변수 | 타입 | 설명 |
---|---|---|
key | string | 데이터를 저장할 키입니다. |
data | Data 또는 null | 캐시될 데이터입니다. |
ctx | { tags: [] } | 제공된 캐시 태그입니다. |
Promise<void>
를 반환합니다.
revalidateTag()
매개변수 | 타입 | 설명 |
---|---|---|
tag | string | 재검증할 캐시 태그입니다. |
Promise<void>
를 반환합니다. 데이터 재검증 또는 revalidateTag()
함수에 대해 자세히 알아보세요.
알아두면 좋은 점:
revalidatePath
는 캐시 태그 위에 있는 편의 계층입니다.revalidatePath
를 호출하면revalidateTag
함수가 호출되며, 이를 통해 경로를 기반으로 캐시 키에 태그를 지정할지 선택할 수 있습니다.
버전 기록
버전 | 변경 사항 |
---|---|
v14.1.0 | cacheHandler 로 이름이 변경되고 안정화되었습니다. |
v13.4.0 | incrementalCacheHandlerPath 가 revalidateTag 를 지원합니다. |
v13.4.0 | incrementalCacheHandlerPath 가 독립 실행형 출력을 지원합니다. |
v12.2.0 | 실험적 incrementalCacheHandlerPath 가 추가되었습니다. |