Files
recordingtest/docs/architecture.md
2026-04-09 16:06:47 +09:00

1.7 KiB

Architecture — recordingtest 3-tier layout

폴더 레이아웃

src/
├── Recordingtest.Recorder/              # Generic
├── Recordingtest.Player/                # Generic
├── Recordingtest.Normalizer/            # Generic
├── Recordingtest.DiffReporter/          # Generic
├── Recordingtest.Runner/                # Generic
├── Recordingtest.SutProber/             # Generic
├── Recordingtest.Bridge.Abstractions/   # Generic — IEngineStateProvider, ITargetResolver
├── Recordingtest.Bridge.Client/         # Generic — HTTP sidecar 클라이언트
├── Hmeg/
│   ├── Recordingtest.Hmeg.Bridge/       # HmEG-aware — Space/Camera/Selection
│   ├── Recordingtest.Hmeg.Catalog/      # HmEG-aware — 정적 분석/후보 탐색
│   └── Recordingtest.Hmeg.Bridge.Client/# HmEG-aware — HmEgHttpSnapshot
└── Sut/
    └── EgBim/
        └── Recordingtest.Sut.EgBim.PluginHost/  # MEF entry, EditorPlugin 상속, HttpListener
tests/
├── Recordingtest.*.Tests/
├── Recordingtest.Architecture.Tests/    # 의존 그래프 11건 강제
├── Hmeg/Recordingtest.Hmeg.*.Tests/
└── Sut/EgBim/Recordingtest.Sut.EgBim.*.Tests/

새 SUT 추가 시

HmEG-aware 재사용. 앱마다 다른 부분만 신규 작성:

src/Sut/<NewApp>/
    Recordingtest.Sut.<NewApp>.PluginHost/  # MEF entry
    Recordingtest.Sut.<NewApp>.Adapter/     # AppManager 어댑터 (필요 시)

모듈 분류 현황 (2026-04-09)

모듈 계층
Recorder, Player, Normalizer, DiffReporter, Runner, SutProber, Bridge.Abstractions, Bridge.Client Generic
Hmeg.Bridge, Hmeg.Catalog, Hmeg.Bridge.Client HmEG-aware
Sut.EgBim.PluginHost App-specific