Files
GhiVideo_v4/docs/history/2026-06-25_0950_스테이션바-첫끝역-양끝고정-및-pm2배포.md
b23042andClaude Fable 5 d38b842e8d GhiVideo 소스 복제 — v4 작업 시작 기준
기존 GhiVideo 저장소 HEAD의 트래킹 소스 362개 파일을 복제.
(node_modules·storage·빌드 산출물·대용량 미디어는 .gitignore 규칙대로 제외)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09 14:32:51 +09:00

1.8 KiB

스테이션바 첫·마지막 역 양끝 고정 + 누락 원인(빌드) 해결 + pm2 배포

소요 시간: 70분 Context 사용량: input 약 320k / output 약 22k tokens

1. 대전조차장 누락의 진짜 원인 = 빌드 미반영

  • 데이터(v3.0 KMZ)·파싱(parseKmz)·코드 수정 모두 정상이었음. 실데이터 시뮬레이션으로 마커가 px 1777 생성·유지됨을 검증.
  • 화면에 안 뜬 이유: 서버가 6/24 빌드된 client/dist 를 서빙 → 6/25 수정 미반영.
  • 조치: npm run build -w client 재빌드 후 pm2 start ecosystem.config.js (PORT 55000). 정상 표출 확인.

2. 렌더 필터 수정 (앞 단계, 누적 반영)

  • Timeline.tsx: 역사(역, KAKAO_RAIL)는 dedup 제외 → 항상 표출.
  • StationOverlay.tsx: POI 겹침 억제 정렬을 railRank(철도역/역사 우선)→dist 로 변경.

3. 첫·마지막 스테이션 양끝 고정 (이번 요청)

  • StationBar.tsx structureMarkssnapStationEnds 헬퍼 추가.
    • 역사 마커 중 최좌측 → TRACK_START_PX(297), 최우측 → TRACK_END_PX(1806.5) 로 스냅.
    • 역사 2개 미만이면 미적용. 동일 역 복수 통과 시 극단 마커만 이동.
  • 두 return 경로(storeStructures / POI 폴백) 모두 적용.
  • 예: 회덕화물역(353.9→297), 한국철도공사대전조차장역(1777→1806.5).

검증

  • tsc --noEmit 통과, 클라이언트 재빌드 성공, pm2 ghiVideo online, HTTP 200.

운영 메모

  • 실행: nvm Node 20 활성화 → npm run build -w clientpm2 restart ghiVideo.
  • 서버는 client/dist 정적 서빙 → 소스 수정 후 반드시 클라이언트 재빌드해야 화면 반영됨.