데이터 신선도와 비용에 맞는 캐시 계약을 모델링합니다.
정적 문서, 사용자별 화면, 자주 바뀌는 재고는 같은 캐시 정책을 쓰지 않습니다. Next 설정 전에 데이터의 공유 범위, 허용 지연, 무효화 사건을 정의합니다.
개인화 응답을 공용 캐시에 저장하지 않도록 cookie와 authorization 의존성을 확인합니다.
시간 기반 재검증과 사건 기반 무효화를 함께 설계하고 운영에서 hit ratio와 오래된 데이터 위험을 측정합니다.
성능을 위해 모든 데이터를 캐시하거나 최신성을 위해 전부 no-store로 만들지 마세요.
로컬 프로젝트에서 확인해보세요공지와 사용자 알림에 서로 다른 정책을 추가하세요.
const policies = [
{ data: "공개 강좌", scope: "public", revalidate: 300 },
{ data: "내 프로필", scope: "private", revalidate: 0 },
{ data: "재고", scope: "event-invalidated", revalidate: 30 },
];
export default function Page() {
return (
<main>
<h1>캐시 정책</h1>
<table>
<thead>
<tr>
<th>데이터</th>
<th>범위</th>
<th>초</th>
</tr>
</thead>
<tbody>
{policies.map((p) => (
<tr key={p.data}>
<td>{p.data}</td>
<td>{p.scope}</td>
<td>{p.revalidate}</td>
</tr>
))}
</tbody>
</table>
</main>
);
}