# Release Notes 이 문서는 [Keep a Changelog](https://keepachangelog.com/ko/1.0.0/) 형식을 따릅니다. ## [Unreleased] ### 추가 - **UI 공통 카탈로그 19종** (`frontend/src/shared/constants/`) — 백엔드 enum/code_master 기반 SSOT - violation/alert/event/enforcement/patrol/engine/userRole/device/parentResolution/ modelDeployment/gearGroup/darkVessel/httpStatus/userAccount/loginResult/permission/ vesselAnalysis/connection/trainingZone + kpiUiMap - 표준 API: `get{Cat}Intent(code)`, `get{Cat}Label(code, t, lang)`, `get{Cat}Classes/Hex` - **시맨틱 텍스트 토큰** (`theme.css @layer utilities`) — Tailwind v4 복합 이름 매핑 실패 대응 - `text-heading/label/hint/on-vivid/on-bright`, `bg-surface-raised/overlay` 직접 정의 - **Badge 시스템 재구축** — CVA 기반 8 intent × 4 size (rem), !important 제거 - **cn() 유틸** (`lib/utils/cn.ts`) — clsx + tailwind-merge, 시맨틱 토큰 classGroup 등록 - **ColorPicker 컴포넌트** — 팔레트 grid + native color + hex 입력 - **Role.colorHex** (백엔드 V017 migration) — auth_role.color_hex VARCHAR(7), 빌트인 5개 역할 기본 색상 시드 - System Flow 뷰어 (`/system-flow.html`) — 시스템 전체 데이터 흐름 시각화 - 102 노드 + 133 엣지, 10개 카테고리 매니페스트 - stage/menu 두 가지 그룹화 토글, 검색/필터/딥링크 지원 - 포커스 모드 (1-hop 연결 노드만 활성화, 나머지 dim) - 메인 SPA와 분리된 별도 entry, 산출문서 노드 ID 참조용 - `/version` 스킬 사후 처리로 manifest version 자동 동기화 - CI/CD에서 버전별 스냅샷을 서버 archive에 영구 보존 - 백엔드 `GET /api/stats/hourly?hours=24` — 시간별 통계 조회 (PredictionStatsHourly) - V014 prediction 보조 테이블 12개 (fleet_vessels, gear_correlation_scores 등) - V015 NUMERIC precision 일괄 확대 (score→7,4, pct→12,2) - V016 parent workflow 누락 컬럼 일괄 추가 (17+ 컬럼, candidate_mmsi generated column) ### 변경 - **40+ 페이지 Badge/시맨틱 토큰 마이그레이션** - Badge className 직접 작성 → intent/size prop 변환 - 컬러풀 액션 버튼 → `text-on-vivid` (흰색), 검색/필터 버튼 → `bg-blue-400 text-on-bright` - ROLE_COLORS 4곳 중복 제거 → `getRoleBadgeStyle()` 공통 호출 - PermissionsPanel 역할 생성/수정에 ColorPicker 통합 - DataTable `width` 의미 변경: 고정 → 선호 최소 너비 (minWidth), 컨텐츠 자동 확장 + truncate - `dateFormat.ts` sv-SE 로케일로 `YYYY-MM-DD HH:mm:ss` 일관된 KST 출력 - MonitoringDashboard `PagePagination` 제거 (데이터 페이지네이션 오해 해소) ### 수정 - Dashboard RiskBar 단위 버그 (0~100 정수를 `*100` 하던 코드 → 범위 감지) - ReportManagement, TransferDetection `p-5 space-y-4` padding 복구 - EnforcementHistory 그리드 minmax 적용으로 컬럼 잘림 해소 - timeline 시간 `formatDateTime` 적용 (ISO `T` 구분자 처리) - **prediction e2e 5가지 이슈 수정** (2026-04-08) - gear_correlation: psycopg2 Decimal × float TypeError → `_load_all_scores()` float 변환 - violation_classifier: `(mmsi, analyzed_at)` 기준 UPDATE + 중국선박 EEZ 판정 로직 - kpi_writer / stats_aggregator: UTC → KST 날짜 경계 통일 - parent workflow 스키마 ↔ 코드 불일치 → V016로 일괄 해결 - DemoQuickLogin hostname 기반 노출 (Gitea CI `.env` 차단 대응) - 프론트 전수 mock 정리: eventStore.alerts, enforcementStore.plans, transferStore 완전 제거 - Dashboard/MonitoringDashboard/Statistics 하드코딩 → 실 API 전환 - UTC → KST 시간 표시 통일 (`@shared/utils/dateFormat.ts` 공통 유틸) - i18n `group.parentInference` JSON 중복키 제거 - RiskMap Math.random() 격자 제거, MTIS 라벨 + "AI 분석 데이터 수집 중" 안내 - 12개 mock 화면에 "데모 데이터" 노란 배지 추가 ## [2026-04-07] ### 추가 - 모노레포 구조 전환 (frontend/ + backend/ + prediction/ + database/) - Spring Boot 백엔드 초기화 + Flyway DB 마이그레이션 (V001~V013) - 자체 인증 시스템 (JWT + 트리 기반 RBAC + 감사로그 + 데모 계정) - 모선 워크플로우 + 관리자 화면 + 권한 라우트 가드 - 권한 관리 UI 고도화 (트리 RBAC PermissionsPanel) - iran 백엔드 실연결 + 시스템 상태 + AI 채팅 기반 구현 - 마스터 데이터 + prediction 기반 DB 스키마 (V008~V013) - 백엔드 API — 이벤트/통계/단속/마스터 데이터 CRUD - prediction 분석 엔진 모노레포 이식 (14개 알고리즘, 7단계 파이프라인) - prediction 출력 모듈 5종 (이벤트/위반/KPI/통계/경보) - alerts API + AIAlert/Dashboard 위험선박 실데이터 전환 - VesselDetail + LiveMapView 실데이터 전환 - 프론트 15개 화면 실데이터 연동 (EventList, Statistics, Dashboard 등) - 배포 환경 구성 (rocky-211 백엔드 + redis-211 prediction + nginx 프록시) ### 수정 - prediction_stats_monthly.stat_month CHAR(7) → DATE 타입 변경 - 권한 트리 UX 개선 + 라벨 사이드바 일치 + EXPORT 가드 ### 변경 - 시스템 관리 페이지 백엔드 연결 + 메트릭 카드 ### 문서 - 배포 문서 보강 + CI/CD 모노레포 수정 ### 기타 - 팀 워크플로우 초기화 + Prettier + 타입 에러 수정 - .env 파일 서버 정책 준수 + pre-commit 모노레포 대응