o2o-site-AEO/solution/site/scripts/mockup/vendor/retired/README.md
Mina Choi 0da9b92423 [feat] site/mockup: 시연본 갱신 — 주변 맛집 31곳·국가유산 야행·차 동선 분기·번들 최신화
/s/stay 시연본에 오늘 쌓인 변경을 한꺼번에 반영한다. 원본 8곳이 전부 467m 안이라
'걸어서 10분 이상' 탭의 맛집 칸이 비었던 것, xlsx 대조로 사이트에 없던 축제(국가유산
야행)가 빠져 있던 것, 차로 온 손님도 걸어온 손님과 같은 동선(짐 맡기고 저녁에 복귀)을
따르던 것, 번들이 2026-09-09 판이라 숙박 예약 섹션이 아예 안 그려지던 것 — 전부 발견한
순서대로 고쳤다.

- patch_stay.py: 날짜 값(UPDATED_AT) 한 곳으로 모음 · 날씨 문구 케이스당 1개→5개
  무작위 · '오늘의 엽서' 탭 비움(엽서 쓰기 섹션으로 대체) · 주변 맛집 8→31곳 +
  사진 없는 집에 시연 전용 사진 채움 · 군산 국가유산 야행 추가(날짜 미확정이라
  기간 값은 안 넣음) · 오늘의 한 장 탭 숨김 · 예약 섹션 켬 · head 메타의 날짜도
  같이 갱신 · 번들을 최신 빌드로 교체하고 `<body class="site">` 보정(빠지면 카로셀
  overflow 가 죽어 가로 스크롤이 생겼다) · 군산 읽기/엽서 카로셀에 쓸
  embla-carousel UMD 번들 도입
- build_itinerary.py: 차로 온 손님의 마지막 날은 복귀 칸 없이 마지막 정거장에서
  끝나도록 동선을 가름(도보 뼈대에서 복귀 칸만 떼어 파생 — 두 벌로 안 둔다)
- build_story.py: 진희경은 익산 출생·군산에서 통학 — "군산 출신"으로 뭉뚱그리지 않게 정정
- fetch_restaurants.py · fill_restaurant_photos.py · restaurants.json ·
  restaurant-photos.json · img/mirror/*: TourAPI 로 받은 맛집 31곳과, 사진 없는
  집에 채운 시연 전용 사진(공공누리 아님 — 제품으로는 안 옮긴다)
- vendor/: embla-carousel.umd.js 추가, 번들을 index-C3fFNl3r.css·index-DDxwteyn.js
  로 교체하고 옛 파일은 vendor/retired/ 로 보관
- audit-all.mjs · audit_schedule.py · SCHEDULE.md: 위 변경에 맞춘 점검 항목·산출물 갱신
- AUTOPLAY.md: 새로고침 직후 배경음악 자동재생을 시도한 것과 실측값 — 사람 입력 없이는
  브라우저가 막아서 안 된다는 결론 기록

검증: `python3 patch_stay.py` 정상 종료, 킹서버 반영 후 md5 대조.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XYUb8ZfNiDd15tZRYrusCX
2026-09-14 17:07:01 +09:00

1.4 KiB

물러난 번들 — 지우지 않는다

여기 있는 파일은 더 이상 아무 HTML 도 가리키지 않는 옛 번들이다. 그래도 서버에는 올린다.

/s/ 는 5분 캐시(max-age=300)다. 새 index.html 을 올려도 그동안 손님 브라우저에는 옛 HTML 이 남아 있고, 그 HTML 은 옛 해시 이름으로 css·js 를 부른다. 그 파일을 서버에서 지우면 그 손님에게는 스타일도 스크립트도 404 다 — 화면은 뜨는데 헤더가 안 붙고 푸터 색이 빠진 민짜 문서가 된다.

실측(2026-09-14): 번들을 갈면서 옛 두 개를 docker exec rm 으로 지웠더니 바로 그 증상이 났다. "헤더가 스티키가 아니고 푸터가 투명해졌다" — 파일이 사라진 것이지 CSS 가 바뀐 게 아니다. 제품 쪽 프리렌더가 옛 자산을 30일 보관하는 것도 같은 이유다(prerender.ts ASSET_RETENTION_DAYS).

규칙

  • 번들을 갈면 옛 파일을 지우지 말고 이리로 옮긴다. vendor/ 뿌리에는 현재 한 벌만 둔다 (patch_stay.py 가 뿌리에 js·css 각 하나임을 확인한다).
  • 배포할 때 뿌리와 이 폴더를 둘 다 서버 vendor/ 에 넣는다: docker cp vendor/retired/. $C:/app/solution/site/out/s/stay/vendor/
  • 30일쯤 지나 캐시가 다 빠지면 지워도 된다. 급할 것 없다 — 합쳐서 450KB 다.