15 KiB
15 KiB
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차 구현 점검
- 코드 기준 확인
flowRiskPopupregistry가 실제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_componentschart 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.tsprops 타입 불일치app/(map-layout)/map/components/pipeAnalysis/PipeAnalysisPopupPage.tsxJSON[]캐스팅 경고app/html/(map-layout)/map/components/common/index.tsprops 타입 불일치app/html/(with-base-layout)/layout.tsx모듈 경로 오류packages/common/business_components/src/ui/chart/*.tsximplicit 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
WaterRiskServiceTest4건과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
WaterRiskServiceTest5건이 통과했다. - 개발 백엔드와 프론트 프록시 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와 FEgit 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.tsxESLint와 프론트·공통 문서 저장소의git diff --check가 통과했다. - 실행 중인
sn개발 서버가 없어 로그인 화면의 실제 줄바꿈·배치는 확인하지 않았다.