Files
frontend/apps/sn/docs/작업검증/SFR-011-007-통수위험분석/002-qa-SFR-011-007-통수위험분석-통합검증결과.md
T

15 KiB
Raw Blame History

SFR-011-007 통수위험분석 통합 검증 결과

1. 문서 목적

  • SFR-011-007 통수위험분석의 FE 검증 결과를 기능당 1개 문서로 누적 관리한다.
  • 현재 문서는 설계 초안 점검부터 FE-only 프로토타입 코드 점검, 수동 피드백 반영 상태까지의 결과를 기록한다.

2. 수행한 검증 요약

2.1 2026-05-18 설계 단계 점검

  • 수행 범위
    • 작업지시 문서 해석
    • 템플릿 문서 구조 확인
    • 공통/FE 문서 세트 정의
    • 예상 수정 파일, FE-only 범위, BE 필요 범위 분리
  • 미수행 범위
    • FE 코드 구현
    • 브라우저 검증
    • API 응답 확인

2.2 2026-05-18 FE-only 1차 구현 점검

  • 코드 기준 확인
    • flowRiskPopup registry가 실제 WaterRiskPopupContent로 연결됐다.
    • WaterRiskPopupPage.tsx에서 결과 조회/설정 현황/staged 편집/preview UI가 구현됐다.
    • map/page.tsx에서 popup sync, 선택 지역 강조, sample rain grid overlay, 설정 편집 중 하수관로 선택 인터셉트가 구현됐다.
  • 타입체크
    • NODE_OPTIONS=--max-old-space-size=4096 pnpm exec tsc --noEmit --incremental false --pretty false
    • 결과: 이번 변경분 관련 신규 오류는 제거됐다.
    • 잔여 오류: 저장소 기존 오류만 남음
      • components/common/index.ts 타입 불일치
      • PipeAnalysisPopupPage.tsx의 JSON[] 캐스팅 경고
      • app/html/** 기존 타입/모듈 오류
      • packages/common/business_components chart implicit any
  • 미수행
    • 실제 브라우저 동작 검증
    • 실제 API 연동 검증

2.3 2026-05-19 FE 프로토타입 UI 보완 점검

  • 코드 기준 확인
    • 결과 조회/설정 현황 mock 데이터가 확대되어 페이지네이션이 실제로 노출되는 상태로 바뀌었다.
    • 결과/설정 toolbar 버튼 정렬, 헤더 컬러, 본문 행 배경이 프로토타입 기준으로 정리됐다.
    • 상세정보 카드는 표 구조, compact spacing, 유출유량 초과 강조 등 사용자 피드백 기반 보완이 반영됐다.
  • 수동 피드백 반영
    • 페이지네이션과 상세정보 카드 UI는 사용자 확인 기준으로 여러 차례 보정됐다.
    • 상세정보 카드의 지도 기준 고정 규칙은 현재도 추가 브라우저 확인이 필요한 항목으로 남아 있다.
  • 미수행
    • 자동 브라우저 캡처 기반 검증
    • 실제 API 응답/저장/다운로드 검증

2.4 2026-05-19 FE 추가 검증 실행

  • 로컬 응답 확인
    • http://localhost:3002/popup/flowRiskPopup
    • 결과: HTTP 200 응답 확인
  • 타입체크
    • 실행 위치: frontend/apps/sn
    • 실행 명령: .\node_modules\.bin\tsc.cmd --noEmit --incremental false --pretty false
    • 결과: 이번 통수위험분석 변경으로 새로 유입된 타입 오류 1건(buildWaterRiskInfoAnchor)을 수정했고, 재실행 후 남은 오류는 저장소 기존 오류만 확인됐다.
    • 잔여 기존 오류
      • app/(map-layout)/map/components/common/index.ts props 타입 불일치
      • app/(map-layout)/map/components/pipeAnalysis/PipeAnalysisPopupPage.tsx JSON[] 캐스팅 경고
      • app/html/(map-layout)/map/components/common/index.ts props 타입 불일치
      • app/html/(with-base-layout)/layout.tsx 모듈 경로 오류
      • packages/common/business_components/src/ui/chart/*.tsx implicit any
  • 미수행
    • 지도 상호작용을 포함한 실제 브라우저 자동 검증
    • 실제 API 연동 검증

2.5 2026-05-19 상세정보 카드 상호작용 보정

  • 코드 기준 확인
    • 상세정보 카드는 선택된 중점관리지역 geometry를 기준으로 오른쪽 anchor를 잡는 방식으로 재조정됐다.
    • 지도 렌더링 중에는 같은 anchor를 기준으로 카드 위치를 갱신하는 구조로 정리됐다.
  • 수동 피드백 반영
    • 사용자 기준으로 “화면 고정”이 아니라 “중점관리지역 오른쪽에 붙은 상태로 이동”해야 한다는 요구를 반영했다.
  • 미수행
    • 실제 브라우저 drag/zoom 상황에서 최종 체감 확인

3. 현재 검증 상태

3.1 통과

  • 문서 구조가 SFR-012-003 템플릿 기준과 맞는지 확인
  • 공통 설계서, 공유기록, FE 작업카드, 구현기록, 검증 계획/결과 문서 세트 정의 완료
  • 구현 승인 전 코드 미수정 원칙 반영
  • FE-only 프로토타입 범위의 결과 조회/설정 현황/지도 강조/staged 편집 코드 반영 완료
  • 로컬 flowRiskPopup 경로의 HTTP 200 응답 확인
  • 이번 통수위험분석 변경으로 인한 신규 타입 오류 제거

3.2 미실행

  • 실제 브라우저에서의 통수위험 아이콘 진입
  • 실제 popup 렌더링 재확인
  • 실제 지도 drag/zoom 상태에서 상세정보 카드 anchor 규칙 재확인
  • 실제 API 연동 검증

3.3 보류

  • 실제 BE 연동 검증
  • 다운로드 파일 검증
  • 권한 범위 검증

4. 보류/리스크

  • 상세정보 카드 anchor 규칙은 FE 프로토타입 단계에서 반복 조정된 항목이라 운영 규칙 확정 전 재검토가 필요하다.
  • 동적 관로 컬럼과 지도 overlay는 실제 API 응답 구조 확정 전까지 mock 기준으로만 검토 가능하다.
  • 실제 다운로드/저장 후처리와 파일 결과는 아직 확인되지 않았다.

5. 다음 검증 착수 조건

  • dev 서버 또는 로컬 미리보기 진입 가능
  • mock 데이터 또는 초기 API 응답 구조 준비
  • 인증 가능한 브라우저 환경에서 지도 조작 수동 검증 가능

6. 2026-08-18 강우이벤트 상태별 탭 연동 검증

  • Java WaterRiskServiceTest 4건과 compileJava가 성공했다.
  • 개발 DB 직접 API에서 IN_PROGRESS=0건, ENDED=6건을 확인했다.
  • 종료 이력 6건은 위험 4건·정상 2건이며 기존 6개 성공모델 시험결과와 일치한다.
  • 프론트 3002 미들웨어 경유 API도 현재 위험 0건·과거 이력 6건으로 동일하게 응답했다.
  • 변경한 FE 4개 파일의 ESLint는 오류·경고 없이 통과했다.
  • TypeScript 단독 검사는 기존 tsconfig.json의 ignoreDeprecations 값과 실행 TypeScript 버전 불일치로 중단됐으며 변경 파일 오류는 ESLint와 실행 중 Next 개발서버 컴파일로 분리 확인했다.
  • 브라우저 자동검증 환경에는 로그인 세션이 없어 로그인 화면까지만 확인했다. 사용자의 로그인된 Chrome에서 탭 전환과 과거 6건 표시는 최종 수동 확인 대상으로 남긴다.
  • 사용자 소유 프론트 3002·백엔드 8883은 종료하거나 재시작하지 않았다.

7. 2026-08-18 임시 GIS 관로·맨홀 매핑 검증

  • KH_HM 대표실행의 SWMM 관로 184건과 실제 GIS 관로 geometry 184건이 모두 연결됐다.
  • SWMM 맨홀 180건과 실제 GIS 맨홀 geometry 180건이 모두 연결됐다.
  • 관로 capacity 범위는 0.00420~0.83100이며 0.25/0.50/0.75/1.00 고정 색상구간 적용을 확인했다.
  • 맨홀 180건의 Flooding 양수 건수는 0건이므로 현재 시험화면에서는 모두 정상 파랑으로 표시된다.
  • 지도요약은 누적강우 52.3mm, 예측강우 39.89mm, 최대 침수유량 NULL(-)이다.
  • 프론트 3002 프록시에서도 관로·맨홀 geometry가 각각 184/184, 180/180으로 반환됐다.
  • Java Service 테스트와 FE 대상 ESLint가 통과했다.

10. 2026-08-18 팝업 크기·시간갱신 정적검증

  • 팝업 생성 정의는 1380×900이고 페이지 크기는 10건이다. 화면 컴포넌트에서는 창 크기를 다시 변경하지 않는다.
  • 현재 탭 전용 자동갱신은 다음 HH:00에 시작하고 이후 1시간 간격이며 effect cleanup에서 timeout·interval을 모두 해제한다.
  • 현재 탭 설명문 제거와 FE 대상 ESLint 통과를 확인했다.
  • 과거분석이력에서 현재로 전환할 때 결과페이지는 비우되 분석기준시간은 현재 정시를 계속 표시하며 DB 0건에도 사라지지 않는다.
  • 분석기준시간 라벨·값이 현재 탭 행 오른쪽 끝에 표시되고 검색패널에서 제거된 것을 정적 확인했다.
  • 행 클릭 성공 안내문 제거와 오류 메시지 조건부 렌더링을 확인했다.
  • 보령 동대궁촌의 목록 최대 침수유량과 지도카드 값이 모두 121.48m³/s로 일치함을 실 API로 확인했다.
  • 지도카드 안내는 GIS 매핑 관로의 Capacity >= 0.8 지역 위험 기준만 표시한다.
  • 페이지별 데이터 길이·스크롤바에 따른 전체표 확대축소를 제거하고 1320px 고정폭·10개 열 비율·긴 행정명 말줄임 처리를 확인했다.
  • 팝업 컴포넌트에 window.resizeTo 호출이 없고 창 크기는 popupDefinitions의 1380×900으로만 결정되는 것을 정적 확인했다. 검색·결과영역의 overflow 숨김과 결과영역 좌우 여백 보정은 유지한다.

9. 2026-08-18 결과표 헤더·강우시작시간 검증

  • rainStartedAt이 실제 강우이벤트 시작시각으로 반환되는 것을 확인했다.
  • 사천 2026-07-01 03:00, 완도 2026-07-01 01:00과 누적·예측강우 값이 같은 행에 표시되는 계약을 확인했다.
  • 2단 그룹헤더는 총 10개 데이터 열과 일치하며 로딩·빈 결과 colSpan도 10으로 통일했다. 최대 침수 열은 m³/s 유량으로 정정했다.
  • Java Service 테스트와 FE 대상 ESLint가 통과했다.
  • 관리번호 15 완도는 MS 중점관리지역 geometry가 없어 임시 공간매핑이 불가능하다.

11. 2026-08-20 공통 결과 그리드·정렬 검증

  • 통수위험 전용 <table>과 UiPageNations 직접 사용이 제거되고 main 공통 MapPopupDataTable로 단일화된 것을 정적 확인했다.
  • 2단 그룹 헤더의 실제 데이터 열은 10개이며 위험 여부를 제외한 요청 9개 열에만 sortable이 설정됐다.
  • 공통 빈 결과 문구는 조회된 결과가 없습니다.이고 공통 회색 헤더·선택행·페이지네이션을 그대로 사용한다.
  • 변경한 FE 2개 파일의 ESLint는 오류·경고 없이 통과했다.
  • Java WaterRiskServiceTest 5건이 통과했다.
  • 개발 백엔드와 프론트 프록시 API에서 정렬 파라미터 전달 및 오름차순·내림차순 결과 변화를 확인했다.
  • 자동 브라우저에는 로그인 세션이 없어 로그인 화면까지만 확인했다. 로그인된 사용자 Chrome에서 최종 표 렌더링 체감은 수동 확인 대상으로 남긴다.
  • 페이지 조회 중 조회 버튼의 disabled 속성이 변경되지 않아 버튼 색상 깜빡임이 발생하지 않는 구조를 확인했다.
  • 표·열 layout과 데이터행 높이 고정, 본문 한 줄 말줄임을 코드에 반영했다.
  • 사용자 Chrome 수동 확인에서는 1·2페이지 전환 시 그리드가 미세하게 달라 보이는 현상이 계속 관찰됐다. 기능 오류는 아니며 사용자 결정으로 추가 보정 없이 알려진 UI 잔여사항으로 남긴다.

13. 2026-08-20 main 디자인 통합 충돌 검증

  • page.tsx, WaterRiskPopupPage.tsx의 충돌 마커가 0건임을 확인했다.
  • page.tsx는 main 대비 통수위험 선택초기화·SWMM 카드 변경만 남고 비통수위험 충돌은 upstream 구조로 복원됐다.
  • WaterRiskPopupPage.tsx는 main 공통 팝업 구조를 유지하면서 정렬·최대 침수유량·종료 메시지를 포함한다.
  • 통수위험 팝업·클라이언트·공통 지도팝업 테이블·메시지 타입 대상 ESLint는 오류 0건이다. page.tsx에는 main HEAD에도 존재하는 import 순서 경고 1건만 남는다.
  • 임시 TypeScript 검사에서 이번 변경 파일 신규 오류는 없으며 기존 준설·도시침수예방·조사·공통 테이블의 unknown 타입 오류와 공통 패키지 모듈 해석 오류가 유지된다.

12. 2026-08-20 지도 상태카드·팝업 종료 검증

  • 정보카드의 강우·침수 수치 표와 표 내부 구분선, 위험상태 배지가 유지되는 것을 정적 확인했다.
  • capacity 설명영역 자체에는 구분선을 두지 않고 수치표 시작 위치에 상단 경계선을 표시하며 설명의 위험=#ff1c15, 정상=#1677ff 색상 계약을 사용한다.
  • 팝업 pagehide·beforeunload 종료 메시지와 예비 close watcher가 지역·관로·맨홀 source와 결과행·mapView·anchor·card style을 초기화하는 흐름을 확인했다.
  • page.tsx 대상 ESLint와 FE git diff --check가 통과했다.

8. 2026-08-18 탭별 검색조건·분석기준시간 검증

  • 목록 API에서 대표실행 ANLS_CRTR_DT가 analysisBaseAt으로 반환되는 것을 확인했다.
  • 개발 DB 현재 진행중 이벤트가 0건이어도 현재 탭 분석기준시간은 현재 정시를 표시하고 그리드만 0건이다.
  • 과거 종료결과에서 실제 2026-07-01 01:00, 03:00, 05:00 등의 분석기준시간이 반환됐다.
  • 과거 종료결과 전체의 상단 최신 분석기준시간은 2026-07-06 08:00으로 반환됐다.
  • Java Service 테스트와 FE 대상 ESLint가 통과했다.

14. 2026-08-26 과거분석이력 최신순·중복 키 검증

  • 정렬 파라미터가 없는 기본 요청도 백엔드 RAIN_BGNG_DT DESC에 따라 2026-08-26 07:00, 2026-08-25 13:00, 10:00, 06:00 순으로 반환된다.
  • 2026-08-25 경기 가평 지역 2건은 기존 키가 1개로 충돌했지만 강우시작시간·분석기준시간을 포함한 신규 키는 2개 모두 고유하다.

15. 2026-08-31 초단기예보격자망 자동 활성화 검증

검증 항목 결과 비고
통수위험 선택 메시지 연계 정적 통과 유효한 결과행·mapView 수신 후 체크 요청 생성
기존 체크 상태 보존 정적 통과 요청 레이어를 기존 배열에 추가하는 방식
동일 기능 재실행 정적 통과 행 선택마다 requestKey 증가
트리 가시성 정적 통과 대상 노드와 강우관련 조상 그룹 펼침
실제 레이어 ON 정적 통과 공통 checkSpecificNode의 지도 반영 경로 재사용
공통 지도 패키지 빌드 통과 pnpm --filter @common/business_components run build
sn TypeScript 검사 통과 tsc --noEmit --incremental false, ignoreDeprecations=5.0 명령줄 보정
브라우저 수동 검증 대기 실제 결과 행 클릭 후 격자망 체크·WFS 표출 확인 필요
  • Prettier 실행 파일은 현재 workspace에 설치되어 있지 않아 별도 포맷 검사는 수행하지 못했다.

16. 2026-09-17 현재·과거분석이력 위험 판정기준 안내 검증

  • 현재·과거분석이력이 같은 MapPopupDataTable의 actions 안내문을 공유하므로 두 탭에 동일한 판정기준이 표시되는 구조를 정적 확인했다.
  • 안내문이 (GIS 매핑 관로 중 Capacity 0.8 이상이 1개라도 있으면 위험, 없으면 정상)으로 반영됐고 지도 요약카드의 기존 기준과 일치함을 확인했다.
  • 안내문의 위험=#ff1c15, 정상=#1677ff 색상과 굵기 또한 지도 요약카드와 동일하게 적용했다.
  • 데이터 조회, 행 선택, 위험 판정, API 요청·응답 코드는 변경하지 않았다.
  • 대상 WaterRiskPopupPage.tsx ESLint와 프론트·공통 문서 저장소의 git diff --check가 통과했다.
  • 실행 중인 sn 개발 서버가 없어 로그인 화면의 실제 줄바꿈·배치는 확인하지 않았다.