목록 보기
Next.js 트러블슈팅: CORS와 Version Skew 에러 원인부터 해결까지
프론트엔드

Next.js 트러블슈팅: CORS와 Version Skew 에러 원인부터 해결까지

카카오페이
카카오페이
2025년 6월 4일

두줄요약

Next.js SSR 서비스에서 발생한 CORS와 Version Skew 장애의 원인과 해결 과정을 정리했습니다. SessionStorage 저장, dynamic import, 배포 전략 개선으로 문제를 완화했습니다.

문제 상황

  • Next.js 기반 SSR 충전 서비스에서 client-side navigation 시 CORS 에러와 Version Skew로 인한 404, 새로고침, 상태 초기화 문제가 연쇄 발생
  • 운영 배포와 카나리 구간에서만 재현되는 간헐적 장애로, QA에서는 놓치기 쉬운 낮은 발생률과 특이한 재현 경로가 존재

원인 분석

  • 정적 CSS 요청이 fetch 경로와 stylesheet 경로로 각각 다르게 캐시되며, Origin/ACAO 헤더 차이로 CORS 정책 위반 발생
  • 배포 중 구버전·신버전 서버가 공존하면서 Next.js의 BUILD_ID가 다른 서버로 라우팅되어 페이지 요청 404와 강제 새로고침 유발

해결 방법

  • crossOrigin: 'anonymous'로 모든 정적 리소스를 CORS 요청으로 통일하거나, dynamic import로 문제 페이지를 CSR로 전환해 우회
  • Version Skew 대응으로 충전 응답 상태를 SessionStorage에 저장해 새로고침 후에도 상태 유지
  • 배포 안정성 강화를 위해 카나리, 블루 그린, Sticky Session 적용 검토 및 도입

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...