TreeStructure
범용 트리 구조 — traversal/path/audit verdict 집계 (조직도/카� �고리/메뉴/단원 모두)
상태
| 항목 | 값 |
|---|---|
| Layer | core |
| Tier | L1 |
| Status | released |
| Version | 1.0.0 |
| 가격 | Free (free) |
| **카� | |
| �고리** | Infrastructure |
개요
개요
TreeStructure 는 multi-saas-kit 의 Layer 1 Core Plugin � 니다. ID + parent_id 로 구성된 모든 트리 구조 — 조직도 / 카� �고리 / 메뉴 / 교과 단원 / 댓글 chain — 의 traversal + path + audit verdict 집계를 도메인 무관 Pure 로 제공.
분리선 (ADR-039)
ADR-039 사례 7 — 기존 CurriculumStructure (exam.how Chapter 트리 출처) 일반화. tree traversal / path / verdict 집계는 100% 범용. AuditChecklist 6개 라벨 (scope_alignment 등) 만 교육 도메인 → config 외부화 로 SaaS 별 커스터마이징.
변경: namespace App\Plugins\CurriculumStructure → App\Plugins\TreeStructure, ChapterNode → TreeNode, ChapterTreeTraversal → TreeTraversal, ChapterPathBuilder → PathBuilder. AuditChecklist 의 6 라벨은 default 유지 (교육 SaaS 호환), config 으로 다른 도메인 ('compliance' / 'security' / 'product-quality' 등) 별 라벨 register 가능.
핵심 컴포넌트
TreeNode (DTO)
6개 필드: id, parent_id, name, depth, sort_order, slug. fromArray() / toArray().
TreeTraversal (Pure)
ancestors($all, $id)— root 우선 정렬된 부모 체인children($all, $id)— 직접 자식 (sort_order asc)siblings($all, $id)— 자기 자신 제외 형제descendants($all, $id)— 모든 후손 (재귀 깊이우선)
PathBuilder (Pure)
트리 path 빌더. separator config 으로 변경 가능 (>, /, › 등).
AuditVerdictAggregator (Pure)
여러 verdict 을 하나로 집계 — 우선순위 fail > warn > pass. config 으로 우선순위 변경 가능.
AuditChecklist (Pure constant)
Default 6 라벨 (교육 도메인). config 으로 외부화:
// config/tree-structure.php
'audit_checklist' => [
// commerce 도메인 예시
'inventory_balance' => '재고 균형',
'price_consistency' => '가격 일관성',
'category_overlap' => '카�
�고리 중복',
// ...
],