diff --git a/frontend/src/components/korea/FleetClusterLayer.tsx b/frontend/src/components/korea/FleetClusterLayer.tsx index 3cde5fc..b7598f0 100644 --- a/frontend/src/components/korea/FleetClusterLayer.tsx +++ b/frontend/src/components/korea/FleetClusterLayer.tsx @@ -83,6 +83,17 @@ export function FleetClusterLayer({ ships, analysisMap: analysisMapProp, onShipS const filled = fillGapFrames(sorted); const corrData = corrRes.items; const corrTracks = trackRes.vessels; + + // 디버그: fetch 결과 확인 + const withTrack = corrTracks.filter(v => v.track && v.track.length > 0).length; + console.log('[loadHistory] fetch 완료:', { + history: history.length, + corrData: corrData.length, + corrTracks: corrTracks.length, + withTrack, + sampleTrack: corrTracks[0] ? { mmsi: corrTracks[0].mmsi, trackPts: corrTracks[0].track?.length, score: corrTracks[0].score } : 'none', + }); + const vessels = new Set(corrTracks.filter(v => v.score >= 0.7).map(v => v.mmsi)); // 3. React 상태 동기화 (패널 표시용) diff --git a/frontend/src/services/vesselAnalysis.ts b/frontend/src/services/vesselAnalysis.ts index e18b9c1..1a6d493 100644 --- a/frontend/src/services/vesselAnalysis.ts +++ b/frontend/src/services/vesselAnalysis.ts @@ -160,11 +160,17 @@ export async function fetchCorrelationTracks( hours = 24, minScore = 0.3, ): Promise { - const res = await fetch( - `/api/prediction/v1/correlation/${encodeURIComponent(groupKey)}/tracks?hours=${hours}&minScore=${minScore}`, - ); - if (!res.ok) return { groupKey, vessels: [] }; - return res.json(); + const url = `/api/prediction/v1/correlation/${encodeURIComponent(groupKey)}/tracks?hours=${hours}&minScore=${minScore}`; + console.log('[fetchCorrelationTracks] URL:', url); + const res = await fetch(url); + console.log('[fetchCorrelationTracks] status:', res.status, res.statusText); + if (!res.ok) { + console.warn('[fetchCorrelationTracks] 실패:', res.status); + return { groupKey, vessels: [] }; + } + const data: CorrelationTracksResponse = await res.json(); + console.log('[fetchCorrelationTracks] 응답:', data.vessels.length, '건'); + return data; } /* ── Fleet Companies ─────────────────────────────────────────── */ diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts index 2baa4a4..3472b81 100644 --- a/frontend/vite.config.ts +++ b/frontend/vite.config.ts @@ -115,8 +115,8 @@ export default defineConfig(({ mode }): UserConfig => ({ changeOrigin: true, secure: true, }, - '/api/prediction': { - target: 'http://localhost:8001', + '/api/prediction/': { + target: 'http://192.168.1.18:8001', changeOrigin: true, rewrite: (path) => path.replace(/^\/api\/prediction/, '/api'), },