콘텐츠로 이동

/_next/ 정적 자산과 캐싱

Next.js는 /_next/ 경로 아래에
빌드 산출물과 프레임워크가 생성한 정적 자산을 집중적으로 관리한다.

이 경로에 대한 캐싱/프록시 정책을 잘못 설정하면
페이지 깨짐, 최신성 문제, 장애 확산으로 이어질 수 있다.


1. Node.js(Express)의 정적 자산 처리

  • 정적 파일 경로는 개발자가 직접 지정
  • 일반적으로 /public 또는 별도 디렉터리 사용
  • 캐싱 정책은:
    • 애플리케이션 코드
    • Nginx/CDN
      에서 명시적으로 정의

정적 자산의 “의미”와 “수명”을 개발자가 전적으로 통제한다.


2. Next.js의 /_next/ 경로 특성

  • /_next/는 Next.js가 자동 생성·관리하는 경로
  • 다음 자산을 포함:
    • JavaScript/CSS 번들
    • 빌드 메타데이터
    • 데이터 패치(JSON)
    • 이미지 최적화 결과

이 경로의 자산은 렌더링 방식(SSR/SSG/ISR) 과 강하게 연결된다.


3. 캐싱 시 반드시 구분해야 할 하위 경로

/_next/static/*

  • 빌드 시 생성되는 정적 자산
  • 내용이 변경되면 파일명이 변경됨
  • 장기 캐시(Cache-Control: immutable) 적합

/_next/data/*

  • SSG / ISR 데이터 패치용 JSON
  • revalidate 설정에 따라 갱신
  • 과도한 장기 캐시는 최신성 문제 유발

/_next/image

  • 이미지 최적화 런타임 엔드포인트
  • 요청 파라미터에 따라 결과 달라짐
  • 무조건 장기 캐시 금지

4. 운영 기준 (Baseline)

  • /_next/static/*
    • CDN 및 브라우저 장기 캐시 허용
  • /_next/data/*
    • ISR 정책(revalidate)과 정합성 유지
    • CDN 캐시 적용 시 만료 전략 필수
  • /_next/image
    • 동적 처리 경로로 취급
    • 프록시/서버 부하 모니터링 필수

5. 운영 체크리스트

  • /_next/static/*와 기타 경로 캐시 정책 분리
  • CDN/Nginx 설정에서 /_next/image 과캐시 여부 점검
  • ISR 사용 시 /_next/data/* 캐시 만료 확인
  • 배포 후 정적 자산 404/불일치 여부 확인