docs: CHANGELOG.md → RELEASE-NOTES.md 이름 변경 (git exclude 회피)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
부모
13d6ca69e2
커밋
ebbb074866
@ -277,7 +277,7 @@ GOOGLE_CLIENT_ID=your-google-client-id
|
|||||||
| 문서 | 설명 |
|
| 문서 | 설명 |
|
||||||
|------|------|
|
|------|------|
|
||||||
| [INSTALL_GUIDE.md](INSTALL_GUIDE.md) | 설치 매뉴얼 (온라인/오프라인, DB 초기화) |
|
| [INSTALL_GUIDE.md](INSTALL_GUIDE.md) | 설치 매뉴얼 (온라인/오프라인, DB 초기화) |
|
||||||
| [CHANGELOG.md](CHANGELOG.md) | 전체 변경 이력 |
|
| [RELEASE-NOTES.md](RELEASE-NOTES.md) | 전체 변경 이력 |
|
||||||
|
|
||||||
### 코드 컨벤션 (`.claude/rules/`)
|
### 코드 컨벤션 (`.claude/rules/`)
|
||||||
|
|
||||||
|
|||||||
219
docs/RELEASE-NOTES.md
Normal file
219
docs/RELEASE-NOTES.md
Normal file
@ -0,0 +1,219 @@
|
|||||||
|
# CHANGELOG
|
||||||
|
|
||||||
|
WING-OPS 프로젝트의 전체 변경 이력.
|
||||||
|
[Keep a Changelog](https://keepachangelog.com/ko/1.1.0/) 형식 기반, Phase 단위로 기록.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## DB DDL 현행화 (2026-03-01)
|
||||||
|
|
||||||
|
database/ 디렉토리를 운영 DB 기준으로 전면 재정리하고, wing_auth → auth 스키마 문서 수정.
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- `database/schema/` ERD용 순수 DDL 14파일 (운영 DB pg_dump 기반)
|
||||||
|
- `00_extensions.sql` ~ `13_indexes.sql` (FK 의존성 순서)
|
||||||
|
- `database/seed/` 초기 데이터 INSERT 14파일
|
||||||
|
- `database/README.md` (DB 아키텍처, 설치 절차, PostGIS 컬럼 참조)
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- wing_auth → auth 스키마 표기 전면 수정 (docs/ 6개 + README + CLAUDE.md)
|
||||||
|
- AUTH_DB_* 환경변수 참조 → DB_* 단일 구조로 통일
|
||||||
|
- DB 아키텍처 설명: wing 단일 DB + 3개 스키마 (public/auth/wing)
|
||||||
|
|
||||||
|
### Deprecated
|
||||||
|
- `database/init.sql`, `database/auth_init.sql` → `_deprecated/`로 이동
|
||||||
|
|
||||||
|
### PR
|
||||||
|
- PR#62 (feature/css-refactoring → main)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## [Phase 7] CSS 리팩토링 (2026-03)
|
||||||
|
|
||||||
|
인라인 style을 Tailwind CSS 유틸리티 클래스로 전환하고, CSS 인프라를 구축.
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- CSS 인프라 구축: `index.css` 엔트리, `base.css`, `components.css`, `wing.css` (@tailwind @layer 체계)
|
||||||
|
- `cn()` 유틸리티 함수 (clsx + tailwind-merge)
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- 인라인 style 3,500건 이상 → Tailwind 클래스로 변환 (잔여 1,286건)
|
||||||
|
- body default 인라인 스타일 1,055건 제거
|
||||||
|
- SCAT 우측 패널 CSS 회귀 수정
|
||||||
|
|
||||||
|
### Refactored
|
||||||
|
- `LoginPage`, `LayerTree`, `SubMenuBar`, `BacktrackReplayBar`, `MapView`, `ComboBox` 등 공통 컴포넌트 CSS 전환
|
||||||
|
- `HNSView`, `HNSLeftPanel`, `HNSRightPanel`, `HNSScenarioView`, `HNSSubstanceView`, `HNSRecalcModal`, `HNSAnalysisListTable` CSS 전환
|
||||||
|
- `IncidentsView`, `IncidentsLeftPanel`, `IncidentsRightPanel` CSS 전환
|
||||||
|
- `OilSpillView`, `OilSpillTheoryView`, `BoomDeploymentTheoryView`, `OilBoomSection`, `RightPanel`, `RecalcModal`, `BacktrackModal` CSS 전환
|
||||||
|
- `RescueScenarioView` CSS 전환
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## [Phase 6] MapLibre GL JS + deck.gl 전환 (2026-03)
|
||||||
|
|
||||||
|
Leaflet을 MapLibre GL JS 5.x + deck.gl 9.x로 전환하여 GPU 기반 렌더링 체계 구축.
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- MapLibre GL JS 5.x + @vis.gl/react-maplibre 8.1 + deck.gl 9.x 통합
|
||||||
|
- deck.gl 레이어: ScatterplotLayer, IconLayer, PathLayer, TextLayer
|
||||||
|
- TextLayer 한글 폰트 지원
|
||||||
|
- 3D 회전 애니메이션
|
||||||
|
- 확산분석 자동 데모 모드
|
||||||
|
- 통합조회 호버 툴팁
|
||||||
|
- 확산 방향 SSW 수정
|
||||||
|
- 선박 아이콘 개선
|
||||||
|
|
||||||
|
### Removed
|
||||||
|
- Leaflet + react-leaflet 완전 제거
|
||||||
|
|
||||||
|
### Merged
|
||||||
|
- MR#47, MR#53, MR#55 → develop
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## [Phase 5] View 분할 + RBAC 2차원 권한 (2026-02)
|
||||||
|
|
||||||
|
대형 View 컴포넌트를 서브탭으로 분할하고, FEATURE_ID 기반 2차원 권한 체계 도입.
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- FEATURE_ID 상수 체계 (`featureIds.ts`)
|
||||||
|
- RBAC 2차원 권한 시스템: 리소스(FEATURE_ID) x 오퍼레이션(RCUD)
|
||||||
|
- `permResolver` 권한 해석 엔진
|
||||||
|
- AUTH_PERM 테이블 OPER_CD 컬럼
|
||||||
|
- RCUD 매트릭스 관리 UI (admin 탭)
|
||||||
|
- 게시판 CRUD API (boardService/Router) + 프론트 연동
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- 대형 View 컴포넌트를 서브탭 단위로 분할
|
||||||
|
|
||||||
|
### Merged
|
||||||
|
- MR#29 → develop
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## [Phase 4] Mock → API 전환 (2026-02 ~ 2026-03)
|
||||||
|
|
||||||
|
10개 탭의 Mock 데이터를 실제 PostgreSQL 기반 API로 전환. 5차에 걸쳐 순차 진행.
|
||||||
|
|
||||||
|
### Round 1 — Reports, Assets (2026-02-28)
|
||||||
|
- Reports: 보고서 템플릿/생성/조회 CRUD API
|
||||||
|
- DB 7개 테이블 (REPORT_TMPL, REPORT_TMPL_SECT, REPORT_ANALYSIS_CTGR 등)
|
||||||
|
- 프론트 4개 컴포넌트 API 연동 (localStorage 제거)
|
||||||
|
- Assets: 자산(장비/기관/담당자/선박보험) 관리 API
|
||||||
|
- migration 008_assets.sql
|
||||||
|
|
||||||
|
### Round 2 — Incidents (2026-02-28)
|
||||||
|
- Incidents: 사건/사고 이력 관리 API
|
||||||
|
- migration 009_incidents.sql, 010_incidents_media.sql
|
||||||
|
- 미디어 첨부파일 지원
|
||||||
|
|
||||||
|
### Round 3 — SCAT, Board (2026-03-01)
|
||||||
|
- SCAT: 구역/구간 조회 3 API + PostGIS
|
||||||
|
- migration 011_scat.sql
|
||||||
|
- Board: 매뉴얼 CRUD + 첨부파일 API
|
||||||
|
- migration 012_board_ext.sql
|
||||||
|
|
||||||
|
### Round 4 — HNS, Prediction (2026-03-01)
|
||||||
|
- HNS: 분석 CRUD 5 API
|
||||||
|
- migration 013_hns_analysis.sql
|
||||||
|
- Prediction: 분석/역추적/오일펜스 7 API
|
||||||
|
- migration 014_prediction.sql
|
||||||
|
|
||||||
|
### Round 5 — Aerial, Rescue (2026-03-01)
|
||||||
|
- Aerial: 미디어/CCTV/위성 6 API + PostGIS
|
||||||
|
- migration 015_aerial.sql
|
||||||
|
- Rescue: 구난 작전/시나리오 3 API + JSONB
|
||||||
|
- migration 016_rescue.sql
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Prediction 분석 상세 500 에러 (ACDNT_WEATHER 컬럼명 불일치)
|
||||||
|
- 시뮬레이션 API CORS 에러 (localhost 하드코딩 → api 인스턴스)
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- 하드코딩 URL → 환경변수 전환 (GeoServer, CORS, CSP 등)
|
||||||
|
- backtrackMockData.ts 삭제
|
||||||
|
- HTTP 메소드 제한 결정 (GET/POST only)
|
||||||
|
|
||||||
|
### Merged
|
||||||
|
- MR#31 (Reports) → develop
|
||||||
|
- 이후 Round 2~5 순차 머지
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## [Phase 3] SQLite → PostgreSQL 전환 (2026-02)
|
||||||
|
|
||||||
|
로컬 SQLite를 원격 PostgreSQL 16 + PostGIS로 전환.
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- wingDb: SQLite → PostgreSQL (pg Pool)
|
||||||
|
- authDb: 초기 별도 DB → 이후 migration 005에서 wing 단일 DB로 통합 (authPool = wingPool re-export)
|
||||||
|
- DB 연결 모듈 리팩토링 (wingDb.ts, authDb.ts)
|
||||||
|
|
||||||
|
### Removed
|
||||||
|
- SQLite 관련 의존성 완전 제거
|
||||||
|
|
||||||
|
### Merged
|
||||||
|
- MR#22 → develop
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## [Phase 1~2] 프로젝트 구조 전환 (2026-02)
|
||||||
|
|
||||||
|
모놀리식 구조를 common/ + tabs/ 패키지 구조로 전환하고, 지도 엔진을 교체.
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- `common/` 공통 모듈 분리 (components, hooks, services, store, types, utils)
|
||||||
|
- `tabs/` 탭 단위 패키지 구조 (11개 탭)
|
||||||
|
- Path alias: `@common/*`, `@tabs/*`
|
||||||
|
|
||||||
|
### Removed
|
||||||
|
- OpenLayers 제거
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- 단일 src/ 구조 → common/ + tabs/ 이중 구조로 전환
|
||||||
|
- 컴포넌트 재배치 및 import 경로 정리
|
||||||
|
|
||||||
|
### Merged
|
||||||
|
- MR#21 → develop
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 기반 인프라 (전체 기간)
|
||||||
|
|
||||||
|
프로젝트 전반에 걸쳐 구축된 기반 기능.
|
||||||
|
|
||||||
|
### 인증 시스템
|
||||||
|
- JWT HttpOnly Cookie (`WING_SESSION`) 기반 인증
|
||||||
|
- Google OAuth 연동
|
||||||
|
- `requireAuth`, `requireRole`, `requirePermission` 미들웨어 체인
|
||||||
|
|
||||||
|
### 보안
|
||||||
|
- Helmet (CSP, CORP cross-origin)
|
||||||
|
- CORS 설정
|
||||||
|
- Rate-limit
|
||||||
|
- 입력 살균 (sanitize 미들웨어)
|
||||||
|
|
||||||
|
### CI/CD
|
||||||
|
- Gitea Actions 자동 배포 (`.gitea/workflows/deploy.yml`)
|
||||||
|
- main 브랜치 push 시 자동 빌드/배포
|
||||||
|
|
||||||
|
### 개발 도구
|
||||||
|
- `.githooks/` (pre-commit, commit-msg 자동 검증)
|
||||||
|
- `.claude/` 팀 워크플로우 (rules, skills, scripts, agents)
|
||||||
|
- Claude Code 스킬: `/push`, `/mr`, `/release`, `/create-mr`, `/fix-issue`
|
||||||
|
|
||||||
|
### 감사 로그
|
||||||
|
- 탭 이동 자동 기록 (sendBeacon)
|
||||||
|
- 백엔드 audit 모듈
|
||||||
|
|
||||||
|
### 메뉴 시스템
|
||||||
|
- 동적 메뉴 설정 (menuStore + menus API)
|
||||||
|
- 드래그앤드롭 메뉴 정렬 (@dnd-kit)
|
||||||
|
|
||||||
|
### DB 마이그레이션
|
||||||
|
- `database/migration/001~016` (16개 마이그레이션 파일)
|
||||||
|
- 001: 레이어 설정
|
||||||
|
- 002: HNS 물질 DB
|
||||||
|
- 003~006: 인증/권한/설정
|
||||||
|
- 007~016: 업무 도메인 (Reports, Assets, Incidents, SCAT, Board, HNS, Prediction, Aerial, Rescue)
|
||||||
불러오는 중...
Reference in New Issue
Block a user