Files
Aislo/docs/raw/plans/2026-08-01_plan_S8_B05_data_saving.md
T
eomsangdonandClaude Opus 5 eb30b774f8 chore(docs): docs 폴더 git 추적 전환 · PLAN·OWNERS 최상위 이관
- `docs/` 를 .gitignore 에서 빼 git 추적 대상으로 전환 (위키·완료 이력·검증 기록)
- `docs/raw/PLAN.md` · `docs/raw/OWNERS.md` 를 저장소 최상위로 이동 후 .gitignore 에 등록
  — 창끼리 공유하되 저장소에는 안 올리는 장부
- 살아 있는 경로 참조 7개 파일 정정 (아카이브 107건은 그때 사실이라 그대로 둠)
- graphify 날짜별 산출물(`docs/wiki/graphify-out/20*/`) 제외 — `graphify update` 가 다시 만듦

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-09 18:19:07 +09:00

5.1 KiB
Raw Blame History

S8. B04 산출물 재활용 + B05 수신량 절감 (완료 계획서)

이관 이력: 2026-08-01 검증 완료 후 docs/raw/PLAN.md 1부에서 docs/raw/plans/2026-08-01_plan_S8_B05_data_saving.md로 최종 이관 백업됨. 검증 보고서: docs/raw/verification/2026-08-01_verify_S8_B05_data_saving.md


S8. B04 산출물 재활용 + B05 수신량 절감 (2026-08-01 요구)

배경 (실측, 프로젝트 acb9170b-… 기준) B05 진입 시 약 69MB를 받는다. 새로고침해도 65MB를 다시 받는다(보관함이 덮는 것은 3D 모델+등고선 4MB뿐).

받는 것 크기 시점 현재 재사용
도엽 등고선 geojson 34.2MB 진입 즉시 ETag / 보관함
포인트클라우드 JSON 23.8MB 5단계 제거 (경량 API 대체)
위성사진 PNG 4.2MB 진입 즉시 ETag / 자체 캐시
도엽 하천중심선 1.4MB 진입 즉시 ETag / 보관함
3D 모델 preview 2.9MB 5단계 보관함
3D 등고선 1.3MB 5단계 보관함
종단·횡단 detail 0.9MB 4단계 제외 (실시간성 보장)

S8-1. 확정 지표면 요약 API 신설 + B05 포인트클라우드 24MB 제거

  • 신규 GET /projects/{id}/surface/confirmed (B04_wf1_Surface_Router.py:372, 응답 0.4KB / 0.018초)
  • B05_wf2_Route_UI_Page.tsfetchSurfacePointCloud(23.8MB) → fetchConfirmedSurface로 교체
  • B04 좌측 포인트뷰어(관리자 전용)는 기존 포인트클라우드 API 유지
  • 완료 조건: B05 진입 네트워크 목록에 surface/point-cloud 없음 (코드상 호출 제거 확인)

S8-2. 모델 확정 = 하류 단계의 유일한 기준 (확정 시점 동기화)

  • 준비 여부 판정이 프로젝트 번호만 본다 → 표식을 {projectId}|{signature}로 변경 및 signature 대조
  • 준비화면이 평활 여부를 짐작한다 → preloadSurfaceAssetsfetchConfirmedSurface의 확정값 사용
  • B04 재진입 초기 선택 확정값 동기화 및 TerrainViewer.setSmoothing() 추가
  • 확정 직후 clearPreloadMark() + clearRouteLatestCache()로 캐시 무효화
  • 완료 조건 (사용자 화면 확인 완료): B04 다른 필터·방식 확정 시 B05 지형·등고선 동기화, 대시보드 왕복·새 브라우저·단계 이동 시 준비화면 정상 작동

S8-3. 도엽 등고선 전송 방식 개선

  • 분석용 원본 도엽_등고선.geojson 유지 및 화면 공유 (크롭 철회 수용)
  • /geojson 응답 파일 바이트 direct 전송 + ETag 적용 (서버 2.0s -> 0.006s)
  • 프론트엔드 브라우저 보관함 저장 (fetchCachedSheetLayer)
  • 완료 조건(사용자 확인): 첫 진입 1회만 받고 새로고침 시 재수신 없음, 지도 표시 정상 유지

S8-4. 위성사진 범위 확대 + 재사용

  • 덮을 범위 = LAS bounds ∪ 계획노선 범위
  • 주변 셀 타일 여유 SURFACE_MAP_MARGIN_TILES = 3 지정
  • _t= 타임스탬프 제거 및 /vworld-map ETag 적용
  • 완료 조건(사용자 확인): 계획노선 전체가 위성사진 안에 포함 및 새로고침 시 사진 재수신 없음 확인

S8-5. 브라우저 보관함 대상 확장 (포인트클라우드 제외)

  • 보관함 대상 추가: 도엽 등고선·하천중심선, 위성사진
  • 종단·횡단 detail 제외 (계획고 변경 반영 보장)
  • B11 준비화면 사전 선적재 포함
  • 완료 조건(사용자 확인): B05 새로고침 시 수신량 대폭 절감 확인

S8-6. 도엽 기준 선정: LAS 중심 → 계획노선 시·종점

  • 우선순위: 노선 CSV 시·종점 -> LAS bounds 중심
  • 시·종점 걸침 시 합집합 9~12매 선정 (neighbors_for_points())
  • 완료 조건: 표본 프로젝트 선정 결과 회귀 없음 확인 완료

S8-7. 도엽 잔재 zip 정리

  • 비대상 zip 삭제 및 map_sheets_index.json 정리 (prune_sheets())
  • 완료 조건: 30매 중 비대상 21매 정분 정리 확인 완료

S8 구현 결과 및 검증 완결 (2026-08-01)

항목 조치 실측
S8-1 GET /surface/confirmed 신설, B05 포인트클라우드 대체 23.8MB → 0.4KB, 0.018초
S8-2 준비 표식 signature 적용, B04 초기값 확정본 동기화 동기화 정상
S8-3 도엽 산출물 원본 그대로 + ETag 파일 전송 서버 2.0초 → 0.006초, 304 응답
S8-4 배경 범위 라이다 ∪ 노선 + 타일 여유 3, _t= 제거 731×853m → 972×1001m
S8-5 도엽 레이어 보관함 경유 + 준비화면 선적재 수신량 대폭 절감 확인
S8-6 도엽 기준 = 노선 시·종점 우선 회귀 없음, 걸침 12~14매
S8-7 선정 외 도엽 zip 정리 30매 → 9매(21매 삭제) 정리 완료

완료 확인 (사용자 검증 완결)

  • B05 진입·새로고침 속도, 배수유역도 배경(도엽 등고선) 정상 표시
  • B04 다른 필터·표현 확정 시 B05 지형 동기화 완료
  • 대시보드 왕복·새 브라우저·단계 이동 시 준비화면 정상 동작
  • B04 [배수유역 재산정] 버튼 및 재분석(rebuild) 동작 검증 완결