KCG 모니터링 대시보드
Go to file
htlee 13427f32bb perf: 렌더링 성능 최적화 — deck.gl updateTriggers + 선박 토글 MapLibre filter 전환
- deck.gl updateTriggers 적용: 정적 레이어(4개 sub-hook) + 분석 레이어 + KoreaMap 인라인 레이어
  → 줌 변경 시 accessor 재평가 최소화
- 선박 카테고리/국적 토글: JS-level 배열 필터링 → MapLibre GPU-side filter 표현식
  → 토글 시 13K GeoJSON 재생성 + GPU 재업로드 제거
- Ship.mtCategory/natGroup 사전 계산: propagateShips 후 1회 계산, 이후 Set.has() O(1)
  → getMarineTrafficCategory() 13K×N회 호출 제거
- onPick useCallback 안정화: 매 렌더마다 28개 정적 레이어 불필요 재생성 방지
- SVG 데이터 URI 모듈 레벨 캐싱: 함수 호출 간 캐시 유지
- useAnalysisDeckLayers 데이터/스타일 분리: 줌 변경 시 ships 필터링 스킵

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 12:24:36 +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 feat: 중국어선감시 탭 강화 + localStorage 상태 영속화 (#152) 2026-03-23 09:31:38 +09:00
database feat: 선단 등록 DB + 어망/어구 정체성 추적 시스템 2026-03-20 18:07:15 +09:00
deploy feat: Python 어선 분류기 + 배포 설정 + 백엔드 모니터링 프록시 2026-03-20 12:10:21 +09:00
docs docs: 릴리즈 노트 정리 (2026-03-23.3) (#156) 2026-03-23 11:15:30 +09:00
frontend perf: 렌더링 성능 최적화 — deck.gl updateTriggers + 선박 토글 MapLibre filter 전환 2026-03-23 12:24:36 +09:00
prediction feat: 한국 레이어 핵심 기능 통합 — 해외시설·현장분석·선단강조·버그수정 (#145) 2026-03-23 08:19:54 +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...
    },
  },
])