2.9 KiB
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.tsvalidateSpatialContainment: 자식 객체가 부모 객체 내부에 있는지 검증 (AABB)updateChildrenPositions: 부모 이동 시 자식 객체 자동 이동 (그룹 이동)
- 에디터 통합 (
DigitalTwinEditor.tsx):HierarchyConfigPanel적용- 동적 데이터 로드 로직 구현
- 3D 캔버스 드래그앤드롭 시 공간적 종속성 검증 적용
- 객체 이동 시 그룹 이동 적용
3. 현재 상태
- 백엔드 서버: 재시작 완료, 정상 동작 중 (PostgreSQL 연결 이슈 해결됨)
- DB: 마이그레이션 스크립트 실행 완료
4. 다음 단계 (테스트 필요)
새로운 세션에서 다음 시나리오를 테스트해야 합니다:
- 계층 설정: 에디터에서 창고 -> 구역(Lv1) -> 위치(Lv2) 설정 및 매핑 저장
- 배치 검증:
- 구역 배치 후, 위치를 구역 내부에 배치 (성공해야 함)
- 위치를 구역 외부에 배치 (실패해야 함)
- 이동 검증: 구역 이동 시 내부의 위치들도 같이 따라오는지 확인
5. 관련 파일
frontend/components/admin/dashboard/widgets/yard-3d/DigitalTwinEditor.tsxfrontend/components/admin/dashboard/widgets/yard-3d/HierarchyConfigPanel.tsxfrontend/components/admin/dashboard/widgets/yard-3d/spatialContainment.tsbackend-node/src/controllers/digitalTwinDataController.tsbackend-node/src/routes/digitalTwinRoutes.tsdb/migrations/042_refactor_digital_twin_hierarchy.sql