9.8 KiB
Memgraph 기반 터널 시공 관리 의사결정 프레임워크 PoC: PRD (Product Requirements Document)
1. 개요 (Overview)
본 문서는 터널 시공 과정에서 발생하는 복잡한 작업(Job)과 객체(Object) 간의 관계를 그래프 데이터베이스인 Memgraph를 활용하여 모델링하고, 모든 job을 완료 상태로 만들 수 있는 시나리오들을 비교해 프로젝트의 Critical Path를 분석하여 효율적인 공정 관리를 지원하는 의사결정 프레임워크 PoC(Proof of Concept)의 요구사항을 정의합니다.
1.1. 문제 정의 (Problem Statement)
터널 시공 프로젝트는 수많은 작업과 객체가 복잡한 선후행 및 종속 관계로 얽혀 있어, 전통적인 RDB나 표(Spreadsheet) 기반의 관리 방식으로는 전체 공정의 흐름과 병목 현상을 직관적으로 파악하기 어렵습니다. 이로 인해 특정 작업의 지연이 전체 프로젝트에 미치는 영향을 예측하고 선제적으로 대응하는 데 한계가 있으며, 자원 배분의 최적화를 이루기 어렵습니다.
1.2. 제안 해결책 (Proposed Solution): 하이브리드 데이터 아키텍처
자주 변경되지 않는 마스터 데이터(JobType, ObjectType 등)와 동적으로 변하는 공정 시나리오 데이터를 분리하는 하이브리드 아키텍처를 채택합니다. 본 PoC에서는 Memgraph 내에서 이 개념을 시뮬레이션합니다.
- 베이스 데이터 (Base Data):
Job노드는base_duration,base_cost등 원본 데이터를 속성으로 가집니다. 모든Job간의 기본적인 선후행 관계(PRECEDES)는 ‘base’ 시나리오로 정의됩니다. - 시나리오와 변경점 (Scenario & Delta):
- 별도의
Scenario노드를 두어 “TBM 지연 가정“과 같은 분석 시나리오를 정의합니다. MODIFIES관계를 사용하여, 특정Scenario가 특정Job의 속성(예:duration)을 어떻게 변경하는지에 대한 ‘변경점(Delta)’ 정보만을 저장합니다.- 이를 통해 전체 그래프를 복제하지 않고도, 최소한의 데이터로 수많은 “What-if” 시나리오를 효율적으로 관리하고 분석할 수 있습니다.
- 별도의
PoC의 최종 목표는, 특정 시나리오를 분석할 때 **베이스 데이터에 이 ’변경점’들을 실시간으로 적용(override)**하여 Critical Path를 계산하고, 이를 통해 가장 최적화된 공정을 찾는 동적 의사결정 지원 과정을 검증하는 것입니다.
2. PoC 목표 및 성공 기준 (Goals & Success Criteria)
2.1. 목표
- 목표 1: ‘베이스 데이터 + 변경점(Delta)’ 개념을 포함한 하이브리드 그래프 데이터 모델을 성공적으로 설계하고 구축한다.
- 목표 2: 특정 시나리오(변경점 세트)가 주어졌을 때, 베이스 데이터에 변경점을 동적으로 적용하여 해당 시나리오의 Critical Path를 정확하게 계산하는 쿼리를 개발한다.
- 목표 3: 여러 시나리오의 분석 결과를 비교하여, 프로젝트 관리자가 최적의 공정(가장 짧은 Critical Path를 가진)을 선택할 수 있는 의사결정 과정을 시뮬레이션한다.
2.2. 성공 기준
- 정량적 기준:
- 정의된 Job 및 Object 속성을 90% 이상 포함하는 그래프 스키마를 완성한다.
- 최소 20개 이상의 Job 노드와 10개 이상의 Object 노드로 구성된 샘플 데이터셋을 Memgraph에 삽입 완료한다.
- 작업 기간(duration) 속성을 기반으로, 단일 Cypher 쿼리 실행을 통해 가장 긴 경로(Critical Path)를 10초 이내에 반환한다.
- 정성적 기준:
- Memgraph Lab을 통해 시각화된 그래프가 시공 프로세스의 관계를 직관적으로 표현한다.
- 도출된 Critical Path가 논리적으로 타당하며, 프로젝트 관리자가 이를 기반으로 의사결정을 내릴 수 있음을 설명할 수 있다.
3. PoC 범위 (Scope)
3.1. 포함되는 범위 (In-Scope)
- 데이터 모델링:
Job,Object노드 정의 (제시된 속성 기반)- 노드 간의 관계(
PRECEDES,DEPENDS_ON등) 엣지 정의
- 데이터 수명주기:
- 샘플 데이터셋(CSV 또는 JSON) 정의 및 생성
- Cypher 쿼리를 이용한 데이터 삽입(Create) 및 조회(Read)
- 핵심 기능 개발:
- Critical Path 분석을 위한 Cypher 쿼리 작성
- 검증:
- Memgraph Lab을 이용한 데이터 시각화 및 확인
- 쿼리 결과 분석 및 자원 재배치 시뮬레이션 시나리오 문서화
3.2. 제외되는 범위 (Out-of-Scope)
- 애플리케이션/UI 개발: 별도의 웹/앱 UI 개발은 진행하지 않으며, 모든 작업은 Memgraph Lab 또는 CLI 환경에서 수행합니다.
- 실시간 데이터 연동: 외부 시스템과의 실시간 데이터 연동은 고려하지 않습니다.
- LLM 연동: 자연어 처리 및 LLM 연동은 본 PoC의 범위를 벗어나며, 성공적인 완료 후 다음 단계 과제로 고려합니다.
- 상세 속성 전체 모델링:
Object의 ’수많은 타입별 세부 속성’은 PoC의 복잡도를 고려하여, 대표적인 2~3개 타입의 핵심 속성만 모델링에 포함합니다.
4. 기능 명세 (Feature Specifications)
FS-1: 그래프 데이터 모델 설계
- 노드 (Nodes):
Job: 작업 정보를 담는 노드.- 주요 속성:
job_no,name,id,start_date,end_date,duration(Critical Path 계산을 위한 핵심 속성,end_date-start_date로 계산),status(계획, 확인, 승인 등) 등
- 주요 속성:
Object: 시공 객체 정보를 담는 노드.- 주요 속성:
obj_no,name,id,type,bim_model_id,version등
- 주요 속성:
- 엣지 (Edges):
PRECEDES: Job 간의 선후행 관계. (AJob-> BJob)HAS_OBJECT: Job이 특정 Object와 연관됨을 나타내는 관계. (AJob-> BObject)PARENT_OF: Object 간의 계층 구조 관계. (AObject-> BObject)
FS-2: 데이터 삽입 및 조회
- 미리 정의된 샘플 데이터(CSV)를
LOAD CSVCypher 구문을 사용하여 Memgraph에 일괄 삽입하는 스크립트를 작성합니다. - 기본적인 노드 및 관계 조회 쿼리를 작성하여 데이터가 정상적으로 삽입되었는지 확인합니다.
FS-3: Critical Path 분석
Job노드의duration속성의 합이 가장 큰 경로를 찾는 Cypher 쿼리를 작성합니다.- 쿼리는
PRECEDES엣지를 따라 순차적으로 연결된Job노드들의 경로를 탐색해야 합니다. - 예시 쿼리 골격:
MATCH path = (start_node:Job)-[:PRECEDES*]->(end_node:Job) WHERE NOT ()-[:PRECEDES]->(start_node) AND NOT (end_node)-[:PRECEDES]->() WITH nodes(path) AS path_nodes UNWIND path_nodes as node WITH path_nodes, sum(node.duration) as total_duration RETURN path_nodes, total_duration ORDER BY total_duration DESC LIMIT 1;
FS-4: 시나리오 기반 What-if 분석
- FS-3에서 도출된 Critical Path 상의 Job들과, 그렇지 않은 Job(Slack이 있는 Job)들을 구분합니다.
- “만약 Slack이 있는 B작업의 자원을 Critical Path에 있는 A작업으로
재배치한다면, A작업의
duration이 단축되어 전체 프로젝트 기간이 줄어들 수 있다“는 가설을 세우고, 이를 설명하는 시나리오를 문서로 작성합니다. (실제 데이터 변경 없이 개념 증명)
FS-5: 시나리오 관리 (스냅샷)
- 기존에 존재하는 특정 시나리오(예: ‘scenario-A’)의 모든
PRECEDES관계를 복제하여 새로운 시나리오(예: ‘scenario-B’)를 생성하는 Cypher 쿼리를 작성합니다. - 생성된 신규 시나리오 내에서 특정
Job의 속성(예:duration)을 변경하거나,PRECEDES관계를 수정하여 공정 변화를 시뮬레이션할 수 있어야 합니다.
5. 검증 시나리오 (Validation Scenario)
- 준비:
docker-compose.yml을 사용하여 Memgraph 인스턴스를 실행합니다. - 데이터 로딩: 작성된 데이터 삽입 스크립트를 실행하여 샘플 데이터를 Memgraph에 로드합니다.
- 데이터 확인: Memgraph Lab에 접속하여 노드와 엣지가 의도한 대로 생성되었는지 시각적으로 확인합니다.
- Critical Path 실행: 작성된 Critical Path 분석 쿼리를 실행하고, 가장 긴 경로와 총 소요 기간을 확인합니다.
- 결과 분석:
- 쿼리 결과로 나온 Job 리스트가 프로젝트의 병목 구간임을 확인합니다.
- 해당 경로에 포함되지 않은 다른 작업 중, 유사한 자원을 사용하거나 대기 시간이 긴 작업을 식별합니다.
- 식별된 작업을 기반으로 자원 재배치 시나리오를 설명하고, 이를 통해 얻을 수 있는 기대효과(공정 단축)를 제시하며 PoC의 유용성을 증명합니다.
6. 기술 스택 (Tech Stack)
- Database: Memgraph
- Orchestration: Docker, Docker Compose
- Query & Visualization: Cypher, Memgraph Lab
- Data Format: CSV or JSON
7. 향후 계획 (Next Steps)
본 PoC가 성공적으로 완료되면, 다음 단계를 통해 프레임워크를 고도화할 수 있습니다.
- Phase 2 (Application Layer): 데이터 조회 및 수정을 위한 API 서버 및 간단한 대시보드 UI 개발
- Phase 3 (Advanced Analysis): What-if 시뮬레이션(특정 작업 지연 시 영향도 분석), 병목 현상 예측 등 고급 분석 기능 추가
- Phase 4 (LLM Integration): 자연어 질의(예: “현재 가장 중요한 작업이 뭐야?”)를 통해 분석 결과를 얻거나, 분석 리포트를 자동 생성하는 LLM 연동 기능 개발