Files
frontend/apps/sn/docs/작업내용/SFR-011-008-침수예측/004-fe-SFR-011-008-침수예측지도-기능분리-구현기록.md
T

2.6 KiB

침수예측지도 기능 분리 구현기록

작업 목적

  • 하수관망도 map/page.tsx에 포함된 침수예측현황 전용 로직을 기능 디렉터리로 이동한다.
  • 지도 페이지에는 공통 지도 구성과 침수예측 기능 연결 코드만 남겨 기능별 책임을 분명히 한다.

원본 및 변경 근거

  • 요구사항정의서 SFR-011-008 위험도 산정
  • 화면설계서 슬라이드 24, SN_MN010205 침수예측현황
  • 화면설계서 슬라이드 28, SN_MN010206 침수예측지도
  • 사용자 요청사항: map/page.tsx의 침수예측현황 관련 함수와 상태를 features 하위 해당 기능으로 이동

변경 내용

  • 침수예측 팝업 메시지 payload 검증을 기능 훅으로 이동했다.
  • 도시침수지도 자동 활성화 요청 이후의 재시도 상태와 팝업 응답 대상을 기능 훅에서 관리한다.
  • 도시침수지도 피처 선택, 지도 범위 이동, 분석결과 API 조회와 오버레이 생성·삭제를 기능 훅으로 이동했다.
  • 침수위험도 배지 색상 계산을 별도 기능 유틸리티로 분리하여 팝업 목록과 지도 오버레이가 함께 사용하도록 했다.
  • map/page.tsx에는 도시침수지도 레이어 활성화 요청과 팝업 메시지 위임만 남겼다.

수정 대상 파일

  • apps/sn/app/(map-layout)/map/page.tsx
  • apps/sn/src/features/fldngPredcPrst/lib/use-flood-prediction-map.ts
  • apps/sn/src/features/fldngPredcPrst/lib/flood-risk-grade.ts
  • apps/sn/src/features/fldngPredcPrst/ui/FldngPredcPrstPopupContent.tsx

영향 범위

  • 침수예측현황 행 선택 후 도시침수지도 자동 선택·이동·분석 오버레이 표시 흐름
  • 침수예측현황 목록과 지도 오버레이의 위험도 배지 색상
  • API 경로, 팝업 메시지 타입, 레이어명·레이어 타입과 사용자 동작은 변경하지 않는다.

검증

  • 신규 기능 파일 ESLint 검사 통과
  • pnpm --filter sn run typecheck 통과
  • git diff --check 확인
  • 실행 중인 개발 서버의 /map 경로 HTTP 응답 확인
  • 실행 중인 개발 서버를 유지하기 위해 별도 빌드는 수행하지 않는다.

롤백

  • useFloodPredictionMap의 상태·콜백·재시도 effect를 map/page.tsx로 되돌린다.
  • 오버레이 DOM 생성 함수와 날짜 포맷터를 map/page.tsx로 되돌린다.
  • 위험도 배지 유틸리티를 팝업 컴포넌트 내부 함수로 복원한다.

남은 리스크

  • 실제 로그인 세션에서 팝업 행을 선택해 레이어 자동 체크, 지도 이동, 오버레이 표시가 연속으로 유지되는지 최종 화면 확인이 필요하다.