Files
frontend/apps/sn/docs/작업검증/SFR-011-002-관로분석/001-qa-SFR-011-002-관로분석-통합검증결과.md
T

8.3 KiB

SFR-011-002 관로분석 FE 통합검증결과

1. 검증 목적

  • 관로분석 프론트 변경이 오류 전달 구조를 깨지 않고 유지되는지 확인한다.

2. 수행한 검증

  • 코드 리뷰로 PipeAnalysisPopupPage, PipeAnalysisDetailPopupPage, getData의 예외 흐름을 확인했다.
  • pnpm --filter sn exec tsc --noEmit를 실행했다.

3. 검증 결과

  • PipeAnalysisPopupPage.tsx의 엑셀 다운로드 캐스팅 경고는 수정 후 해소했다.
  • 집계/상세 팝업은 이제 Error.message가 존재하면 공통 경고문 대신 해당 메시지를 노출한다.
  • 관로분석 집계 헤더의 총 N건 문구가 제거됐다.
  • 집계 팝업은 10개 단위 페이지 렌더링으로 바뀌어 한 화면에 그리는 행 수를 제한한다.
  • 전체 TypeScript 검증은 저장소 기존 오류로 실패했다.

4. 기존 오류 메모

  • app/(map-layout)/map/components/common/index.ts 타입 불일치
  • app/html/(with-base-layout)/layout.tsx import 누락
  • packages/common/business_components/src/ui/chart/* implicit any

5. 미수행 검증

  • 로컬 브라우저에서 실제 관로분석 팝업을 열어 세 분석구분을 재조회하는 수동 검증은 이번 턴에서 수행하지 못했다.

6. 판단

  • 프론트 수정 범위 내에서 신규 타입 오류를 만들지는 않았다.
  • 실제 장애 해소 여부의 최종 판정은 백엔드 반영본과 함께 브라우저 재조회 확인이 필요하다.

7. 2026-07-16 관로현황 페이징 유지보수 검토

  • 코드 리뷰로 PipeAnalysisDetailPopupPage.tsx의 조회, 페이지 이동, 정렬 변경, 다운로드가 각각 appliedFilters, appliedSort를 공유하도록 연결된 것을 확인했다.
  • 페이지 이동은 마지막 조회 조건을 유지하고, 정렬 변경은 마지막 조회 조건으로 1페이지 재조회하도록 분리되어 기존 페이징 계약을 복구했다.
  • 입력 중인 필터를 바로 읽던 기존 흐름 대신 조회 시점에만 적용 조건을 갱신하므로, 미적용 초안 필터 때문에 상세 팝업 결과 수나 페이지 상태가 흔들리던 회귀를 방지한다.
  • 상세 팝업은 페이지당 10건과 별도 테이블 스크롤 영역으로 조정되어 현재 팝업 높이에서 페이지네이션이 화면 하단에 노출되는 구조로 바뀌었다.
  • 브라우저 실동작 최종 확인은 사용자 수동 검증 기준으로 진행한다.

8. 2026-08-26 대구광역시 서구 브라우저 검증

  • 브라우저에서 관로분석 > 대구광역시 > 서구 > 조회를 직접 실행했다.
  • 처리구역 선택지에 달서천처리구역, 북부처리구역이 표시됐다.
  • 결과표에 전체 656.701km, 달서천처리구역 413.045km, 북부처리구역 243.656km와 경과년도 구간별 값이 표시됐다.
  • 재질별은 처리구역 2행, 경과년도&재질은 8행이 렌더링됐고 두 화면 모두 브라우저 오류 로그가 없었다.
  • 검증 화면: COMMON_DOCS_ROOT/작업내용/SFR-011-002-관로분석/검증/20260826-대구광역시-서구-조회결과.jpg
  • 변경 파일 TypeScript 구문검사 0건, Prettier와 git diff --check 통과.
  • SN 전체 타입검사는 동시 작업 파일 cty-fldng-prvtn-biz-excel.ts의 선행 타입 오류 3건으로 차단됐으며, 이번 관로분석 변경 파일에서는 오류가 확인되지 않았다.
  • 판정: 화면 표출 PASS.

9. 2026-08-26 관로현황 용도·관재질 검색조건 검증

  • 용도 선택지: 전체, 미분류, 합류관, 차집관, 우수관, 오수관, 기타의 7개를 브라우저에서 확인했다.
  • 관재질 선택지: 공통 코드 193개와 전체를 합한 194개를 확인했다.
  • 전국 API 실데이터: 미분류 8,577건, 기타 5,921건.
  • 대구광역시 서구 브라우저 조회: 미분류 51건 중 10건 표출, 관재질 MOP012 127건 중 10건 표출.
  • 브라우저 오류 로그 없이 필터가 API 요청과 결과표에 반영됐다.
  • 검증 화면: COMMON_DOCS_ROOT/작업내용/SFR-011-002-관로분석/검증/20260826-관로현황-용도미분류-조회.jpg
  • SN 전체 TypeScript, Prettier, git diff --check 통과.
  • 판정: PASS.

10. 2026-08-26 관로현황 최상위 지도창 포커스 검증

  • 실제 Chrome에서 하수관망도 → 관로분석 → 재질별 결과 → 관로현황의 3단계 창 계층을 구성했다.
  • 관로 118529, 118530 행 클릭 시 최상위 지도창에서 해당 관로 이동·강조와 우측 상세정보 갱신을 확인했다.
  • 상세창 직접 focus()만 사용하면 Chrome에서 상세창이 활성 상태로 남았고, 상세창 blur()만 추가하면 중간 관로분석창이 활성화되는 차이를 확인했다.
  • 최종 구현은 상세창·중간창 blur()와 이름 기반 지도창 focus(), 지도창 메시지 처리 전후 self-focus를 함께 적용했다.
  • 자동화 제어는 창 전환 순간 기존 상세창 제어가 종료되어 OS 전경창 최종 상태의 재확인이 제한됐다. 실제 사용자 클릭 기준 수동 포커스 확인은 남은 검증 항목이다.
  • SN 전체 TypeScript와 git diff --check 통과. map/page.tsx 전체 Prettier는 기존 파일의 선행 포맷 차이로 통과하지 않았고 이번 추가 구문은 기존 스타일에 맞췄다.

11. 2026-08-26 관로 상세 유하방향 근거 검증

  • 수정 전 Chrome 지도 상세에서 관로 118529의 유하방향 근거가 -로 표출되는 것을 확인했다.
  • 같은 관로의 유하방향 포함 API 응답은 flowDirectionBasis=GIS 작도순서, flowDirectionBasisCode=GEOMETRY_FALLBACK, flowDirectionRuleLabel=geometry 시점->종점 fallback을 반환했다.
  • 관로현황 행과 보강 API 응답의 병합 결과에 위 세 필드가 유지되는 것을 확인했다.
  • map/page.tsx 변경 구문 TypeScript 파서와 git diff --check는 통과했다.
  • SN 전체 TypeScript는 동시 변경된 기존 event.source.postMessage 타입 오류 1건으로 차단됐으며 이번 유하방향 보강 코드의 추가 오류는 없었다.
  • Chrome 입력 제어가 관로행 클릭 단계에서 시간 초과되어 수정 후 최종 화면 표출은 사용자 수동 확인 항목으로 남긴다.

12. 2026-08-28 하수관로 상세 공통 보강 재검증

  • 재현 관로: 시설관리번호 2015303665, 관리기관코드 5690000, FID tb_ms_swage_ppl.1135978.
  • 실 API 응답: flowDirectionBasis=시종점 관저고, flowDirectionBasisCode=DEPTH, flowDirectionRuleLabel=맨홀 표고-관로 깊이 관저고 높은 쪽->낮은 쪽, 조회건수 1건.
  • 로컬 브라우저에서 같은 관로를 지도 상세 흐름으로 열어 우측 기본정보의 유하방향 근거가 시종점 관저고로 표시되는 것을 확인했다.
  • 검증 화면: COMMON_DOCS_ROOT/작업내용/SFR-012-005-하수관로유하방향표출/검증/20260828-관로-2015303665-유하방향근거.png.
  • 변경 컴포넌트 Prettier와 TypeScript 구문검사, git diff --check 통과.
  • SN 전체 TypeScript는 기존 map/page.tsx:3659의 postMessage 타입 오류 1건만 남았고 이번 공통 보강 코드의 추가 오류는 없다.
  • ESLint는 설치 상태에서 eslint-plugin-react-hooks를 찾지 못해 실행 환경 오류로 완료하지 못했다.
  • 판정: PASS.

2026-09-30 관로분석 시도 기본값 부산 적용

  • quick_vibe: 사용자 지시로 시도 전체 옵션을 제거하고 기본 시도를 부산광역시(26)로 설정했다.
  • PipeAnalysisPopupPage.tsx: 시도 전체 option 및 공통 목록의 값 0을 제외한다. 시군구·처리구역 전체 선택은 유지한다.
  • pipeAnalysisUtils.ts: 집계 기본 필터 ctpvCd=26. 최초 자동 조회와 초기화에서 같은 기본값을 사용한다. 계정 지역 제한은 기존 applyScopeToSummaryFilters를 우선한다.
  • API/백엔드/DB 및 상세 필터 기본값은 변경하지 않는다.
  • 원본: 요구사항정의서 기능 추적표 88행 SFR-011-002, 화면설계서 10번 SN_MN010103. 부산 기본값은 이번 사용자 지시를 적용한다.
  • 검증: git diff --check 통과. ESLint는 eslint-plugin-react-hooks 설치 누락으로 실행 실패. 실제 브라우저 확인과 전체 빌드는 미실행이며 사용자 개발 서버를 유지했다.
  • 롤백: 집계 기본 시도를 0으로 되돌리고 시도 전체 option을 복원한다.