Files
technical-visualization-haness/examples/README.md
T
2026-07-24 16:31:12 +09:00

68 lines
2.9 KiB
Markdown

# TechViz examples
이 폴더에는 서로 다른 목적의 두 예제 계층이 있습니다.
## 1. 사람이 검토한 diagram-only 목표 fixture
| Fixture | 논리 구조 | SVG |
|---|---|---|
| [01-component-flow](01-component-flow/) | `component-flow` | [payment-event-flow.svg](01-component-flow/payment-event-flow.svg) |
| [02-orchestrator-workers](02-orchestrator-workers/) | `orchestrator-workers` | [mission-workers.svg](02-orchestrator-workers/mission-workers.svg) |
| [03-query-fanout](03-query-fanout/) | `query-fanout` | [metrics-query-fanout.svg](03-query-fanout/metrics-query-fanout.svg) |
| [04-timeline](04-timeline/) | `timeline` | [retention-cycle.svg](04-timeline/retention-cycle.svg) |
| [05-reconciliation-loop](05-reconciliation-loop/) | `reconciliation-loop` | [declarative-vm.svg](05-reconciliation-loop/declarative-vm.svg) |
| [06-resource-architecture](06-resource-architecture/) | `resource-controller` | [dbaas-controller.svg](06-resource-architecture/dbaas-controller.svg) |
| [07-localization-pipeline](07-localization-pipeline/) | `two-zone-pipeline` | [localization-pipeline.svg](07-localization-pipeline/localization-pipeline.svg) |
| [08-sequence](08-sequence/) | `sequence` | [payment-approval-sequence.svg](08-sequence/payment-approval-sequence.svg) |
| [09-ports-adapters](09-ports-adapters/) | `ports-adapters` | [order-ports-adapters.svg](09-ports-adapters/order-ports-adapters.svg) |
이 예제는 시각적 목표와 `composition.json` 계약을 제공합니다. 전역 제목·부제·footer·결론 띠·그라디언트·그림자는 없습니다.
## 2. 실제 런타임 compositor fixture
![runtime gallery](runtime-profiles/gallery.png)
`runtime-profiles/`의 10개 예제는 `src/techviz/layout.py``src/techviz/renderers/svg.py`가 실제 생성한 결과입니다.
```text
runtime-profiles/<case>/
spec.json VizSpec 1.1 입력
*.svg 현재 런타임 출력
*.preview.png 검토용 raster preview
```
포함 profile:
```text
component-flow
orchestrator-workers
query-fanout
timeline
reconciliation-loop
resource-controller
two-zone-pipeline
sequence
ports-adapters
comparison
```
정적 목표 fixture만 좋아 보이고 실제 하네스는 같은 카드 배열을 생성하는 회귀를 막기 위해, 테스트가 모든 runtime spec에 대해 다음을 실행합니다.
```text
load → strict parse → lint → profile layout → SVG render → XML parse
```
## 재생성 및 검증
```bash
PYTHONPATH=src python examples/build_runtime_profiles.py
python examples/build_examples.py
python examples/validate_examples.py
PYTHONPATH=src python scripts/check_generated.py
PYTHONPATH=src python -m techviz audit-batch examples/runtime-profiles
```
`audit-batch`는 레이블과 id를 제거한 topology fingerprint를 사용하여 다수 예제가 하나의 템플릿으로 붕괴하는지 검사합니다.
`assets/`, `docs/`, `work/`는 end-to-end 결제 흐름 회귀 테스트 자료입니다.