Files
vexplor/PROJECT_STATUS_2025_11_20.md

2.9 KiB

프로젝트 진행 상황 (2025-11-20)

작업 개요: 디지털 트윈 3D 야드 고도화 (동적 계층 구조)

1. 핵심 변경 사항

기존의 고정된 Area -> Location 2단계 구조를 유연한 N-Level 동적 계층 구조로 변경하고, 공간적 제약을 강화했습니다.

2. 완료된 작업

데이터베이스

  • 마이그레이션 실행: db/migrations/042_refactor_digital_twin_hierarchy.sql
  • 스키마 변경:
    • digital_twin_layout 테이블에 hierarchy_config (JSONB) 컬럼 추가
    • digital_twin_objects 테이블에 hierarchy_level, parent_key, external_key 컬럼 추가
    • 기존 하드코딩된 테이블 매핑 컬럼 제거

백엔드 (Node.js)

  • API 추가/수정:
    • POST /api/digital-twin/data/hierarchy: 계층 설정에 따른 전체 데이터 조회
    • POST /api/digital-twin/data/children: 특정 부모의 하위 데이터 조회
    • 기존 레거시 API (getWarehouses 등) 호환성 유지
  • 컨트롤러 수정:
    • digitalTwinDataController.ts: 동적 쿼리 생성 로직 구현
    • digitalTwinLayoutController.ts: 레이아웃 저장/수정 시 hierarchy_config 및 객체 계층 정보 처리

프론트엔드 (React)

  • 신규 컴포넌트: HierarchyConfigPanel.tsx
    • 레벨 추가/삭제, 테이블 및 컬럼 매핑 설정 UI
  • 유틸리티: spatialContainment.ts
    • validateSpatialContainment: 자식 객체가 부모 객체 내부에 있는지 검증 (AABB)
    • updateChildrenPositions: 부모 이동 시 자식 객체 자동 이동 (그룹 이동)
  • 에디터 통합 (DigitalTwinEditor.tsx):
    • HierarchyConfigPanel 적용
    • 동적 데이터 로드 로직 구현
    • 3D 캔버스 드래그앤드롭 시 공간적 종속성 검증 적용
    • 객체 이동 시 그룹 이동 적용

3. 현재 상태

  • 백엔드 서버: 재시작 완료, 정상 동작 중 (PostgreSQL 연결 이슈 해결됨)
  • DB: 마이그레이션 스크립트 실행 완료

4. 다음 단계 (테스트 필요)

새로운 세션에서 다음 시나리오를 테스트해야 합니다:

  1. 계층 설정: 에디터에서 창고 -> 구역(Lv1) -> 위치(Lv2) 설정 및 매핑 저장
  2. 배치 검증:
    • 구역 배치 후, 위치를 구역 내부에 배치 (성공해야 함)
    • 위치를 구역 외부에 배치 (실패해야 함)
  3. 이동 검증: 구역 이동 시 내부의 위치들도 같이 따라오는지 확인

5. 관련 파일

  • frontend/components/admin/dashboard/widgets/yard-3d/DigitalTwinEditor.tsx
  • frontend/components/admin/dashboard/widgets/yard-3d/HierarchyConfigPanel.tsx
  • frontend/components/admin/dashboard/widgets/yard-3d/spatialContainment.ts
  • backend-node/src/controllers/digitalTwinDataController.ts
  • backend-node/src/routes/digitalTwinRoutes.ts
  • db/migrations/042_refactor_digital_twin_hierarchy.sql