feat(phase4): SCAT~Rescue 6개 탭 Mock → API 전환 + 하드코딩 제거 #45

병합
htlee feature/scat-api-conversion 에서 develop 로 3 commits 를 머지했습니다 2026-03-01 01:44:02 +09:00
소유자

Summary

Phase 4 Mock → API 전환 (6개 탭)

  • SCAT: 구역/구간 조회 3개 API + PostGIS GEOMETRY 일괄 적용 (011_scat.sql)
  • Board: 매뉴얼 CRUD + 첨부파일 API (012_board_ext.sql)
  • HNS: 분석 CRUD 5개 API (013_hns_analysis.sql)
  • Prediction: 분석/역추적/오일펜스 7개 API (014_prediction.sql)
  • Aerial: 미디어/CCTV/위성 6개 API + PostGIS (015_aerial.sql)
  • Rescue: 구난 작전/시나리오 3개 API + JSONB (016_rescue.sql)

버그 수정

  • Prediction 분석 상세 500 에러: ACDNT_WEATHER 컬럼명 불일치 수정
  • 시뮬레이션 API: fetch('http://localhost:3001/...')api.post() CORS 해결

하드코딩 URL 제거

  • App.tsx: 중복 API_BASE_URL → import 재사용
  • MapView.tsx: GeoServer localhost:8080VITE_GEOSERVER_URL 환경변수
  • ShipInsurance.tsx: 해운조합 API → VITE_HAEWOON_API_URL 환경변수
  • server.ts CORS: 운영 도메인 → FRONTEND_URL 환경변수 통합
  • server.ts CSP: localhost 허용을 개발환경 전용으로 분리

변경 범위

  • DB 마이그레이션 5개 (012~016)
  • 백엔드 모듈 신규 3개 + 기존 2개 확장
  • 프론트엔드 API 서비스 신규 4개 + 컴포넌트 19개 수정
  • backtrackMockData.ts 삭제
  • 총 46 파일, +5,944 / -1,632 라인

Test plan

  • DB 마이그레이션 011~016 실행 확인
  • SCAT 구역/구간 데이터 로딩 확인
  • 게시판 매뉴얼 탭 CRUD 동작 확인
  • HNS 분석 목록/생성/삭제 확인
  • 확산예측 분석 목록 클릭 → 상세 로딩 확인 (500 에러 해소)
  • 확산예측 시뮬레이션 실행 시 CORS 에러 없음 확인
  • 항공방제 미디어/CCTV/위성 데이터 로딩 확인
  • 구조 시나리오 작전/시나리오 데이터 로딩 확인
  • frontend/backend 빌드 성공 확인

🤖 Generated with Claude Code

## Summary ### Phase 4 Mock → API 전환 (6개 탭) - **SCAT**: 구역/구간 조회 3개 API + PostGIS GEOMETRY 일괄 적용 (011_scat.sql) - **Board**: 매뉴얼 CRUD + 첨부파일 API (012_board_ext.sql) - **HNS**: 분석 CRUD 5개 API (013_hns_analysis.sql) - **Prediction**: 분석/역추적/오일펜스 7개 API (014_prediction.sql) - **Aerial**: 미디어/CCTV/위성 6개 API + PostGIS (015_aerial.sql) - **Rescue**: 구난 작전/시나리오 3개 API + JSONB (016_rescue.sql) ### 버그 수정 - Prediction 분석 상세 500 에러: ACDNT_WEATHER 컬럼명 불일치 수정 - 시뮬레이션 API: `fetch('http://localhost:3001/...')` → `api.post()` CORS 해결 ### 하드코딩 URL 제거 - App.tsx: 중복 API_BASE_URL → import 재사용 - MapView.tsx: GeoServer `localhost:8080` → `VITE_GEOSERVER_URL` 환경변수 - ShipInsurance.tsx: 해운조합 API → `VITE_HAEWOON_API_URL` 환경변수 - server.ts CORS: 운영 도메인 → `FRONTEND_URL` 환경변수 통합 - server.ts CSP: `localhost` 허용을 개발환경 전용으로 분리 ### 변경 범위 - DB 마이그레이션 5개 (012~016) - 백엔드 모듈 신규 3개 + 기존 2개 확장 - 프론트엔드 API 서비스 신규 4개 + 컴포넌트 19개 수정 - `backtrackMockData.ts` 삭제 - 총 46 파일, +5,944 / -1,632 라인 ## Test plan - [ ] DB 마이그레이션 011~016 실행 확인 - [ ] SCAT 구역/구간 데이터 로딩 확인 - [ ] 게시판 매뉴얼 탭 CRUD 동작 확인 - [ ] HNS 분석 목록/생성/삭제 확인 - [ ] 확산예측 분석 목록 클릭 → 상세 로딩 확인 (500 에러 해소) - [ ] 확산예측 시뮬레이션 실행 시 CORS 에러 없음 확인 - [ ] 항공방제 미디어/CCTV/위성 데이터 로딩 확인 - [ ] 구조 시나리오 작전/시나리오 데이터 로딩 확인 - [ ] frontend/backend 빌드 성공 확인 🤖 Generated with [Claude Code](https://claude.com/claude-code)
htlee added 3 commits 2026-03-01 01:43:04 +09:00
ACDNT_WEATHER 테이블의 실제 컬럼명에 맞게 weather 쿼리 수정
(WEATHER_DTM→OBS_DTM, WIND_SPD→WIND 등 존재하지 않는 컬럼 참조 제거)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
fetch('http://localhost:3001/...') → api.post('/simulation/run', ...)
배포 환경에서 CORS loopback 차단 문제 해결

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- App.tsx: 중복 API_BASE_URL 정의 → @common/services/api import
- MapView.tsx: GeoServer localhost:8080 → VITE_GEOSERVER_URL 환경변수
- ShipInsurance.tsx: 해운조합 API URL → VITE_HAEWOON_API_URL 환경변수
- server.ts CORS: 운영 도메인 → FRONTEND_URL 환경변수 통합
- server.ts CSP: localhost 허용을 개발 환경(NODE_ENV≠production)에만 적용

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
htlee merged commit 0540495e9f into develop 2026-03-01 01:44:02 +09:00
htlee 삭제된 브랜치 feature/scat-api-conversion 2026-03-01 01:44:03 +09:00
"로그인하여 이 대화에 참여"
No reviewers
레이블 없음
마일스톤 없음
담당자 없음
참여자 1명
알림
마감일
기한이 올바르지 않거나 범위를 벗어났습니다. 'yyyy-mm-dd'형식을 사용해주십시오.

마감일이 설정되지 않았습니다.

의존성

No dependencies set.

Reference: gc/wing-ops#45
No description provided.