diff --git "a/docs/\354\240\234\354\266\234\354\232\251/\354\242\205\355\225\251\354\204\244\352\263\204/4\354\233\22427\354\235\274_\353\260\234\355\221\234\353\214\200\353\263\270.md" "b/docs/\354\240\234\354\266\234\354\232\251/\354\242\205\355\225\251\354\204\244\352\263\204/4\354\233\22427\354\235\274_\353\260\234\355\221\234\353\214\200\353\263\270.md" index e344c0a..8f7219b 100644 --- "a/docs/\354\240\234\354\266\234\354\232\251/\354\242\205\355\225\251\354\204\244\352\263\204/4\354\233\22427\354\235\274_\353\260\234\355\221\234\353\214\200\353\263\270.md" +++ "b/docs/\354\240\234\354\266\234\354\232\251/\354\242\205\355\225\251\354\204\244\352\263\204/4\354\233\22427\354\235\274_\353\260\234\355\221\234\353\214\200\353\263\270.md" @@ -152,4 +152,50 @@ Visual Studio 2022로 개발과 디버깅을 진행합니다. 공간추론이 잘못되면 정상 공간도 단절된 공간으로 판정이 될수 있습니다. 그렇기 때문에 예제 도면으로 잘 검증해봐야합니다, 세번째는 일정에 관한 문제입니다. -UI구현이 지연되면 다른 기능들이 잘작동되는지 눈으로 확인하기 어렵기 때문에, 필요한 최소한의 UI를 우선적으로 구현해야합니다. \ No newline at end of file +UI구현이 지연되면 다른 기능들이 잘작동되는지 눈으로 확인하기 어렵기 때문에, 필요한 최소한의 UI를 우선적으로 구현해야합니다. + +--- + +## 슬라이드 15. CoreFlow - 도면 import, 검토 승인 게이팅 + +첫 번째 코어 플로우는 도면을 가져와 실행 가능한 레이아웃으로 만드는 과정입니다. +사용자가 도면 파일을 선택하면, Application의 Import Workflow UI가 Domain의 ImportOrchestrator로 importFile(ImportRequest)를 요청합니다. + +ImportOrchestrator는 포맷에 따라 Dxf/Ifc Import Service를 호출해서 원본을 파싱하고 RawImportModel을 만든 뒤, GeometryNormalizer로 CanonicalGeometry까지 정규화합니다. +그 다음 FacilityLayoutBuilder가 시뮬레이션에 쓰기 좋은 FacilityLayout2D를 만들고, ImportValidationService가 출구 누락, 연결 단절, 최소 폭 미달 같은 경고/차단 이슈를 검증합니다. + +마지막으로 Domain은 ImportResult(layout, issues, traceRefs, reviewStatus)를 Application에 반환하고, UI는 ImportResult의 readyForSimulation() 판단 결과를 보여주면서 실행 불가상태에서는 Run을 비활성화합니다. +단순히 ‘불러오기’에서 끝나지 않고 검토 가능한 결과와 실행 가능 여부까지 한 흐름으로 닫는 구조로 이루어져 있습니다. + +--- + +## 슬라이드 16. CoreFlow - 시나리오 작성, 시뮬레이션 실행, 결과 집계-저장 + +두 번째 코어 플로우는 시나리오를 만들고 실행한 뒤, 결과를 저장해 분석까지 이어지는 흐름입니다. +사용자가 baseline/alternative를 입력하면 Application이 Domain의 ScenarioDefinition/Variation을 updateScenario(inputs)로 갱신합니다. 그리고 Batch 실행을 누르면 runBatch(scenario family)가 ScenarioBatchRunner로 들어갑니다. + +이후에는 variation과 run이 반복됩니다. SimulationSession이 startRun(variation, runIndex)로 각 실행을 시작하고, Engine의 EngineRuntime을 initialize(config, resources)로 초기화한 뒤, play()로 실행합니다. +프레임 루프에서는 stepFrame(deltaSeconds)이 돌고, Engine 내부에서 FrameClock/SystemScheduler가 tick()으로 시스템을 실행해 상태를 갱신합니다. + +run이 끝나면 Domain의 ResultAggregator가 aggregateRun()을 수행하고, 결과는 ResultRepository에 RunResult → VariationSummary → (조건 충족 시) ScenarioComparison/CumulativeArtifact 순으로 저장됩니다. +정리하면, Application은 UI에 집중하고 Domain이 실행/결과를 조정하며 Engine은 실행 코어에 집중하고, 최종 결과는 persisted artifact로 남겨 분석·비교·추천으로 이어지게 합니다. + +--- + +## 슬라이드 17. 완료 기준 + +이 슬라이드는 이번 스프린트의 완료 기준을 정리한 내용입니다. + +첫 번째는 단위 테스트입니다. +도면 불러오기, 공간 구조 생성, 구조 검토와 같은 핵심 로직이 테스트를 통과해야 기본 기능이 안정적으로 동작한다고 볼 수 있습니다. + +두 번째는 도면 검토 기능입니다. +샘플 DXF 도면에서 출구 누락, 연결 단절, 폭 부족 같은 주요 문제를 시스템이 경고로 식별할 수 있어야 합니다. + +세 번째는 실행 가능입니다. +샘플 도면을 불러온 뒤 기본 시뮬레이션이 실제로 실행되어야 합니다. + +마지막은 시연 가능입니다. +정상 도면과 문제 도면을 각각 활용해서, 불러오기부터 검토, 실행, 결과 확인까지의 전체 흐름을 재현할 수 있어야 합니다. + +---