# drawNET 업데이트 로그 (Changelog)

## [v1.0 Alpha-1] - 2026-03-21
### 🎉 Project Milestone: Release Alpha Version
오늘로써 drawNET의 모든 핵심 엔진 기능이 구현되어 공식 **v1.0 Alpha-1** 버전으로 명명합니다.

## [2026-03-21] - High-Fidelity 하이브리드 내보내기 슈트 및 안정성 고도화

### 🚀 신규 기능 (Added)
- **엣지 라우팅 및 앵커 가시성 제어 거버넌스 수립**:
    - **시작/대상(S/T) 가이드 라벨**: 엣지 선택 시 양 끝에 초록/빨강 라벨을 표시하여 망 구성 식별력 강화.
    - **인터랙티브 앵커 하이라이트**: 사이드바 앵커 설정 시 캔버스 내 노드 실시간 점멸 피드백 제공.
    - **직선 라우팅 최우선 순위화**: 앵커 방향 제약 및 전역 기본 설정을 극복한 '완벽한 직선' 모드 구현.
- **Format Painter (Style Copy/Paste) 엣지 확장**:
    - `Ctrl+Shift+C/V`를 통해 선의 색상, 스타일, 라우팅, 화살표 정보를 다른 선으로 즉시 복제.
- **UX 편의 기능**:
    - **ESC 전역 캔슬**: 원터치로 모든 선택 해제 및 사이드바 닫기.
    - **단축키 도움말(?) 애니메이션 복구**: 누락된 리소스를 보강하여 도움말 모달 가독성 개선.
- **객체 메타데이터 및 인벤토리 거버넌스**:
    - **상세 설명(Description) 및 태그(Tags) 도입**: 모든 노드와 엣지에 설계 의도 및 기술 사양을 기록할 수 있는 전용 필드 추가.
    - **3중 데이터 무결성 보장 로직**: 구버전 파일 자동 마이그레이션, 복사/붙여넣기(`Ctrl+C/V`) 시 전역 데이터 새니타이저(Sanitizer)를 통한 필수 필드 누락 원천 봉쇄.
- **엔터프라이즈급 PPTX 리포팅 고도화**:
    - **상세 설명 전용 슬라이드**: `autoPage` 기능을 활용하여 대규모 프로젝트의 모든 객체 상세 주석을 표 형태로 자동 생성.
    - **인벤토리 매핑 강화**: 상세 목록에 '소속 그룹(Parent Group)' 및 '태그' 컬럼을 추가하여 외부 자산 데이터와의 매칭 편의성 제고.
- **High-Fidelity 하이브리드 내보내기 슈트 (v2.0)**:
    - **SVG 내보내기 엔진 완전 재설계**: 전수 이미지 스캔 로직을 통해 상속된 아이콘까지 100% Base64로 임베딩하여 '아이콘 깨짐' 현상 종결.
    - **절대 좌표 기반 짤림 방지 (Zero-Clip)**: `getCellsBBox`와 명시적 `viewBox` 주입을 통해 화면 줌/위치와 무관하게 120px 안전 여백이 포함된 완벽한 도면 출력.
    - **전문가용 내보내기 UI**: 내보내기 프로세스 시작 시 "파일 준비 중" 안내 오버레이와 블러 효과를 적용하여 사용자 피드백 및 경험(UX) 고도화.
    - **적응형 안정화 지연 (1000ms)**: 모델 업데이트 후 DOM 동기화를 위해 1초의 대기 시간을 부여하여 저사양 PC에서도 무결한 캡처 보장.
    - **전문가용 PPTX 리포트**: 도면은 고해상도 PNG 스냅샷으로, 데이터는 편집 가능한 네이티브 표(Table)로 구성하는 하이브리드 모델 도입.
    - **레이어별 자동 슬라이드 생성**: 멀티 레이어 프로젝트를 분석하여 레이어별 상세 도면 슬라이드를 자동으로 생성하는 엔진 구축.
- **초정밀 클린 캡처 (Clean Capture)**:
    - 내보내기 시 앵커(포트), 선택 박스, UI 가이드를 자동으로 숨겨 시각적 노이즈를 제거하는 로직 반영.
    - **2x 해상도 렌더링**: 모든 이미지 기반 내보내기 시 200% 스케일업을 통해 레티나 디스플레이 및 대형 인쇄 대응 수준의 화질 확보.
- **사이드바 데이터 정합성 및 실시간 동기화 슈트**:
    - **재귀적 데이터 전파(Recursive Poke)**: 그룹 이름 변경 시 하위 모든 객체들을 대상으로 동기화 이벤트를 강제 트리거하여 사이드바의 상위 그룹 정보가 실시간으로 갱신되도록 개선 (#2245).
    - **세이프 렌더(Safe Render) 및 포커스 유실 방지**: 사이드바 입력 중 그래프 변화에 의한 리렌더링을 지능적으로 차단하여 타이핑 연속성 확보 (#2255).
    - **비동기 데이터 렌더링 타이즈**: `setTimeout(0)`을 적용하여 X6 엔진 데이터와 UI 간의 미세한 타이밍 불일치 완전 소거.
- **레이어 격리 및 상호작용 보안 거버넌스**:
    - **선택 필터링(Selection Filter)**: 활성 레이어가 아닌 객체는 마우스로 선택할 수 없도록 플러그인 레벨에서 격리 구현.
    - **상호작용 가드**: 비활성 레이어 객체에 대한 더블 클릭 등 파괴적 액션을 원천 차단하여 레이어 간 데이터 오염 방지.
- **개발 생산성 도구**:
    - **`logger.debug` 정식 지원**: 개발 중 임시 로그를 위한 별도의 디버그 레벨과 서식 도입.
- **하이엔드 레이어 안정성 및 데이터 거버넌스 수립**:
    - **논리 전용 레이어(Logical-Only Layer)**: 물리 배치와 논리 연결의 명확한 분리를 위한 레이어 타입 규격 도입 및 지능형 드롭/복제 필터링 엔진 구축.
    - **레이어 하드-락(Hard-Lock) 시스템**: 중요 레이어의 실수에 의한 삭제나 이름 변경을 원천 차단하는 자물쇠 기능 도입.
    - **데이터 보호 이중 확인(Double Confirmation)**: 오브젝트가 포함된 레이어 삭제 시 '항목 수 안내'와 '최종 파기 확인'의 2단계 절차를 거치는 안전 로직 적용.
    - **레이어 전용 휴지통(Trash Bin)**: 드래그 앤 드롭으로 레이어를 명시적으로 버릴 수 있는 직관적인 폐기 워크플로우 구현.
    - **레이어 패널 UI 최적화**: 가시성과 조작 편의성 개선을 위해 레이어 관리창 전체 크기를 약 25% 확대 (250px x 400px).
- **멀티 플랫폼 및 브라우저 호환성 하모니**:
    - **Mac Command(⌘) 키 완벽 지원**: Mac 환경에서도 Cmd 키를 사용해 복제 및 단축키 기능을 동일하게 사용 가능.
    - **자기 치유형 키 상태 관리(Self-healing)**: 탭 전환 등으로 인한 키 업/다운 이벤트 유실 시에도 마우스 활동 감지를 통해 시스템 키 상태를 자동 보정.
    - **ESC 전역 캔슬 확장**: 드래그/복제 도중 `Escape` 키로 즉시 취소 및 고스트 박스 자동 소거 로직 고도화.
- **포맷 페인터(Format Painter) 데이터 무결성 수정**:
    - 선(Edge)의 색상 및 두께 복사 시 UI 기본값보다 클립보드 데이터를 최우선(Strict Prioritization)으로 하여 속성이 누락되던 현상 해결.
- **하이엔드 안정성 및 논리 레이어 정책 거버넌스 수립**:
    - **논리 전용 레이어(Logical-Only Layer)**: 물리 배치와 논리 연결의 명확한 분리를 위한 레이어 타입 규격 도입 및 지능형 드롭/복제 필터링 엔진 구축.
    - **멀티 플랫폼(Windows/Mac) 하모니**: Cmd/Ctrl 키 통합 지원 및 자기 치유형(Self-healing) 키 상태 관리 로직 적용.
    - **ESC 드래그 캔슬**: 복제 드래그 중 Escape 키로 즉석 취소 및 고스트 박스 자동 소거 로직 반영.

### 🛠️ 구조 개선 (Refactored)
- **내보내기 서브시스템(Export Subsystem) 모듈화**: `image_exporter.js`, `pptx_exporter.js` 등으로 로직을 분리하여 확장성 강화.
- **UI 시각적 가시성 개선**: 라이트 모드(White Mode)에서 플라이아웃 메뉴의 호버 대비(Contrast)를 액센트 컬러로 교체하여 접근성 및 전문성 강화.
- **중복 초기화 제거 (Zero Duplication)**: `app.js` 내로 핵심 모듈 초기화 로직을 일원화하여 중복 팝업 및 이벤트 리스너 누수 문제 원천 해결.

### 🐛 버그 수정 (Fixed)
- **레이어 데이터 손실 방지**: 새로고침 시 레이어 정보가 유실되던 데이터 영속성 결함 수정.
- **아이콘 매핑 정확도 향상**: `assetId` 기반의 정밀 매핑 및 경로 복제 방지 로직을 통해 PPTX 내 아이콘 404 오류 해결.
- **그룹 노드 렌더링 정상화**: PPTX 내에서 그룹 객체가 거대한 이미지로 보이던 현상을 투명도를 가진 네이티브 사각형으로 수정.

### ✅ 완료된 마일스톤
- **Phase 1.50**: High-Fidelity 하이브리드 내보내기 거버넌스 수립 완료
- **Phase 1.55**: 시스템 초기화 및 안정성 전수 감사(Full Audit) 완료
- **Phase 1.60**: 로컬 독립 실행 및 오프라인 리포팅 환경 구축 완료

---

## [2026-03-20] - i18n 거버넌스 및 아키텍처 전략 고도화

### 🚀 신규 기능 (Added)
- **전역 다국어(i18n) 통합 지원 (ko/en)**:
    - 브라우저 언어 설정 및 사용자 선택에 대응하는 실시간 로케일 전환 엔진 구축.
    - `en.json` 신설을 통한 영미권 사용자 지원 기반 마련.
- **기술 용어 직관화 (Terminology Optimization)**:
    - 난해한 공학 용어를 직관적인 한국어로 교체: `Manhattan` -> `자동 경로 (장애물 회피)`, `U-Shape` -> `ㄷ자 경로`, `Orthogonal` -> `수직/수평 (일반)`.
- **PPTX 아키텍처 리포트 다국어화**:
    - 생성되는 모든 PPTX 보고서의 헤더, 요약 표, 인벤토리 항목을 설정 언어에 맞춰 동적 렌더링하도록 개선.

### 🛠️ 구조 개선 (Refactored)
- **하드코딩 문자열 제로화 (Hardcoding-Free)**:
    - `Object Studio`, `Settings`, `Persistence`, `UI Templates` 등 시스템 전반의 텍스트를 로케일 파일로 분리 관리.
- **아키텍처 문서(`architecture.md`) 대대적 보강**:
    - **Section 4 (Multi-Layer Isolation)**: 물리/논리/보안 레이어 간 SSOT(Single Source of Truth) 보장을 위한 데이터 평면 설계 명문화.
    - **Section 5 (PM Assets & Expansion)**: 외부 자산 연동 및 REST API 확장 전략 구체화.
    - **Section 8 (AI-Ready Strategy)**: 정규화된 JSON 구조를 통한 AI 분석 및 네트워크 시뮬레이션 가치 강조.
- **로케일 데이터 무결성 확보**: JSON 내 중복 키 전수 제거 및 정적 분석 오류 해결.

### 🚀 기존 Premium UX 업데이트 내역 (이전 작업)
- **오브젝트 적층 순서 제어 (Z-Index Control)**: `[` (뒤로 보내기), `]` (앞으로 가져오기) 단축키 지원.
- **오브젝트 정밀 잠금 (Full Object Locking)**: `Ctrl + L` 및 시각적 피드백(Red Dashed Boundary) 구현.
- **재귀적 오브젝트 선택 (Recursive Selection)**: `Ctrl + 마우스 우클릭`을 통한 Surgical Picker 도입.
- **프리미엄 레이어 패널**: 레이어 이름 변경 및 비활성 레이어 투명도 조절 기능.

### ✅ 완료된 마일스톤
- **Phase 1.30**: 전역 다국어 통합 거버넌스 및 하드코딩 제거 완료
- **Phase 1.35**: 아키텍처 설계서(architecture.md) 엔지니어링 표준화 완료
- **Phase 1.40**: UI/UX 용어 고도화 및 전문가 DX 공식 수립

---

## [2026-03-19] - Object Studio & Asset Infrastructure 고도화

### 🚀 신규 기능 (Added)
- **Object Studio 전용 페이지 (`/studio`)**: 독립된 환경에서 자산을 제작하고 관리할 수 있는 전문 도구 세트 구현.
- **하이브리드 벡터 변환 엔진**: Potrace-js를 통합하여 PNG 비트맵 이미지를 고품질 SVG `<path>` 데이터로 실시간 변환하는 기능 추가.
- **멀티 벤더 패키징 시스템**: 
    - 에셋을 벤더 단위 팩(`package.json`)으로 묶어 물리적 디렉토리에 저장하는 서버 API 구현.
    - 저장된 패키지가 설계 영역(Designer) 라이브러리에 실시간 로드되는 인프라 구축.
- **인제스터(Ingester) 개선**: 폴더 단위 업로드(`webkitdirectory`) 및 드래그 앤 드롭을 통한 대량 자산 일괄 로드 지원.
- **리뷰 및 선택 UI**: 원본과 변환본을 나란히 비교하고, 사용자 취향에 따라 포맷을 선택할 수 있는 Side-by-Side 뷰 도입.

### 🛠️ 구조 개선 (Refactored)
- **스튜디오 프론트엔드 모듈화**: `Renderer`, `Actions`, `State`, `Processor` 등으로 로직을 분리하여 확장성 및 유지보수성 확보.
- **백엔드 자산 스캔 로직 최적화**: `api_routes.py` 내 멀티 패키지 로딩 엔진 고도화.
- **명명 규칙 자동화**: 파일명을 기반으로 슬러그(Slug) 형태의 ID와 라벨을 자동 생성하는 로직 반영.

### ✅ 완료된 마일스톤
- **Phase 1**: 데이터 규격 및 멀티 로더 (Vendor Pack 시스템)
- **Phase 2**: 스튜디오 기반 구축 (라우팅, 레이아웃, 인제스천)
- **Phase 3**: 핵심 가공 기능 (SVG 트레이싱, 비교 검수)
- **Phase 4**: 패키징 및 설계영역 최종 연동 (Build & Save)

---

## [2026-03-18] - UX & Precision Tools 고도화

### 🚀 신규 기능
- **단축키 UX 고도화**: 컨텍스트 메뉴 내 단축키 힌트 노출 및 `Alt + 1` 사이드바 토글 등 전문 도구 수준의 단축키 전략 확립.
- **신규 객체 '리치 텍스트 카드(Rich Text Card)' 출시**:
    - 아키텍처 도면의 '구축 내역' 및 '범례(Legend)'를 위한 전문 문서화 객체 추가.
    - 지능형 리스트 렌더링 (번호 사각형, 불렛 기호 자동 생성).
    - 범례 모드 지원: `- (도형:색상) 설명` 텍스트 기반 시각화 자동화.
- **Format Painter (Style Copy/Paste) 엣지 확장**: `Ctrl+Shift+C/V`를 통해 노드뿐만 아니라 선(Edge)의 라우팅, 색상, 스타일을 일괄 복사/적용 가능.
- **ESC 키 전역 캔슬**: `Esc` 키로 선택 해제 및 사이드바 닫기 지원.
- **다중 선택 정렬 패널**: 여러 노드 선택 시 사이드바에 즉시 정렬 및 스타일 편집 옵션 표시.

### 🐛 버그 수정
- **캔버스 팬닝 충돌 해결**: Space 키 드래그 시 Rubberband 선택과 겹치는 현상 수정 (인터랙션 명시적 비활성화).

---

## [이전 로그] - 프로젝트 초기화 및 핵심 엔진 구축
- AntV X6 그래프 엔진 기반 마이그레이션 완료.
- DSL(Domain Specific Language) 파싱 및 캔버스 동기화 인프라 구축.
- 그룹화, 라우팅, 인벤토리 등 핵심 기능 순차적 도입.
