Files

6.3 KiB

drawNET 프로젝트 로드맵 및 개발 가이드

이 문서는 drawNET 프로젝트의 개발 원칙, 완료된 마일스톤, 그리고 향후 발전 방향을 정의합니다.


🛠️ 개발 원칙 (Development Principles)

  1. 하드코딩 배제: 모든 자산과 설정은 assets.json 등 외부 파일을 통해 관리합니다.
  2. 로컬 최적화: 설치와 실행이 간편해야 하며, 보안 및 폐쇄망 대응을 위해 핵심 라이브러리(AntV X6 등)를 로컬에서 관리합니다.
  3. 사용자 경험 최선: 텍스트(DSL)와 시각적 편집(GUI)의 장점을 결합한 하이드리브 워크플로우를 지향합니다.
  4. 엔진 독립성: 특정 엔진에 종속된 기능을 지양하되, 현재는 AntV X6의 성능을 극대화하여 구현합니다.

📅 완료된 마일스톤 (Milestones)

1. 전용 그래프 엔진 마이그레이션 (AntV X6)

  • 엔진 전환: Cytoscape.js에서 AntV X6로 전체 시스템 이관 완료.
  • 직교 라우팅: Manhattan 알고리즘을 통한 완벽한 90도 굴곡 선 지원.
  • 쉐이프 커스터마이징: 이미지 및 메타데이터를 포함한 전용 노드 타입 등록.
  • 로컬화: 외부 CDN 차단 및 ORB 이슈 해결을 위한 라이브러리 자산 로컬화.
  • 방향성 고정 라우팅 (Top/Bottom/Left/Right): 앵커 선택에 따라 해당 방향으로 선이 가장 먼저 뻗어나오도록 강제하는 지능형 Manhattan 라우팅 엔진 구현 완료.

2. 하이브리드 속성 및 인터랙션

  • 속성 사이드바: X6 셀 데이터와 실시간 연동되는 속성 편집 패널.
  • 컨텍스트 메뉴: 우클릭을 통한 퀵 액션 및 스타일 제어.
  • 지능형 그룹화: 컨테이너 드롭 및 노드 드래그 포함을 통한 계층 구조 자동 생성.

3. 영속성 및 환경 관리

  • Leaf-Only 복구: 계층 구조의 좌표 뒤틀림을 방지하는 X6 최적화 좌표 복구 엔진.
  • 전용 포맷(.dnet): 메타데이터 헤더를 포함한 X6 JSON 구조 표준화.
  • 캔버스 환경 저장: 그리드 스타일, 스냅 설정, 줌 레벨 등 시큐리티 가시성 환경 보존.

4. 인벤토리 및 정밀 배치 시스템

  • Inventory UI: 타입별 수량 집계 및 드래그 가능한 플로팅 패널 구현.
  • 데이터 기반 단축키 엔진: hotkeys.json 설정을 통한 유연한 키 바인딩 시스템 도입.
  • 키보드 네비게이션: 방향키 및 Shift 조합을 통한 그리드 단위 오브젝트 정밀 이동 기능 추가.
  • 파서 고도화: 커스텀 포트 이름 및 그룹 멤버십 안정성 강화.

5. 오브젝트 상세 커스터마이징 및 단축키 전략 (New)

  • 라벨 속성 강화: 라벨 색상(Color) 및 위치(Top/Bottom/Left/Right/Center)를 속성창에서 즉시 변경 가능한 UI 구현.
  • 단축키 계통 확립: Alt(패널), Shift(액션), Ctrl(시스템)로 구분된 전문적인 단축키 설계 원칙 문서화 및 Alt + 1 적용.
  • 실행 취소/다시 실행: Ctrl + Z/Y를 통한 무제한 작업 실행 취소 기능 활성화.

7. Premium UX & 정밀 제어 시스템 (New)

  • 오브젝트 적층(Z-Index): [ / ] 단축키를 통한 가역적 레이어링 시스템 구축 완료.
  • 물리적 잠금(Locking): 인터랙션 제한 및 시각적 피드백(Red Boundary)을 결합한 강력한 객체 보호 기능 구현.
  • 재귀적 선택(Recursive Select): 겹친 오브젝트를 정밀하게 골라내는 Surgical Picker(Photoshop Style) 시스템 완성.
  • 레이어 패널 고도화: 비활성 레이어 투명도 조절, 레이어 리네임 및 영속성 동기화 완료.

🚀 향후 개발 우선순위 (Future Priorities)

💡 Current Focus: Interaction & Topology Intelligence

현재 기본적인 정밀 제어 도구가 완성됨에 따라, 망(Network)의 논리적 연속성을 보장하는 지능형 인터랙션으로 전환 중입니다.

🎯 주요 목표

  • 정밀 고정 및 적층: 오브젝트 잠금 및 Z-Index 제어 완결.
  • 정밀 선택 도구: 복잡한 도면에서의 surgical selection 지원.
  • 고스트 타겟팅 (Ghost Targeting): 레이어 간 관통 연결 시 하부 레이어 노드에 대한 자석 효과 및 안내선 제공.
  • 레이어 스패닝 (Spanning): 여러 레이어에 걸쳐 있는 거대 오브젝트(Backbone 등)의 통합 관리 로직.

Phase 2: 고급 시각화 및 UX (중기)

  • 선 교차(Cross) 점프: 선이 겹칠 때 시각적으로 건너뛰는(Jump/Hop) 브릿지 효과.
  • 실행 취소/다시 실행: X6 History 플러그인을 활용한 무제한 Undo/Redo.

Phase 5: PM 자산 관리 및 인벤토리 (Inventory & Asset Management) [x]

  • 표준 속성 확장: 제조사, 모델명, IP, 자산번호, 상태 등 PM용 표준 데이터 스키마 적용.
  • 지능형 검색 및 이동 (Search & Zoom): IP, 자산번호, 모델명 기반 검색 및 해당 노드로 즉시 포커싱.
  • 속성 복사/붙여넣기 (Format Painter): Ctrl+Shift+C/V를 통한 스타일 및 관리 데이터 일괄 복제.
  • BOM 인벤토리 내보내기 (Excel Export): 전체 자산 리스트를 엑셀/CSV로 자동 생성 및 다운로드.
  • 드래그 복제 (Ctrl+Shift+Drag): 마우스 드래그를 이용한 즉시 오브젝트 복제 구현.

Phase 7: 멀티 레이어 아키텍처 및 논리적 계층화 (Multi-Layer & Logical Stratification)

  • 평면 중첩(Flat Overlay) 시스템: 여러 망(내부, 외부, 폐쇄망)을 독립된 레이어로 분리하고 투명도 기반으로 겹쳐 보기 기능 구현.
  • 레이어 관통 스냅(Ghost Snapping): 다른 레이어의 노드(방화벽 등)에 자석 효과를 적용하여 레이어 간 연결 편의성 극대화.
  • 입체 레이어 뷰 (3D Exploded View) [취소/폐기]: 프레젠테이션용 아코디언 익스플로드 뷰 실험 결과 가독성 저하로 폐기 결정.
  • 디자인 가이드라인 수립: Multi-Layer 설계 지침 기반의 데이터 정합성 엔진 개발.

Phase 4: 인프라 연동 및 자동화 (Integration & Automation)

  • Export 다변화: SVG, PDF, 고해상도 PNG(투명 배경) 및 전문적인 PPTX 리포트 자동 생성 기능.