Next.js에서 revalidatePath는 서버 측에서 특정 경로의 캐시 데이터를 강제로 무효화하고 최신 상태로 업데이트하는 메서드임. 이는 데이터가 변경되었을 때 전체 페이지를 다시 빌드하지 않고도 사용자에게 최신 정보를 즉시 제공하기 위한 필수적인 기술임.
이 기술은 데이터의 무결성과 최신성이 중요한 서비스에서 빛을 발함.
상황에 따라 범위를 조절하여 캐시를 관리할 수 있음.
| 방식 | 코드 예시 | 설명 |
|---|---|---|
| 특정 페이지 | revalidatePath("/book/1") | 해당 ID를 가진 단일 페이지만 재검증 |
| 동적 경로(Page) | revalidatePath("/book/[id]", "page") | 해당 패턴을 가진 모든 동적 페이지를 재검증 |
| 레이아웃 단위 | revalidatePath("/(search)", "layout") | 특정 레이아웃을 공유하는 모든 하위 페이지 포함 |
| 전체 재검증 | revalidatePath("/", "layout") | 프로젝트 내 모든 페이지의 캐시를 무효화 |
| 태그 기준 | revalidateTag("review-1") | 특정 태그가 지정된 fetch 요청 캐시만 정밀 타격 |
revalidatePath는 브라우저 API가 아니므로 use client 컴포넌트에서 직접 호출하면 에러 발생. Server Action으로 감싸서 처리 필요.revalidatePath("/", "layout")을 남발할 경우 서버 부하가 급증하고 캐싱의 이점이 사라짐. 꼭 필요한 범위만 타겟팅하는 것이 권장됨.핵심 요약
- 서버 측 호출을 통한 특정 경로의 Data 및 Full Route 캐시 즉시 무효화.
- 페이지, 레이아웃, 태그 등 다양한 범위를 선택하여 정밀한 캐시 제어 가능.
- 데이터 수정 직후 호출하여 사용자에게 실시간에 가까운 최신 UI 제공.
출처: 한 입 크기로 잘라먹는 Next.js(v15)