- `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>
5.1 KiB
5.1 KiB
S8. B04 산출물 재활용 + B05 수신량 절감 (완료 계획서)
이관 이력: 2026-08-01 검증 완료 후
docs/raw/PLAN.md1부에서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.ts의fetchSurfacePointCloud(23.8MB) →fetchConfirmedSurface로 교체- B04 좌측 포인트뷰어(관리자 전용)는 기존 포인트클라우드 API 유지
- 완료 조건: B05 진입 네트워크 목록에
surface/point-cloud없음 (코드상 호출 제거 확인)
S8-2. 모델 확정 = 하류 단계의 유일한 기준 (확정 시점 동기화)
- 준비 여부 판정이 프로젝트 번호만 본다 → 표식을
{projectId}|{signature}로 변경 및 signature 대조 - 준비화면이 평활 여부를 짐작한다 →
preloadSurfaceAssets가fetchConfirmedSurface의 확정값 사용 - 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-mapETag 적용- 완료 조건(사용자 확인): 계획노선 전체가 위성사진 안에 포함 및 새로고침 시 사진 재수신 없음 확인
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) 동작 검증 완결