Skip to content

fix: 배포 직후 홈 배너·에디터 추천이 비어 보이는 문제 수정 - #910

Merged
hyejj19 merged 1 commit into
mainfrom
fix/home-prerender-without-api
Oct 30, 2026
Merged

hyejj19 merged 1 commit into
mainfrom
fix/home-prerender-without-api

Conversation

@hyejj19

@hyejj19 hyejj19 commented Oct 29, 2026 •

Copy link
Copy Markdown
Collaborator

bottle-note/workspace#547

관련 이슈 (Related Issue)

PR 타입 (Type of Change)

  • 🐛 fix: 버그 수정

증상

개발 서버에 #906을 배포한 직후 홈에서 서버에서 불러오는 배너와 에디터 추천만 비어 보임. 몇 분 뒤 다시 들어가면 정상.

원인

  • 홈(/)은 빌드 때 미리 만드는 정적 페이지였음 (빌드 결과 ○ /, 5분 revalidate)
  • 빌드는 GitHub Actions에서 도는데, 그 환경에서는 클러스터 내부 API에 접근할 수 없음
    • 빌드 로그: [internalApi] 공개 데이터 조회 실패 /v2/curations/feed?... getaddrinfo ENOTFOUND product-api
  • 그래서 배너·에디터 추천이 빈 상태로 페이지가 구워져 배포되고, 5분 뒤 첫 요청에서 다시 만들어질 때까지 빈 화면이 나감
  • 배너는 예전부터 같은 경로라 배포마다 같은 현상이 있었고, 이번에 에디터 추천이 추가되며 눈에 띔

변경 사항 (Changes)

  • src/app/(primary)/page.tsx: export const dynamic = 'force-dynamic' — 요청 시 렌더링 (app/sitemap.ts와 같은 방식)
  • API 응답 캐시는 그대로: 배너 5분, 에디터 추천 1시간 (next.revalidate를 각 fetch에 명시해 force-dynamic에서도 데이터 캐시 사용)
  • 회귀 방지 테스트 src/app/(primary)/page.vitest.test.ts: 홈이 요청 시 렌더링으로 설정돼 있는지 확인 (되돌리면 실패하는 것 확인)

테스트 방법 (Test Procedure)

  1. 로컬 운영 빌드 pnpm next build → 결과표에서 /가 ƒ (Dynamic)인지 확인
  2. pnpm next start 후 홈 요청 3회 → 매번 HTML에 배너·에디터 추천 데이터 포함
  3. 요청 사이 .next/cache/fetch-cache 파일이 다시 쓰이지 않음 → API 응답 캐시 재사용 확인
  4. 배포 직후 개발 서버 홈에 배너·에디터 추천이 바로 보이는지 확인

셀프 체크리스트 (Self Checklist)

  • 로컬에서 정상 동작 확인 (운영 빌드 + start로 위 1~3 확인)
  • pnpm lint 통과
  • 불필요한 console.log 제거
  • jest 466개, vitest 131개 통과 / 타입 체크 통과

참고 사항 (Additional Information)

  • 홈 HTML을 요청마다 서버에서 그리므로 렌더링 비용이 조금 늘지만, API 호출은 캐시 덕분에 늘지 않음
  • 별도 확인 필요: 모든 페이지(운영 포함) HTML이 <html id="__next_error__">로 내려옴 — 서버 렌더링 중 오류로 클라이언트에서 다시 그리는 상태. 이번 변경과 무관한 기존 문제라 별도로 조사 필요

🤖 Generated with Claude Code

…e not empty after deploy

The home route was prerendered at build time. The CI build cannot reach the
internal product API (ENOTFOUND product-api), so banners and editor's picks were
baked in empty and served until the 5-minute revalidation regenerated the page.
Render on request instead; the API responses keep their fetch revalidate cache.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@hyejj19
hyejj19 merged commit dee40bf into main Oct 30, 2026
2 checks passed
@hyejj19
hyejj19 deleted the fix/home-prerender-without-api branch October 30, 2026 08:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant