Next.js
Next.js에서 배치 작업이 실패할 때 확인 순서
배치 작업이 로컬에서는 되는데 배포 후 안 되면, 환경변수와 canonical 설정부터 점검하면 원인을 빨리 찾을 수 있다.
scheduled function이나 API route handler로 배치 작업을 만들다 보면, 로컬에서는 잘 작동하는데 배포되면 안 되는 경우가 종종 있다.
공개 URL부터 확인
Next.js에서 빌드 후 sitemap이나 RSS가 제대로 생성되는지 먼저 본다. 배포 환경에서 npm run build 후 .next 폴더를 확인하면 정적 생성이 제대로 됐는지 알 수 있다.
npm run build
# .next/static 또는 public 폴더에서 생성된 파일 확인
canonical과 메타데이터
batch 작업이 생성하는 페이지의 canonical 링크가 정확한지 확인한다. canonical이 잘못되면 검색엔진에서 제대로 인덱싱하지 않는다.
curl -s https://example.com | grep canonical
데이터베이스 연결 상태
배치 작업이 데이터베이스에서 데이터를 읽거나 쓴다면, 배포 환경의 데이터베이스 연결 설정이 맞는지 확인한다. 로컬에서는 localhost인데 배포에서는 다른 호스트일 수 있다.
로그에 "배치 시작 시간: 18:30, 처리 건수: 1520, 소요 시간: 3분 42초" 같은 기록을 남겨두면, 다음에 배치 속도가 느려졌을 때 비교하기 좋다.