diff --git a/10_Wiki/Index.md b/10_Wiki/Index.md index 08d8b8bf..fdc048a5 100644 --- a/10_Wiki/Index.md +++ b/10_Wiki/Index.md @@ -1,6 +1,7 @@ # Index: . ## πŸ“ Subcategories +- Projects - Topics - Topics_Meeting diff --git a/10_Wiki/Projects/Datacollector_MAC_Engine_Audit.md b/10_Wiki/Projects/Datacollector_MAC_Engine_Audit.md new file mode 100644 index 00000000..776fad81 --- /dev/null +++ b/10_Wiki/Projects/Datacollector_MAC_Engine_Audit.md @@ -0,0 +1,61 @@ +--- +id: datacollector-mac-engine-audit-2026-05-11 +title: Datacollector_MAC Engine Audit (2026-05-11) +category: 10_Wiki/Projects +status: verified +canonical_id: self +aliases: [μ—”μ§„ μ•ˆμ •μ„± 감사 리포트, Datacollector Resilience Audit] +source_trust_level: A +confidence_score: 1.0 +created_at: 2026-05-11 +updated_at: 2026-05-11 +last_reinforced: 2026-05-11 +verification_status: validated +applied_in: + - path: /Volumes/Data/project/Antigravity/Datacollector_MAC/src/lib/engine.ts + - path: /Volumes/Data/project/Antigravity/Datacollector_MAC/src/lib/diagnostics.ts +tags: [audit, datacollector, resilience] +--- + +# [[Datacollector_MAC Engine Audit (2026-05-11)]] + +## πŸ“Œ 감사 κ°œμš” + +`Datacollector_MAC` ν”„λ‘œμ νŠΈμ˜ 핡심 μ—”μ§„(`engine.ts`)κ³Ό 진단 λ ˆμ΄μ–΄(`diagnostics.ts`)의 μ‹€μ œ μ½”λ“œλ₯Ό μ „μˆ˜ μ‘°μ‚¬ν•˜μ—¬, 자율 μ—μ΄μ „νŠΈμ˜ μ•ˆμ •μ„±κ³Ό 결함 ν—ˆμš© λŠ₯λ ₯을 ν‰κ°€ν•œ κΈ°λ‘μž…λ‹ˆλ‹€. + +## πŸ“– 감사 κ²°κ³Ό (Grounded Findings) + +### 1. 이미 κ΅¬ν˜„λœ 강점 +- **μ˜μ†μ„± 기반 볡ꡬ**: Zustand `persist` 미듀웨어λ₯Ό 톡해 큐와 μƒνƒœκ°€ 둜컬 μŠ€ν† λ¦¬μ§€μ— 보쑴됨. λΈŒλΌμš°μ € μ’…λ£Œ ν›„ μž¬κΈ°λ™ μ‹œ `paused` μƒνƒœμ—μ„œ μ•ˆμ „ν•˜κ²Œ 재개 κ°€λŠ₯함. +- **닀단계 μž₯μ•  볡ꡬ**: 인증 μ‹€νŒ¨ μ‹œ μžλ™ Re-auth, 일반 μ—λŸ¬ μ‹œ 3단계 μ§€μˆ˜ λ°±μ˜€ν”„, 치λͺ…적 μž₯μ•  μ‹œ λ°±μ—”λ“œ λΈŒλ¦Ώμ§€ μ„œλ²„ μž¬μ‹œμž‘ μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜μ΄ 완비됨. +- **결함 격리**: μ„œν‚· 브레이컀 νŒ¨ν„΄μ΄ μ „ API ν˜ΈμΆœμ— μ μš©λ˜μ–΄ μ™ΈλΆ€ μž₯μ• κ°€ μ—”μ§„μœΌλ‘œ μ „νŒŒλ˜λŠ” 것을 차단함. + +### 2. 발견된 취약점 및 κ°œμ„  ꢌ고 (Action Items) +- **이쀑 보호 κ°„μ„­**: μ„œν‚· λΈŒλ ˆμ΄μ»€μ™€ μ—”μ§„ λ°±μ˜€ν”„ μΉ΄μš΄ν„°κ°€ λ…λ¦½μ μœΌλ‘œ μž‘λ™ν•˜μ—¬, μ„œν‚· OPEN μ‹œ μ‹€μ œ λ„€νŠΈμ›Œν¬ μ‹œλ„ 없이 μž¬μ‹œλ„ 횟수만 μ†Œλͺ¨λ˜λŠ” ν˜„μƒ 발견. + - *ꢌ고*: μ—”μ§„ μ—λŸ¬ ν•Έλ“€λŸ¬μ—μ„œ `[CIRCUIT OPEN]` λ©”μ‹œμ§€ 감지 μ‹œ μΉ΄μš΄ν„°λ₯Ό μ†Œλͺ¨ν•˜μ§€ μ•Šκ³  λŒ€κΈ°ν•˜λ„λ‘ μˆ˜μ •. +- **νƒœμŠ€ν¬ 메타데이터 λΆ€μ‘±**: μž‘μ—… μ‹€νŒ¨ μ‹œ μ–΄λ–€ 단계(`pipelineStage`)μ—μ„œ μ‹€νŒ¨ν–ˆλŠ”μ§€κ°€ 큐 μ•„μ΄ν…œμ— κ΅¬μ‘°ν™”λ˜μ–΄ μ €μž₯λ˜μ§€ μ•ŠμŒ. + - *ꢌ고*: `QueueItem` μΈν„°νŽ˜μ΄μŠ€μ— `lastFailure` 객체 μΆ”κ°€. +- **Watchdog μˆ˜λ™μ„±**: ν˜„μž¬ Watchdog(`kickIfStalled`)이 μ™ΈλΆ€ νŠΈλ¦¬κ±°μ— μ˜μ‘΄ν•¨. + - *ꢌ고*: μ—”μ§„ 기동 μ‹œ `setInterval` 기반의 μžλ™ Watchdog ν™œμ„±ν™”. + +## πŸ’» 적용된 지식 λͺ¨λΈ + +- [[System_Resilience_and_Fault_Tolerance]] +- [[Autonomous_Queue_Processing_Engine]] + +## πŸ§ͺ 검증 κ²°κ³Ό + +- **정보 μƒνƒœ:** validated +- **검증 κ·Όκ±°:** `src/lib/engine.ts` 및 `src/lib/diagnostics.ts` μ†ŒμŠ€ μ½”λ“œ μ •λ°€ 뢄석 μ™„λ£Œ. +- **효과:** ν˜„μž¬ μ‹œμŠ€ν…œμ€ κ³ λΆ€ν•˜ ν™˜κ²½μ—μ„œλ„ μ„Έμ…˜μ„ λ³΅κ΅¬ν•˜κ³  μž‘μ—…μ„ 지속할 수 μžˆλŠ” μΆ©λΆ„ν•œ μˆ˜μ€€μ˜ Resilienceλ₯Ό ν™•λ³΄ν•˜κ³  있음. + +## πŸ”— 지식 μ—°κ²° (Graph) + +- **Parent:** [[10_Wiki/Projects]] +- **Related:** [[Datacollector_MAC]], [[Knowledge_Engine_Architecture]] + +## πŸ•“ λ³€κ²½ 이λ ₯ (Changelog) + +| λ‚ μ§œ | λ³€κ²½ λ‚΄μš© | 처리 방식 | 신뒰도 | +|------|-----------|-----------|--------| +| 2026-05-11 | μ‹€μ œ μ½”λ“œ 뢄석 기반의 감사 리포트 생성 | CREATE | A | diff --git a/10_Wiki/Topics/Autonomous_Queue_Processing_Engine.md b/10_Wiki/Topics/Autonomous_Queue_Processing_Engine.md new file mode 100644 index 00000000..f66919a9 --- /dev/null +++ b/10_Wiki/Topics/Autonomous_Queue_Processing_Engine.md @@ -0,0 +1,108 @@ +--- +id: autonomous-queue-processing-engine +title: Autonomous Queue Processing Engine +category: 10_Wiki/Topics +status: verified +canonical_id: self +aliases: [자율 큐 처리 μ—”μ§„, 지식 μˆ˜μ§‘ μ—”μ§„, Knowledge Expansion Engine] +source_trust_level: A +confidence_score: 0.98 +created_at: 2026-05-11 +updated_at: 2026-05-11 +last_reinforced: 2026-05-11 +verification_status: applied +applied_in: + - path: /Volumes/Data/project/Antigravity/Datacollector_MAC/src/lib/engine.ts + note: Producer-Consumer 기반 지식 μˆ˜μ§‘ νŒŒμ΄ν”„λΌμΈ κ΅¬ν˜„ + - path: /Volumes/Data/project/Antigravity/Datacollector_MAC/src/store/agentStore.ts + note: Zustand Persistλ₯Ό μ΄μš©ν•œ 큐 및 μƒνƒœ μ˜μ†ν™” +tags: [engine, queue, automation, architecture] +--- + +# [[Autonomous_Queue_Processing_Engine]] + +## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) + +> 자율 μ—”μ§„μ˜ 생λͺ…λ ₯은 λ‹¨μˆœνžˆ μ½”λ“œκ°€ μ‹€ν–‰λ˜λŠ” 것이 μ•„λ‹ˆλΌ, **μƒνƒœμ˜ μ˜μ†μ„±(Persistence)**κ³Ό **비동기 νŒŒμ΄ν”„λΌμΈμ˜ 격리**λ₯Ό 톡해 ν”„λ‘œμ„ΈμŠ€κ°€ μ€‘λ‹¨λ˜μ–΄λ„ λ§ˆμ§€λ§‰ μ§€μ μ—μ„œ μ¦‰μ‹œ μž¬κ°œν•  수 μžˆλŠ” λŠ₯λ ₯μ—μ„œ λ‚˜μ˜¨λ‹€. + +## πŸ“– 핡심 κ°œλ… (Synthesized Content) + +### 1. Producer-Consumer λͺ¨λΈ +지식 μˆ˜μ§‘(Research)κ³Ό 지식 ν™•μž₯(Ontology Expansion)을 λΆ„λ¦¬ν•©λ‹ˆλ‹€. μˆ˜μ§‘λœ μ§€μ‹μ—μ„œ μƒˆλ‘œμš΄ 주제(Links)λ₯Ό λ°œκ²¬ν•˜λ©΄ 큐에 μΆ”κ°€(Produce)ν•˜κ³ , 엔진은 큐λ₯Ό 순차적으둜 μ†ŒλΉ„(Consume)ν•©λ‹ˆλ‹€. + +### 2. μƒνƒœ μ˜μ†ν™” (State Persistence) +λ©”λͺ¨λ¦¬μƒμ˜ νλŠ” νœ˜λ°œμ„±μž…λ‹ˆλ‹€. μ—”μ§„μ˜ μƒνƒœ(`queue`, `completed`, `processedCount`)λŠ” λ°˜λ“œμ‹œ 파일 μ‹œμŠ€ν…œμ΄λ‚˜ LocalStorage 등에 μ˜μ†ν™”λ˜μ–΄μ•Ό ν•˜λ©°, `running` μƒνƒœμ—μ„œ 비정상 μ’…λ£Œ μ‹œ μž¬μ‹œμž‘ν•  λ•Œ `paused`둜 μ•ˆμ „ν•˜κ²Œ λ³΅κ΅¬λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€. + +### 3. μ§€λŠ₯적 ν‹± 쑰절 (Intelligent Tick Scheduling) +ν•˜λ“œμ›¨μ–΄(예: M4 μ•„ν‚€ν…μ²˜)의 λΆ€ν•˜λ₯Ό κ³ λ €ν•˜μ—¬ μž‘μ—… κ°„ 간격(Tick)을 λ™μ μœΌλ‘œ μ‘°μ ˆν•˜κ³ , 정체 감지 μ‹œ Watchdog 둜직이 엔진을 λ‹€μ‹œ 깨울 수 μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€. + +## πŸ’» μ½”λ“œ νŒ¨ν„΄ (Implementation Patterns) + +### μƒνƒœ μ˜μ†ν™” (Zustand μ˜ˆμ‹œ) +```typescript +persist( + (set, get) => ({ + queue: [], + completed: [], + // ... actions + }), + { + name: 'engine-storage', + partialize: (state) => ({ + queue: state.queue, + completed: state.completed, + status: state.status === 'running' ? 'paused' : state.status + }), + } +) +``` + +### Dequeue 및 μ‹€ν–‰ 락 +```typescript +async function processQueue() { + if (!isRunning || isConsumerActive || executionLock) return; + + executionLock = true; + isConsumerActive = true; + + try { + const task = queue[0]; + await executeTask(task); + dequeue(); + } finally { + isConsumerActive = false; + executionLock = false; + } +} +``` + +## πŸ€” μ˜μ‚¬κ²°μ • κΈ°μ€€ + +| ν•­λͺ© | κΈ°μ€€ | +|---|---| +| μž‘μ—… μš°μ„ μˆœμœ„ | 일반적으둜 Depth-First(깊이 μš°μ„ )λ₯Ό μ„ ν˜Έν•˜λ˜, 큐 μ‚½μž… μ‹œ μ •λ ¬ ν•„μˆ˜ | +| 쀑볡 처리 | 큐 μ‚½μž… μ „ `completed` λ¦¬μŠ€νŠΈμ™€ ν˜„μž¬ `queue` λ‚΄ 쀑볡을 λ°˜λ“œμ‹œ 체크 | +| μ’…λ£Œ 쑰건 | λͺ©ν‘œ μ²˜λ¦¬λŸ‰(Max Count) λ˜λŠ” λͺ¨λ“  μž‘μ—… μ™„λ£Œ μ‹œ μ—”μ§„ μ •μ§€ | + +## ❌ μ•ˆν‹°νŒ¨ν„΄ + +- **In-Memory Only Queue**: λΈŒλΌμš°μ € λ¦¬ν”„λ ˆμ‹œλ‚˜ ν”„λ‘œμ„ΈμŠ€ μž¬μ‹œμž‘ μ‹œ λͺ¨λ“  μž‘μ—… 내역을 μžƒκ²Œ λ©λ‹ˆλ‹€. +- **Concurrent Execution without Lock**: λ™μΌν•œ 큐 μ•„μ΄ν…œμ— λŒ€ν•΄ μ—¬λŸ¬ Consumerκ°€ λ™μ‹œμ— 달렀듀어 쀑볡 μž‘μ—…μ„ μˆ˜ν–‰ν•˜κ±°λ‚˜ μƒνƒœκ°€ 꼬일 수 μžˆμŠ΅λ‹ˆλ‹€. + +## πŸ§ͺ 검증 μƒνƒœ (Validation) + +- **μƒνƒœ:** verified +- **좜처 신뒰도:** A +- **적용 사둀:** `Datacollector_MAC`의 `KnowledgeEngine` ν΄λž˜μŠ€μ—μ„œ 검증됨. + +## πŸ”— 지식 μ—°κ²° (Graph) + +- **Parent:** [[Software_Architecture_Patterns]] +- **Related:** [[System_Resilience_and_Fault_Tolerance]], [[Data_Schema]] +- **Trade-off:** [[Stability vs Flexibility]] + +## πŸ•“ λ³€κ²½ 이λ ₯ (Changelog) + +| λ‚ μ§œ | λ³€κ²½ λ‚΄μš© | 처리 방식 | 신뒰도 | +|------|-----------|-----------|--------| +| 2026-05-11 | Datacollector_MAC μ—”μ§„ 섀계λ₯Ό λ°”νƒ•μœΌλ‘œ 졜초 생성 | CREATE | A | diff --git a/10_Wiki/Topics/System_Resilience_and_Fault_Tolerance.md b/10_Wiki/Topics/System_Resilience_and_Fault_Tolerance.md new file mode 100644 index 00000000..8cde2a00 --- /dev/null +++ b/10_Wiki/Topics/System_Resilience_and_Fault_Tolerance.md @@ -0,0 +1,101 @@ +--- +id: system-resilience-and-fault-tolerance +title: System Resilience and Fault Tolerance +category: 10_Wiki/Topics +status: verified +canonical_id: self +aliases: [결함 ν—ˆμš© μ‹œμŠ€ν…œ, 회볡 탄λ ₯μ„± μ•„ν‚€ν…μ²˜, Resilience Patterns] +source_trust_level: A +confidence_score: 0.95 +created_at: 2026-05-11 +updated_at: 2026-05-11 +last_reinforced: 2026-05-11 +verification_status: applied +applied_in: + - path: /Volumes/Data/project/Antigravity/Datacollector_MAC/src/lib/engine.ts + note: Exponential Backoff 및 Backend Restart 둜직 적용 + - path: /Volumes/Data/project/Antigravity/Datacollector_MAC/src/lib/diagnostics.ts + note: Circuit Breaker νŒ¨ν„΄ 적용 +tags: [architecture, reliability, engineering] +--- + +# [[System Resilience and Fault Tolerance]] + +> [!TIP] +> μ‹œμŠ€ν…œ 회볡 탄λ ₯성은 λ‹¨μˆœνžˆ μ—λŸ¬κ°€ λ‚˜μ§€ μ•ŠλŠ” 것이 μ•„λ‹ˆλΌ, **μ—λŸ¬κ°€ λ°œμƒν–ˆμ„ λ•Œ μ–΄λ–»κ²Œ μš°μ•„ν•˜κ²Œ 볡ꡬ(Graceful Recovery)ν•˜λŠλƒ**의 λ¬Έμ œμž…λ‹ˆλ‹€. + +## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) + +> λΆ„μ‚° μ‹œμŠ€ν…œκ³Ό μ™ΈλΆ€ API μ˜μ‘΄λ„κ°€ 높은 ν˜„λŒ€ μ†Œν”„νŠΈμ›¨μ–΄μ—μ„œ μ•ˆμ •μ„±μ€ 'μ™„λ²½ν•œ 차단'이 μ•„λ‹Œ, μ§€μˆ˜ λ°±μ˜€ν”„(Backoff)와 μ„œν‚· 브레이컀(Circuit Breaker)λ₯Ό ν†΅ν•œ **격리된 μ‹€νŒ¨ μ œμ–΄**와 **μžλ™ν™”λœ μžκ°€ 치유(Self-healing)** λŠ₯λ ₯에 μ˜ν•΄ κ²°μ •λœλ‹€. + +## πŸ“– 핡심 κ°œλ… (Synthesized Content) + +### 1. μ§€μˆ˜ λ°±μ˜€ν”„ (Exponential Backoff) +μ‹€νŒ¨ν•œ μš”μ²­μ„ μ¦‰μ‹œ μž¬μ‹œλ„ν•˜λŠ” λŒ€μ‹ , μž¬μ‹œλ„ 간격을 μ§€μˆ˜μ μœΌλ‘œ λŠ˜λ €λ‚˜κ°€λŠ” μ „λž΅μž…λ‹ˆλ‹€. μ΄λŠ” λ„€νŠΈμ›Œν¬ λΆ€ν•˜λ₯Ό λ°©μ§€ν•˜κ³  μΌμ‹œμ μΈ μž₯μ• (Transient Failure)κ°€ ν•΄μ†Œλ  μ‹œκ°„μ„ λ²Œμ–΄μ€λ‹ˆλ‹€. + +### 2. μ„œν‚· 브레이컀 (Circuit Breaker) +μ™ΈλΆ€ μ„œλΉ„μŠ€ μž₯μ• κ°€ μ‹œμŠ€ν…œ μ „μ²΄λ‘œ μ „νŒŒλ˜λŠ” 것을 막기 μœ„ν•΄, νŠΉμ • μž„κ³„κ°’ μ΄μƒμ˜ μ‹€νŒ¨κ°€ λ°œμƒν•˜λ©΄ μš”μ²­μ„ μ¦‰μ‹œ 차단(OPEN)ν•˜λŠ” νŒ¨ν„΄μž…λ‹ˆλ‹€. 일정 μ‹œκ°„ ν›„ μ‹œλ²” μš”μ²­(HALF_OPEN)을 톡해 볡ꡬ μ—¬λΆ€λ₯Ό ν™•μΈν•©λ‹ˆλ‹€. + +### 3. 격리된 μžλ™ μž¬μ‹œμž‘ (Orchestrated Restart) +μ• ν”Œλ¦¬μΌ€μ΄μ…˜ κ³„μΈ΅μ—μ„œ ν•΄κ²°λ˜μ§€ μ•ŠλŠ” ν•˜λΆ€ μ„œλΉ„μŠ€(λ°±μ—”λ“œ λΈŒλ¦Ώμ§€ λ“±)의 μž₯μ• λ₯Ό κ°μ§€ν–ˆμ„ λ•Œ, 격리된 λ°©μ‹μœΌλ‘œ ν•΄λ‹Ή μ„œλΉ„μŠ€λ₯Ό λ¦¬μ…‹ν•˜κ³  μ„Έμ…˜μ„ λ³΅κ΅¬ν•˜λŠ” μ΅œν›„μ˜ 볡ꡬ μˆ˜λ‹¨μž…λ‹ˆλ‹€. + +## πŸ’» μ½”λ“œ νŒ¨ν„΄ (Implementation Patterns) + +### Circuit Breaker μƒνƒœ 관리 +```typescript +let circuit = { + status: 'CLOSED', // CLOSED, OPEN, HALF_OPEN + failureCount: 0, + lastFailureTime: Date.now() +}; + +function updateCircuit(isSuccess: boolean) { + if (isSuccess) { + circuit.status = 'CLOSED'; + circuit.failureCount = 0; + } else { + circuit.failureCount++; + if (circuit.failureCount >= 3) circuit.status = 'OPEN'; + } +} +``` + +### μ§€μˆ˜ λ°±μ˜€ν”„ 기반 μž¬μ‹œλ„ +```typescript +const delays = [5000, 15000, 45000]; // 5초, 15초, 45초 +const retryDelay = delays[consecutiveErrors - 1]; +setTimeout(() => processNext(), retryDelay); +``` + +## πŸ€” μ˜μ‚¬κ²°μ • κΈ°μ€€ + +| 상황 | ꢌμž₯ 접근법 | +|---|---| +| μΌμ‹œμ  λ„€νŠΈμ›Œν¬ νƒ€μž„μ•„μ›ƒ | 3단계 λ‚΄μ™Έμ˜ μ§€μˆ˜ λ°±μ˜€ν”„ μž¬μ‹œλ„ | +| 인증 만료 및 μ„Έμ…˜ 였λ₯˜ | μ¦‰μ‹œ μžλ™ 볡ꡬ(Re-auth) μ‹œλ„ ν›„ μ‹€νŒ¨ μ‹œ μΌμ‹œμ •μ§€ | +| μ™ΈλΆ€ μ„œλΉ„μŠ€ 연속 μ‹€νŒ¨ | μ„œν‚· 브레이컀 OPEN ν•˜μ—¬ λ¦¬μ†ŒμŠ€ μ†Œλͺ¨ 차단 | +| λ°±μ—”λ“œ ν”„λ‘œμ„ΈμŠ€ 응닡 μ—†μŒ | ν”„λ‘œμ„ΈμŠ€ 격리 μž¬μ‹œμž‘(Bridge Restart) μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜ | + +## ❌ μ•ˆν‹°νŒ¨ν„΄ + +- **λ¬΄ν•œ μž¬μ‹œλ„ (Infinite Retry Loop)**: μ’…λ£Œ 쑰건 μ—†λŠ” μž¬μ‹œλ„λŠ” μ„œλ²„ λ¦¬μ†ŒμŠ€λ₯Ό κ³ κ°ˆμ‹œν‚€κ³  둜그 폭증을 μœ λ°œν•©λ‹ˆλ‹€. +- **Immediate Retry**: μ‹€νŒ¨ μ¦‰μ‹œ μž¬μ‹œλ„ν•˜λŠ” 것은 'Self-DDOS' ν–‰μœ„μ΄λ©°, μž₯μ•  상황을 μ•…ν™”μ‹œν‚΅λ‹ˆλ‹€. +- **이쀑 μΉ΄μš΄νŒ… (Double Counting Errors)**: μ„œν‚· λΈŒλ ˆμ΄μ»€μ™€ μ—”μ§„μ˜ λ°±μ˜€ν”„ μΉ΄μš΄ν„°κ°€ λ…λ¦½μ μœΌλ‘œ μ†Œμ§„λ˜μ–΄, μ‹€μ œ μž¬μ‹œλ„ 기회λ₯Ό λ‚­λΉ„ν•˜λŠ” 것을 경계해야 ν•©λ‹ˆλ‹€. + +## πŸ§ͺ 검증 μƒνƒœ (Validation) + +- **μƒνƒœ:** verified +- **좜처 신뒰도:** A (Datacollector_MAC μ‹€κ΅¬ν˜„μ²΄ 기반) +- **적용 사둀:** `Datacollector_MAC` ν”„λ‘œμ νŠΈμ˜ `engine.ts`와 `diagnostics.ts`μ—μ„œ 검증됨. + +## πŸ”— 지식 μ—°κ²° (Graph) + +- **Parent:** [[Software_Architecture_Patterns]] +- **Related:** [[Runtime_Validation]], [[Autonomous_Queue_Processing_Engine]] +- **Trade-off:** [[Stability vs Flexibility]] + +## πŸ•“ λ³€κ²½ 이λ ₯ (Changelog) + +| λ‚ μ§œ | λ³€κ²½ λ‚΄μš© | 처리 방식 | 신뒰도 | +|------|-----------|-----------|--------| +| 2026-05-11 | Datacollector_MAC μ—”μ§„ 리뷰λ₯Ό 기반으둜 졜초 생성 | CREATE | A |