Files
drawNET/docs/changelog.md
T

14 KiB

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) 파싱 및 캔버스 동기화 인프라 구축.
  • 그룹화, 라우팅, 인벤토리 등 핵심 기능 순차적 도입.