KCG 모니터링 대시보드
Go to file
htlee e196ee292c feat: korea-layers-enhancement 이관 — 이란 시설 deck.gl SVG 전환 + AI 챗 + 아이콘 품질 통합
이란 시설 deck.gl 전환:
- OilFacilityLayer/AirportLayer/MEFacilityLayer/MEEnergyHazardLayer → IconLayer(SVG) + TextLayer
- 26개 고유 SVG 아이콘 (배경 원형 + 색상 테두리 + 고유 실루엣)
- ReplayMap/SatelliteMap: DeckGLOverlay + 줌 스케일 + 통합 팝업

한국 군사/정부/NK 아이콘 SVG 업그레이드:
- createMilitaryLayers: 군사기지 5종 + 정부기관 7종 + NK 발사장 7종 → SVG IconLayer

라벨 가독성 개선 (이란/한국 공통):
- TextLayer fontSettings: { sdf: true } + outlineWidth: 8 → 사막/위성 배경 위 선명 테두리
- 라벨 폰트 크기 ~1.2배 상향

이란 데이터 이관:
- meEnergyHazardFacilities.ts: 중동 에너지/위험시설 84개
- sampleData: 나탄즈-디모나 핵시설 교차공격 이벤트 (D+20)
- fishing-zones 좌표 보정, types overseasUK→overseasIsrael, vite.config /ollama 프록시

기타:
- AiChatPanel: AI 해양분석 챗 UI (API URL placeholder)
- EventLog에 AiChatPanel 연동 (한국 탭)
- IranDashboard LayerPanel 카운트 전수 보정 + OverseasTreeNode 3단계 트리

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 14:48:58 +09:00
.claude feat: 센서 그래프 실데이터 + 선박 모달 UI 개선 + KST/UTC 라디오 2026-03-18 09:23:45 +09:00
.gitea/workflows fix: prediction 배포 스크립트 수정 — health timeout 60초 + tar.gz 재시도 수정 2026-03-20 12:20:54 +09:00
.githooks feat(backend): OSINT/Satellite 수집기 + Caffeine 캐시 통일 + REST API 2026-03-18 04:04:18 +09:00
backend perf: 렌더링 성능 최적화 + 환적 Python 이관 + 중국어선감시 통합 (#158) 2026-03-23 13:16:24 +09:00
database perf: 렌더링 성능 최적화 + 환적 Python 이관 + 중국어선감시 통합 (#158) 2026-03-23 13:16:24 +09:00
deploy feat: Python 어선 분류기 + 배포 설정 + 백엔드 모니터링 프록시 2026-03-20 12:10:21 +09:00
docs docs: 릴리즈 노트 정리 (2026-03-23.4) (#159) 2026-03-23 13:19:26 +09:00
frontend feat: korea-layers-enhancement 이관 — 이란 시설 deck.gl SVG 전환 + AI 챗 + 아이콘 품질 통합 2026-03-23 14:48:58 +09:00
prediction perf: 렌더링 성능 최적화 + 환적 Python 이관 + 중국어선감시 통합 (#158) 2026-03-23 13:16:24 +09:00
.editorconfig chore: 팀 워크플로우 초기 구성 (react-ts) 2026-03-17 08:42:46 +09:00
.gitignore fix(deploy): application-prod.yml 코드 내장 + 외부 설정 참조 제거 2026-03-18 04:38:25 +09:00
.node-version chore: 팀 워크플로우 초기 구성 (react-ts) 2026-03-17 08:42:46 +09:00
.npmrc chore: 팀 워크플로우 초기 구성 (react-ts) 2026-03-17 08:42:46 +09:00
.prettierrc chore: 팀 워크플로우 초기 구성 (react-ts) 2026-03-17 08:42:46 +09:00
CLAUDE.md fix(ci): package-lock.json 제거 후 npm install (플랫폼 호환) 2026-03-17 14:29:09 +09:00
README.md feat: KCG 모니터링 대시보드 초기 프로젝트 구성 2026-03-17 09:01:18 +09:00
workflow-version.json chore: 팀 워크플로우 초기 구성 (react-ts) 2026-03-17 08:42:46 +09:00

React + TypeScript + Vite

This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.

Currently, two official plugins are available:

React Compiler

The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see this documentation.

Expanding the ESLint configuration

If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules:

export default defineConfig([
  globalIgnores(['dist']),
  {
    files: ['**/*.{ts,tsx}'],
    extends: [
      // Other configs...

      // Remove tseslint.configs.recommended and replace with this
      tseslint.configs.recommendedTypeChecked,
      // Alternatively, use this for stricter rules
      tseslint.configs.strictTypeChecked,
      // Optionally, add this for stylistic rules
      tseslint.configs.stylisticTypeChecked,

      // Other configs...
    ],
    languageOptions: {
      parserOptions: {
        project: ['./tsconfig.node.json', './tsconfig.app.json'],
        tsconfigRootDir: import.meta.dirname,
      },
      // other options...
    },
  },
])

You can also install eslint-plugin-react-x and eslint-plugin-react-dom for React-specific lint rules:

// eslint.config.js
import reactX from 'eslint-plugin-react-x'
import reactDom from 'eslint-plugin-react-dom'

export default defineConfig([
  globalIgnores(['dist']),
  {
    files: ['**/*.{ts,tsx}'],
    extends: [
      // Other configs...
      // Enable lint rules for React
      reactX.configs['recommended-typescript'],
      // Enable lint rules for React DOM
      reactDom.configs.recommended,
    ],
    languageOptions: {
      parserOptions: {
        project: ['./tsconfig.node.json', './tsconfig.app.json'],
        tsconfigRootDir: import.meta.dirname,
      },
      // other options...
    },
  },
])