- `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.8 KiB
4.8 KiB
Verification Report: B04 상세페이지·옵션 패널 재구성 (2026-07-17)
1. 검증 개요
- 검증 대상: B04(WF1 지표면) 상세 페이지 레이아웃 개편 및 옵션 패널 UI/UX 재구성
- 검증 일시: 2026-07-17
- 검증자: Verifier (Antigravity)
- 주요 목적: 불필요한 분석 실행/통계 영역을 제거하고, 15개 사전계산 지표면 모델을 효율적으로 비교·확정할 수 있는 2열 3D 뷰어 배치와 양방향 카메라 동기화 기능, 그리고 중앙 집중화된 옵션 패널의 동작 신뢰성을 확인.
2. 세부 검증 항목 및 결과
① 삭제 항목 확인
- 지면 필터 통계 제거:
UI_Page에서fetchSurfaceGroundStats호출부 및 관련 DOM 렌더링 코드가 정상적으로 삭제되었음을 확인. - 생성된 지표면 모델 카드 목록 제거: 기존의 복잡한 카드 형태 목록을 제거하고, 좌측 옵션 패널의 선택 드롭다운과 하단의 "모델 확정" 버튼으로 깔끔하게 통합됨.
② 좌측 사용자 옵션 패널 재정의
- 입력 포인트 클라우드 그룹:
- 드롭다운 라벨이 단순 일련번호에서
입력 LAS #{file.id}형태로 직관적으로 정리됨. - 파일명 항목이 생략되고 좌표계(EPSG), 원본 크기(MB), 포인트 수, 표시 포인트 수, 높이 범위 정보가 일관되게 표시됨.
- 드롭다운 라벨이 단순 일련번호에서
- 지면 필터 및 지표면 표현 선택:
- 사전계산 필터 3종(
grid_min_z,csf,pmf)과 지표면 표현 5종(tin,dtm,nurbs,implicit,meshfree)을 각각 단일 선택 Select 박스로 전환. SOURCE_FILTERS에서ransac이 성공적으로 배제되어, 실제 저장되지 않은 미작동 옵션의 노출을 막음.- 50만 샘플링(
POINT_CLOUD_SAMPLE_LIMIT상향) 규칙이 적용되어, 50만 초과 시 랜덤 50만 개만 표시되도록 백엔드Router.py와 프론트엔드가 연동됨.
- 사전계산 필터 3종(
- 표시 옵션 및 컨트롤 통합:
- 기존 뷰어 하단에 분산되어 있던 서피스/스무딩/등고선 토글 및 등고선 간격 폼이 옵션 패널 내부(
TerrainViewer.optionsGroup)로 모여 통합 제어됨.
- 기존 뷰어 하단에 분산되어 있던 서피스/스무딩/등고선 토글 및 등고선 간격 폼이 옵션 패널 내부(
- 버튼 재구성:
- 기존 "분석 실행" 대신 현재 선택 조건에 대응하는 모델의 ID를 전송하는 "모델 확정"(
POST .../surface/confirm) 버튼이 도입됨. - "초기화" 버튼 클릭 시 기본 필터(
csf) 및 표현(dtm), 각 뷰어의 3D 조작 옵션이 초기화되며 데이터가 재로드됨.
- 기존 "분석 실행" 대신 현재 선택 조건에 대응하는 모델의 ID를 전송하는 "모델 확정"(
③ 3D 뷰어 영역 (상세 영역)
- 2열 레이아웃 배치:
- 포인트클라우드 미리보기(
UI_Viewer)와 5종 지표면 모델 비교(UI_TerrainViewer)가 2열 그리드로 정렬되어 넓은 폭을 효율적으로 활용함. - 모바일/작은 화면(1180px 이하)에서는 1열로 대응되도록 반응형 CSS가 작성됨.
- 포인트클라우드 미리보기(
- 양방향 카메라 동기화:
viewer.onCameraChange및terrainViewer.onCameraChange를 통해 마우스 드래그/휠 스크롤 발생 시applyCameraState가 호출되어 두 화면의 카메라 시점(방향, 거리 배율, 타겟 배율)이 완벽히 연동됨.syncingCamera플래그로 무한 재귀 호출 방지 처리가 견고하게 설계됨.
- 3D 뷰어 내 배경지도/국가GIS 제거:
- 불필요하게 3D 뷰에 표출되던 GIS 레이어 및 위성 텍스처를 걷어내어 순수 포인트/지형 렌더링에 집중하고 프레임 레이트 성능을 높임.
④ 하단 2D 배경지도·GIS 레이어
- 기본값 변경: 배경지도는
satellite(위성), GIS 레이어는지적도로 기본 렌더링되도록MapViewer기본 상태 변경 완료. - 탑뷰(정사) 정합성: WGS84 위경도를 VWorld bbox 메타 범위를 기준으로 Canvas 2D 상에 단순 2D 선형 투영함으로써, 사영 왜곡이 없는 완벽한 정사 탑뷰 정합성을 확보함.
3. 기술적 적합성 및 안정성 검토
- Surgical Edit: 기존 기능에 필요한 부분만 정확하게 수정하였으며 불필요하게 인접 모듈을 어지럽히지 않음.
- 700줄 제한: 변경이 집중된
B04_wf1_Surface_UI_Page.ts는 약 350줄 수준으로,AGENTS.md의 단일 파일 700줄 제한 규정을 엄격히 만족함. - 수명 주기 버그 해결 유지: 기존에 해결되었던
hasConnected플래그 기반의 Three.js 콘텍스트 해제 및 재할당 로직이 개편 후에도 그대로 유지되어 마운트 에러가 발생하지 않음.
4. 종합 평가
- 판정: PASS (검증 완료)
- 개편된 B04 화면은 사전 계산된 모델의 신속한 비교 및 의사결정이라는 본래의 기획 의도에 맞게 간결하고 직관적으로 설계되었습니다. 불필요한 분석 트리거 프로세스가 단일 확정 버튼으로 대체되어 사용자 경험이 향상되었습니다.