Next.js
Next.js에서 RSS 피드가 생성되지 않을 때
Next.js에서 동적 RSS 생성은 빌드 타이밍과 라우트 설정에 따라 예상과 다르게 동작한다.
로컬 dev 서버에서는 되는데 빌드하면 안 나온다
Next.js에서 RSS 피드를 생성할 때 로컬에서 테스트했을 때는 정상이었는데 빌드 후 배포되면 404가 나오는 경우가 있다.
이는 next build와 npm run dev 사이에 동적 라우트 처리 방식이 다르기 때문이다. dev 서버는 런타임에 요청을 처리하지만 빌드된 앱은 정적 export이거나 서버리스 함수로 배포되면서 경로 설정이 달라질 수 있다.
빌드 로그 확인
npm run build
빌드 완료 후 로그에서 다음을 확인한다:
- RSS 라우트가 포함됐는가?
- 정적 생성(Static) 되었는가 동적(Dynamic)인가?
- 빌드 오류나 경고가 있는가?
내가 겪었던 경우는 메타데이터 생성 함수에서 에러가 발생했는데 개발 중에는 미처 확인하지 못한 케이스였다.
메타데이터 설정 다시 확인
Next.js 13+ App Router에서는 generateMetadata 나 generateStaticParams가 중요하다. RSS 라우트도 이를 따른다.
# 배포 후 실제로 접근 가능한지 확인
curl -s https://example.com/feed.xml | head -20
xmlparser 에러나 XML 구조 오류가 있을 수 있다. canonical URL 설정도 확인해서 상대 경로가 아닌 절대 경로로 설정했는지 본다.
로컬과 배포 환경의 차이 기록
로컬에서 테스트할 때 사용한 베이스 URL과 배포 후 실제 도메인이 다르면 RSS 항목의 링크들이 깨질 수 있다. 환경 변수로 관리해서 배포 시에 올바른 URL을 사용하도록 한다.
작은 변경 후 매번 빌드해서 확인하는 게 핵심이다. 한 번에 여러 부분을 고치면 어느 것이 문제인지 알 수 없다.