- `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>
4.6 KiB
4.6 KiB
코드 검증 보고서: B04/B05 배수유역 일원화 + 종단 테이블 구조물 연동
- 검증 일시: 2026-08-02
- 검증 대상 기능: B04/B05 배수유역 일원화 + 종단 테이블 구조물 연동 (C-1 ~ C-8, 사용자 피드백 보정 완료)
- 검증자: Verifier / QA Agent
- 검증 결과: 양호 (PASSED)
1. 개요 및 검증 범위
본 검증은 2026-08-02 자로 프로그래머에 의해 완료된 "B04/B05 배수유역 일원화 + 종단 테이블 구조물 연동" 기능에 대해 소스코드 구현 정합성을 계획서(docs/raw/PLAN.md) 대비 정밀 대조한 결과입니다.
2. 세부 검증 대조 항목
C-1. 저장소·API 일원화 (선행)
- B05 사본 엔진 및 데이터 정리:
B05_wf2_Route_Engine_Drainage_Store.py,B05_wf2_Route_Engine_Drainage_Basin.py,B05_wf2_Route_Router_Drainage.py파일을 완전 삭제하여 중복된 로직과 저장소 사본을 정리함.config_system.py내DRAINAGE_B05_DIRNAME을 삭제하고, B04의 공용 엔드포인트를 사용하도록 설정 완료.
- 경로 및 모델 확정 시점 저장 분리:
- B04는 "모델 확정" 시점, B05는 "경로 확정" 시점에
PUT /drainage/pipe-points를 호출하여 커밋되도록 보장함.
- B04는 "모델 확정" 시점, B05는 "경로 확정" 시점에
C-2 & C-3. B05 프론트 API 전환 및 UI 일원화
- API 클라이언트 단일화:
- B05 전용
fetchDrainageBasins등을 폐기하고, B04 API 클라이언트(fetchDetailPipePoints,computeDetailBasins등)를 재사용하도록 포팅 완료.
- B05 전용
- B05 UI 및 오버레이 갱신:
- 유역 클릭 선택을 위한
pointInRing판정 추가 및 목록 동기화. - [집중유역] 토글 버튼을 추가하여 유입 집중점 마커 표시 제어.
- 종단 Z 출처 및 관 개수 요약 정보 패널 상단 표기 추가.
- 마커 테두리 색을 기준으로 생성 사유(기본/자동/수동)를 구분하도록 개선.
- 유역 클릭 선택을 위한
C-4 ~ C-6. 세부 조작 및 종단 테이블 연동
- 좌클릭 전용 드래그 제한:
- B04와 B05의
pointerdown이벤트에서event.button === 0일 때만 드래그 조작이 시작되도록 제한하여 우클릭 메뉴와의 충돌 제거.
- B04와 B05의
- 유역 목록 스크롤 제어:
.b05-drainage__basins의 높이를 CSScalc(3 * --row-height + padding)식으로 변경하여 유역 개수가 많을 때 3행까지만 보이고 스크롤되도록 수정.
- 구조물 측점 연동 및 그래프 드래그:
setPipeStations및isPipeStation판정을 통해 사이드바 구조물 목록과 관 목록 동기화.- 그래프 측점선을 드래그(
attachStationDrag)하여 배관 위치를 즉각 조작하고 세부유역을 실시간 재산정하도록 연동함. - 우클릭 메뉴를 종단 그래프 칸(
.b05-profile__chart)에 배치하여 그래프 영역에서 배관의 추가·삭제 및 측점 조작을 일원화함.
C-7 & C-8. 품질 게이트 및 사용자 피드백 완결
- 700줄 제약 엄수:
- 로직이 비대해지는 것을 방지하기 위해
_UI_Profile_Structures.ts(113줄),B04_wf1_Surface_UI_MapOverlays.ts(149줄),_UI_Selection.ts(97줄),_UI_Drainage_Render.ts등을 분리 신설함. - 최종 빌드 및 검사(
ruff check,tsc --noEmit,vite build) 통과 완료.
- 로직이 비대해지는 것을 방지하기 위해
- 사용자 확인 피드백 반영:
- 휠 줌 반전: 2D 지도, 횡단도, CAD 뷰어 등 전반에 걸쳐 당기면 확대, 밀면 축소가 되도록 방향 반전 완료.
- 초기화 저장분 삭제:
DELETE /drainage/pipe-pointsAPI를 신설하여 초기화 클릭 시 저장된 json 및 GeoJSON 산출물까지 물리적으로 삭제한 후 자동배치로 갱신함. - 패널 리사이즈 배율 유지: 리사이즈 감지 시 뷰포트 오프셋과 범위를 재보정하여 이탈 방지.
- 선택 3자 동기화:
_UI_Selection.ts모듈을 신설하여 유역-그래프-구조물폼 3개 영역 간의 선택 및 강조 상호 갱신 구현 (가드 처리를 통해 무한 루프 차단). - 라벨 가독성: 배관 누가거리 라벨 뒤에 화이트 헤일로(
--map-halo) 효과를 얹어 위성지도 등에서도 가독성 확보.
3. 최종 결론
B04/B05 배수유역 데이터를 B04의 단일 데이터 소스로 일원화하고, 종단 그래프의 구조물 조작 드래그 및 우클릭 메뉴 동기화가 설계 스펙과 사용자 보정 요구사항에 부합하게 구현되었습니다. 코드 복잡성 제약(700줄 룰) 및 품질 기준을 완벽하게 만족하므로, 본 안건을 최종 **승인(PASSED)**합니다.