전체 배포 완료

오늘은 진짜 배포에 집중했습니다. 생성부터 배포까지 전 과정을 마무리.

핵심 성과:

  • 성격 카드 37장 전부 생성 완료.
  • 스토리 JSON, 56개 노드, 씬 이미지, 카드까지 전부 배포.
  • 콘텐츠 컬렉션 엔트리 추가로 Astro가 스토리를 인식하도록 정리.

실제 사용자 흐름도 직접 확인했습니다. 라이브러리에서 들어가서 시작 페이지가 열리고, 선택 노드로 자연스럽게 이동되는지, 전체 56페이지가 제대로 생성됐는지 끝까지 확인했습니다. “빌드 성공”은 출발점일 뿐이고, 플레이가 매끄러워야 배포가 끝난다고 느꼈습니다.

무엇보다 카드 생성이 안정적으로 한 번에 완료된 게 큰 수확이었습니다. 이전엔 실패가 잦아서 재시도에 시간을 많이 썼는데, 오늘은 전량이 깔끔하게 들어갔습니다.

실제 배포 구성

이번 배포에서 실제로 반영한 항목은 다음과 같습니다.

  • public/stories/i-robot/에 스토리 JSON과 56개 노드 마크다운
  • 씬 이미지를 public/src/assets/에 동시 배치
  • public/stories/i-robot/cards/에 성격 카드 37장
  • public/covers/에 커버 이미지
  • src/content/novels/i-robot.md 컬렉션 엔트리 추가

이 중 하나라도 빠지면 빌드는 성공하더라도 플레이 경험이 어색해집니다. 그래서 “배포는 끝났습니다”라는 말이 항상 불안했습니다.

이미지 렌더링 함정

배포하면서 한 가지를 확실히 배웠습니다. 이미지는 public/에만 있으면 안 됩니다. Astro 최적화 파이프라인은 src/assets/에도 있어야 제대로 렌더링됩니다.

해결:

  • 씬 이미지를 public/src/assets/에 동시에 유지.

앞으로 헷갈리지 않게 체크리스트를 만들었습니다:

  • JSON은 public/stories/
  • 노드 마크다운은 public/stories/[titleId]/
  • 씬 이미지는 src/assets/stories/[titleId]/에도 복사
  • 커버는 public/covers/
  • 컬렉션 엔트리는 src/content/novels/

카드의 의미

성격 카드는 공유와 바이럴의 핵심입니다. 카드가 안정적으로 생성되지 않으면, 스토리는 완성돼도 “공유하고 싶은 결과물”이 사라집니다.

그래서 오늘의 안정적인 배치 생성은 기술적인 개선을 넘어, 제품의 성장 루프를 살리는 일이라고 느꼈습니다.

인사이트

생성 파이프라인만 잘 돌아가면 끝이라고 생각했는데, 배포 루트가 더 중요했습니다. 앞으로는 배포 체크리스트를 기본으로 두기로 했습니다.

결국 목표는 “특이 케이스 없는 배포”입니다. 매번 손으로 맞추지 않아도 되는 과정이 되어야 다음 스토리팩 속도가 올라갑니다.

다음 할 일

체크리스트를 스크립트로 바꾸는 것이 다음 목표입니다. 배치 복사와 엔트리 생성까지 자동화하면, 스토리팩 배포가 훨씬 가벼워질 것 같습니다.