본문 바로가기
Q&A해결2025년 1월 3일1분 읽기

Next.js 15에서 fetch 캐시가 기본 no-store로 바뀌어서 API 호출이 매번 실행됩니다

데
데이터분석가
조회 953댓글 2

Next.js 14에서 15로 업그레이드했더니 API 응답이 캐시가 안 되고 매번 서버에서 호출됩니다.

const res = await fetch("https://api.example.com/posts")
const data = await res.json()

14에서는 한번 불러오면 캐시됐는데 15에서는 페이지 로드할 때마다 API 호출이 발생해요. 서버 로그 보니까 요청이 계속 쌓이고 있습니다.

댓글 2

김김영삼1년 전

Next.js 15에서 fetch의 기본 캐시 동작이 변경되었습니다.

14까지는 cache: "force-cache"가 기본이었지만, 15부터는 cache: "no-store"가 기본입니다.

해결 방법
// 방법 1: fetch에 직접 캐시 옵션 지정
const res = await fetch("https://api.example.com/posts", {
cache: "force-cache" // 또는 next: { revalidate: 3600 }
})

// 방법 2: 라우트 세그먼트에서 설정
export const fetchCache = "default-cache"

ISR이 필요하면 next: { revalidate: 초 }를 사용하세요.

데데이터분석가(guest)1년 전
캐시 기본값이 바뀐 거였군요! force-cache 추가하니 바로 해결됐습니다. 감사합니다! 🙏
Ctrl+Enter로 등록