feat: Wiki 지식 자산 업데이트 - UX Scenarios, Frontend, Game Design, Topics 추가 [2026-05-08]
This commit is contained in:
@@ -1,20 +1,33 @@
|
||||
---
|
||||
category: Unified
|
||||
id: wiki-2026-0508-2026년-3월-연구-드롭-march-2026-resear
|
||||
title: 2026년 3월 연구 드롭(March 2026 Research Drop)
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [auto-consolidated, technical-documentation]
|
||||
title: [[2026년 3월 연구 드롭(March 2026 Research Drop)|2026년 3월 연구 드롭(March 2026 Research Drop)]]
|
||||
last_updated: 2026-05-02
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[2026년 3월 연구 드롭(March 2026 Research Drop)|2026년 3월 연구 드롭(March 2026 Research Drop)]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
2026년 3월 연구 드롭은 Descendants의 섹터 통제 시도를 물리친 후 발견된 데이터 볼트를 기반으로 한 기지 업그레이드 시스템입니다 [1]. 이 업그레이드는 '이리듐(Iridium)' 자원을 필요로 하며, 방어 플랫폼에 특정 무기 공격에 대한 50% 피해 저항력을 부여하여 게임의 전투 메타를 근본적으로 변화시켰습니다 [1-3]. 더불어 항공기를 교란하는 나이트워치 벙커(Nightwatch Bunker)와 체력이 높은 유닛을 카운터 치는 메트로노모스(Metronomos) 중포탑이 새롭게 도입되어 방어 체계의 전략적 깊이가 크게 심화되었습니다 [4-6].
|
||||
|
||||
---
|
||||
|
||||
2026년 3월 연구 업데이트는 디센던트(Descendants) 세력의 섹터 통제 시도를 격퇴한 후 발견된 데이터 볼트를 기반으로 도입된 핵심 기술 업데이트입니다 [1]. 이 업데이트는 새로운 자원인 '이리듐(Iridium)'을 도입하고, 방어 플랫폼의 피해 저항력을 전문화하며, 신규 벙커 및 중포탑을 추가하여 게임의 전반적인 전투 메타를 크게 변화시켰습니다 [1, 2]. 특히 단일 무기 유형에 의존하는 공격의 효율을 크게 감소시켜, 공격자에게 '제병협동(Combined Arms)' 형태의 혼합 소대 전술을 강제하는 데 목적이 있습니다 [2, 3].
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
- **연구 드롭 배경 및 필요 자원:** Corpus의 과학자들이 잔해 속에서 발견한 소형 데이터 볼트를 복구하면서 새로운 기지 방어 업그레이드 청사진이 해제되었습니다 [1]. 이 연구 레벨들을 진행하려면 '이리듐' 자원이 필요하지만, 동급의 다른 기술 연구에 비해 소요 시간이 짧은 이점이 있습니다 [1, 2].
|
||||
- **새로운 방어 구조물 도입 (Operation: Western Sun 상점):**
|
||||
- **나이트워치 벙커 (Nightwatch Bunker):** 10개의 새로운 레벨로 구성되며 최대 750의 수용량과 사거리 20% 증가 보너스를 제공합니다 [4]. 보병, 차량, 항공기에 대해 10%의 추가 피해를 입히며, 특히 반경 300 내의 적 항공기에 '난기류(Turbulence)'를 일으켜 이동 및 타겟팅을 교란하는 강력한 대공 전자전(electronic warfare) 능력을 보유하고 있습니다 [4, 6].
|
||||
@@ -48,10 +61,10 @@ last_updated: 2026-05-02
|
||||
* **전술적 영향력 (Tactical Impact)**: 이러한 방어 플랫폼의 극단적인 전문화로 인해 지속(Sustain) 피해 보병 러시와 같은 단일 유닛 위주의 공격은 상대가 방어구(Armored) 플랫폼을 사용 중일 때 효율이 절반으로 떨어집니다 [3, 7]. 공격 지휘관은 방어자의 플랫폼 세팅과 무관하게 안정적인 화력을 투사하기 위해 다양한 피해 프로필이 혼합된 소대(Mixed Platoons)를 구성해야만 합니다 [3].
|
||||
* **기타 주요 기술 업그레이드**: Deep Reactor (최대 전력 250), Fusion Tower (최대 전력 450)를 통해 기지 전력 한도가 증가했습니다 [8]. 또한 Warp Lance (패턴 변경 및 AREA 피해로 전환), Deadeye (스플래시 감소 및 피해량 증가), Acid Rain (분열 거리 변경으로 신뢰성 증가) 등 다수의 무기 체계에 5개의 신규 레벨이 부여되었습니다 [8, 9].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
No trade-offs available.
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
## 🔗 지식 연결 (Graph)
|
||||
- **Related Topics:** `방어 플랫폼(Defense Platform)`, `이리듐(Iridium)`, `[[혼합 소대(Mixed Platoons)|혼합 소대(Mixed Platoons)]]`
|
||||
- **Projects/Contexts:** `[[Operation- Western Sun|Operation: Western Sun]]`, `[[제병협동 전술 (Combined Arms)|제병 협동 전술(Combined Arms)]]`
|
||||
- **Contradictions/Notes:** 소스 간의 정보 충돌은 없으며, 모든 자료가 2026년 3월 연구 드롭으로 인해 전투 시스템의 수비적 다각화 및 그에 따른 공격 전술(다기종 혼합 편성)의 변화가 발생했음을 일관되게 보여줍니다.
|
||||
@@ -67,3 +80,52 @@ No trade-offs available.
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-27*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,9 +1,29 @@
|
||||
---
|
||||
id: wiki-2026-0508-3의-법칙-rule-of-three
|
||||
title: 3의 법칙 (Rule of Three)
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [uncategorized]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[3의 법칙 (Rule of Three)]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
3의 법칙(Rule of Three)은 돈 로버츠(Don Roberts)가 제안하고 마틴 파울러(Martin Fowler)가 대중화한 소프트웨어 리팩토링의 핵심 경험 법칙(Rule of Thumb)이다 [1, 2]. 이 법칙은 유사한 형태의 코드가 세 번 반복해서 사용될 때 비로소 중복을 피하기 위해 리팩토링을 수행해야 한다고 명시한다 [1, 3]. 이는 무분별한 리팩토링으로 인한 오버 엔지니어링과 기술 부채 사이의 균형을 맞추고, 실용적인 설계 조정을 권장하는 가이드라인이다 [3].
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
* **3단계 진행 방식 (Three strikes and you refactor)**:
|
||||
1. 첫 번째로 무언가를 구현할 때는 단순히 기능을 완성하는 데 집중하여 일단 진행한다 [4-6].
|
||||
2. 두 번째로 비슷한 작업을 수행할 때는 코드 중복으로 인해 다소 꺼림칙하거나 불편함을 느끼더라도, 같은 방식으로 중복을 허용하여 코드를 작성한다 [2, 4, 6].
|
||||
@@ -11,10 +31,66 @@
|
||||
* **패턴 발견과 정확한 추상화 유도**: 단 두 번의 사례만으로는 코드의 공통점을 명확히 찾기 어려울 수 있다. 하지만 중복이 세 번 이상 발생할 경우, 공통점과 차이점의 패턴을 훨씬 쉽게 파악할 수 있어 더 정확하고 올바른 추상화 수준을 결정하는 데 도움이 된다 [2, 7, 8].
|
||||
* **경제성 관점**: 코드의 중복은 코드를 유지보수하기 어렵게 만들지만, 3의 법칙은 세 개의 복사본이 존재하게 될 때 발생하는 유지보수 비용이 리팩토링을 수행하는 비용 및 잠재적인 나쁜 설계의 위험성을 확실히 초과하게 된다는 것을 내포하고 있다 [1, 9].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
* **성급한 추상화(Premature Refactoring)의 위험성**: 세 번의 중복이 나타나기 전에 너무 일찍 리팩토링을 시도하면 잘못된 추상화를 선택할 위험이 커진다 [2, 8]. 잘못된 추상화 모델이 시스템에 고착되면, 새로운 요구사항(유스케이스)을 처리하기 위해 부자연스러운 매개변수나 if 문 등을 억지로 추가해야 하므로 코드 유연성이 저하된다 [2, 10]. 결론적으로 잘못된 추상화보다 차라리 코드의 중복을 남겨두는 것이 유지보수 비용 측면에서 훨씬 저렴하다 [11].
|
||||
* **도그마화(Dogmatic)에 대한 경계**: 3의 법칙은 반드시 100% 지켜야 하는 엄격한 교리가 아니라 지침으로 활용해야 한다 [12, 13]. 세 번의 중복이 발견되었더라도 올바른 추상화 방법을 찾기 어렵거나 새로운 개념에 명확한 이름을 붙일 수 없다면, 억지로 추상화(over-abstraction)를 강요해서는 안 된다 [12]. 이런 경우에는 상황에 대한 더 많은 컨텍스트를 얻고 추가적인 중복 사례가 나타날 때까지 리팩토링을 유보하고 기다리는 것이 더 안전하다 [10].
|
||||
|
||||
|
||||
---
|
||||
*Last updated: 2026-05-03*
|
||||
*Last updated: 2026-05-03*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
|
||||
- **Parent:** [[10_Wiki/Topics]]
|
||||
- **Related:** *(TODO: 최소 2개)*
|
||||
- **Opposite / Trade-off:** *(TODO)*
|
||||
- **Raw Source:** 직접 입력
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,10 +1,21 @@
|
||||
---
|
||||
id: b3c4d5e6-f7a8-4b9c-0d1e-2f3a4b5c6d7e
|
||||
category: Unified
|
||||
id: wiki-2026-0508-a2a
|
||||
title: A2A
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: [b3c4d5e6-f7a8-4b9c-0d1e-2f3a4b5c6d7e]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.97
|
||||
tags: [a2a, agent, protocol, multi-agent, communication, infrastructure]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-01
|
||||
github_commit: "wikification-a2a"
|
||||
github_commit: wikification-a2a
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# Agent-to-Agent (A2A)
|
||||
@@ -13,7 +24,6 @@ github_commit: "wikification-a2a"
|
||||
> A2A는 서로 다른 하네스나 원격지에 위치한 에이전트들이 작업을 위임하고 상태를 공유하며 협업할 수 있도록 돕는 상호운용성 네트워크 표준 프로토콜이다.
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
|
||||
### 1. A2A의 정의 및 목적
|
||||
- **에이전트 간 통신망**: 단일 하네스를 넘어 분산된 에이전트 생태계를 연결한다.
|
||||
- **작업 위임(Delegation)**: 상위 오케스트레이터 에이전트가 특정 도메인 전문가 에이전트에게 하위 작업을 맡기고 결과를 회수하는 과정을 규격화한다.
|
||||
@@ -26,7 +36,7 @@ github_commit: "wikification-a2a"
|
||||
### 3. MCP와의 관계
|
||||
- **수평적/수직적 확장**: MCP가 '에이전트-도구' 간의 수직적 통합을 담당한다면, A2A는 '에이전트-에이전트' 간의 수평적 협업을 담당하여 완전한 통신 스택을 형성한다.
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & RL Update)
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
- **보안 경계**: 원격 에이전트 호출 시 신뢰할 수 없는 데이터가 주입될 위험이 있으며, 교차 인증 및 데이터 검증 계층이 필수적이다.
|
||||
- **오케스트레이션 복잡성**: 에이전트가 많아질수록 통신 지연과 상태 불일치 문제가 발생하며, 이를 관리하기 위한 분산 시스템 수준의 설계가 요구된다.
|
||||
|
||||
@@ -39,3 +49,52 @@ github_commit: "wikification-a2a"
|
||||
1. Stage: git add .
|
||||
2. Commit: `git commit -m "[P-Reinforce] Wikify Agent-to-Agent (A2A) Protocol"`
|
||||
3. Push: `git push origin main`
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,9 +1,21 @@
|
||||
---
|
||||
id: P-REINFORCE-WIKI-3FC2171D
|
||||
category: Unified
|
||||
id: wiki-2026-0508-acid-transactions
|
||||
title: ACID Transactions
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: [P-REINFORCE-WIKI-3FC2171D]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.95
|
||||
tags: ['acid-transactions', 'microservices-architecture', 'eventual-consistency', 'saga-pattern', 'base', 'architecture-principles']
|
||||
tags: [acid-transactions, microservices-architecture, eventual-consistency, saga-pattern, base, architecture-principles]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-02
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[ACID Transactions]]
|
||||
@@ -11,21 +23,20 @@ last_reinforced: 2026-05-02
|
||||
## 📌 Brief 소스에 관련 정보가 부족합니다.
|
||||
ACID 트랜잭션은 작업의 구현을 더 쉽게 만들어주는 전통적인 데이터베이스 트랜잭션 관리 방식입니다 [1]. 그러나 각 서비스가 자체 데이터베이스를 가져야 하는 마이크로서비스 아키텍처(분산 시스템)에서는 도입이 매우 어려워, 시스템 설계 시 최종 일관성(Eventual Consistency) 모델이나 BASE, Saga 패턴 등으로 대체되는 특성을 지닙니다 [2, 3]. 소스에 ACID의 구체적인 원리나 4가지 속성(Atomicity, Consistency, Isolation, Durability)에 대한 상세한 정의 등 관련 정보가 부족합니다.
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
소스에 관련 정보가 부족합니다. 다만, 제공된 소스에서 파악할 수 있는 ACID 트랜잭션의 아키텍처적 맥락은 다음과 같습니다:
|
||||
|
||||
* **구현의 용이성 우위:** 일반적으로 최종 일관성(Eventual Consistency)을 가지는 Saga 패턴이나 BASE 모델을 구현하는 것보다, 전통적인 ACID 트랜잭션으로 작업을 구현하는 것이 훨씬 더 쉽고 직관적입니다 [1].
|
||||
* **분산 아키텍처에서의 적용 한계:** 마이크로서비스 아키텍처는 느슨한 결합(Loose coupling)을 달성하기 위해 '서비스당 데이터베이스(Database per service)' 패턴을 따라야 합니다 [2]. 이로 인해 여러 서비스의 데이터베이스에 걸친 비즈니스 트랜잭션을 중앙에서 관리해야 할 때, 기존의 ACID 트랜잭션을 그대로 적용하는 것은 불가능에 가깝거나 매우 어렵습니다 [2, 3].
|
||||
* **비-ACID(non-ACID) 모델로의 전환:** 여러 서비스에 걸친 복잡한 트랜잭션을 관리하기 위해 현대 분산 아키텍처에서는 ACID 트랜잭션을 포기하는 대신, 결국에는 상태가 동기화됨을 보장하는 비-ACID 방식인 최종 일관성 관리(예: Saga 패턴)를 대안으로 도입하게 됩니다 [2, 3].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
소스에 ACID 트랜잭션 자체의 원리적 한계에 대한 정보는 부족하나, 아키텍처 선택 관점에서의 반대 급부는 다음과 같습니다:
|
||||
|
||||
* **느슨한 결합(Loose Coupling)과의 충돌:** 애플리케이션의 유연성과 확장성을 위해 마이크로서비스 아키텍처를 도입할 경우, ACID 트랜잭션이 보장하는 강력한 데이터 일관성을 포기해야 하는 구조적 제약이 발생합니다 [2, 3].
|
||||
* **대안 선택 시의 복잡성 증가:** ACID 트랜잭션을 유지할 수 없는 분산 환경에서 최종 일관성 모델(Saga 패턴 등)을 도입하면, 트랜잭션 처리와 관련된 구현 및 테스트 난이도가 급격히 상승하는 반대 급부가 따릅니다 [3]. 비즈니스 로직에 실패 시 롤백을 처리하는 복잡한 보상 트랜잭션(Compensating transaction) 등을 추가로 구현해야 하는 부담이 생깁니다 [4].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
### Related Concepts
|
||||
(소스에 관련 정보가 부족하여 분산 시스템에서의 트랜잭션 관리 맥락을 중심으로 연결합니다.)
|
||||
|
||||
@@ -68,4 +79,57 @@ ACID 트랜잭션은 작업의 구현을 더 쉽게 만들어주는 전통적인
|
||||
- 확장 방향: 마이크로서비스 구조에서 각 서비스의 독립성을 보장하기 위해 데이터가 어떻게 격리되는지 살펴보고, 이 패턴이 분산 트랜잭션 관리와 ACID 트랜잭션 포기에 미치는 직접적인 영향을 연구할 수 있습니다.
|
||||
|
||||
---
|
||||
*Last updated: 2026-05-02*
|
||||
*Last updated: 2026-05-02*
|
||||
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
|
||||
> *(TODO: 한 문장으로 핵심 통찰을 작성. "X는 Y 조건에서 Z 효과를 낸다" 구조 권장.)*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,20 +1,33 @@
|
||||
---
|
||||
category: Unified
|
||||
id: wiki-2026-0508-adr-architecture-decision-record
|
||||
title: ADR (Architecture Decision Record)
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [auto-consolidated, technical-documentation]
|
||||
title: [[ADR (Architecture Decision Record)]]
|
||||
last_updated: 2026-05-02
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[ADR (Architecture Decision Record)]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
ADR(Architecture Decision Record)은 소프트웨어 프로젝트에서 내려진 아키텍처 결정과 그에 대한 기술적 및 비즈니스적 근거를 기록하는 단일 문서입니다 [1]. 이 문서는 시스템과 팀이 진화함에 따라 과거의 결정 배경이 잊혀지거나 오해받는 것을 방지합니다 [1, 2]. 접근 가능한 저장소에 관리되는 ADR은 의사결정의 이력을 투명하게 유지하여 아키텍처가 이해 가능하고 검증 가능하며 미래의 변화에 대비할 수 있도록 하는 핵심 자산입니다 [3, 4].
|
||||
|
||||
---
|
||||
|
||||
ADR(Architecture Decision Record)은 소프트웨어 아키텍처 결정 사항과 그 근거를 명확하고 투명하게 기록하는 문서화 도구이다 [1, 2]. 이 기록은 아키텍처 결정의 초기 맥락, 채택된 결정, 그 이유, 기각된 대안, 그리고 예상되는 위험과 결과를 상세히 명시한다 [3, 4]. 이를 통해 미래의 팀원, 감사자, 이해관계자들이 시스템의 발전 과정을 이해하고 진화시키는 데 필수적인 지식 관리 자산으로 기능한다 [3, 4].
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
* **ADR의 목적과 가치**
|
||||
아키텍처 결정은 한 번 내려지면 되돌리기 어렵고, 시간이 흐를수록 그 배경과 이유가 잊혀지기 쉽습니다 [2]. 결정을 문서화하지 않으면 동일한 논의가 해결 없이 반복되는 안티패턴(anti-pattern)이 발생할 수 있습니다 [1]. ADR은 이러한 지식 증발을 막고, 새로운 팀원, 감사자, 이해관계자 및 미래 시스템의 진화를 위해 이해하기 쉬운 근거와 맥락을 제공하는 중요한 역할을 수행합니다 [2, 3].
|
||||
|
||||
@@ -48,7 +61,7 @@ ADR(Architecture Decision Record)은 소프트웨어 아키텍처 결정 사항
|
||||
* **비즈니스 가치와의 정렬**:
|
||||
ADR은 단순히 기술적 선택만 기록하는 것이 아니라, 비용, 사용자 만족도, 시장 출시 시간(Time to market) 등 비즈니스적 타당성도 함께 제공한다 [1]. 따라서 ADR을 통해 이 아키텍처 결정이 실질적인 비즈니스 가치를 지니는지, 혹은 이해관계자의 목표와 일치하는지 객관적으로 검증할 수 있다 [1].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
소스에 ADR 자체의 구조적인 제약 사항이나 부작용에 대한 상세한 정보가 부족합니다. 다만, 소스에서 확인되는 의사결정 및 문서화 과정에서의 한계와 관리적 책임(Trade-off)은 다음과 같습니다.
|
||||
|
||||
* **지속적인 유지보수 책임:** 아키텍처와 ADR은 한 번 작성되고 끝나는 것이 아닙니다. 요구사항, 부하, 팀의 운영 현실 등 컨텍스트가 변경되면 아키텍처 역시 변경되어야 하며, 이에 맞춰 ADR 문서도 반드시 지속적으로 업데이트되어야 하는 관리 비용이 발생합니다 [5, 6].
|
||||
@@ -59,7 +72,7 @@ ADR(Architecture Decision Record)은 소프트웨어 아키텍처 결정 사항
|
||||
소스에 관련 정보가 부족합니다.
|
||||
(단, ADR과 같은 문서화 과정 자체에 대한 명시적인 단점은 소스에 서술되어 있지 않으나, 아키텍처를 둘러싼 컨텍스트가 변경될 때마다 시스템과 함께 ADR도 지속적으로 재검토하고 업데이트해야 하는 관리적 책임이 수반된다는 점이 제약 사항으로 언급되어 있습니다 [5]. 또한, ADR에 기록된 내용이 실질적인 비즈니스 가치를 제공하지 못하거나 비즈니스 이해관계자와 어긋나는 것으로 판명될 경우, 해당 아키텍처 결정을 즉각적으로 재고(reconsidered)해야 합니다 [1].)
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
## 🔗 지식 연결 (Graph)
|
||||
### Related Concepts
|
||||
|
||||
#### [의사결정 및 평가 방법론]
|
||||
@@ -141,3 +154,52 @@ ADR(Architecture Decision Record)은 소프트웨어 아키텍처 결정 사항
|
||||
|
||||
---
|
||||
*Last updated: 2026-05-02*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,13 +1,26 @@
|
||||
---
|
||||
category: Unified
|
||||
id: wiki-2026-0508-adr-architecture-decision-record
|
||||
title: ADR (Architecture Decision Records)
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [auto-consolidated, technical-documentation]
|
||||
title: [[ADR (Architecture Decision Records)]]
|
||||
last_updated: 2026-05-02
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[ADR (Architecture Decision Records)]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
ADR(Architecture Decision Records)은 아키텍처 결정 사항과 그 근거를 이해하기 쉽고 검증 가능하게 문서화하는 도구입니다 [1-3]. 시스템의 맥락, 결정 내용, 합리적 근거, 고려된 대안, 그리고 단/장기적 위험과 결과를 기록함으로써 시간이 지나도 과거의 결정 배경을 추적할 수 있게 합니다 [3, 4]. 이를 통해 새로운 팀원, 감사자, 기타 이해관계자들이 시스템을 깊이 이해하고 진화시키는 데 필요한 핵심 자산으로 활용됩니다 [3, 4].
|
||||
|
||||
---
|
||||
@@ -18,7 +31,7 @@ Architecture Decision Records(ADR)는 소프트웨어 아키텍처와 관련된
|
||||
|
||||
아키텍처 결정 기록(ADR)은 소프트웨어 아키텍처에 대한 결정 사항과 그 기술적 배경, 검토된 대안, 그리고 예상되는 결과 및 위험을 체계적으로 문서화한 기록입니다 [1, 2]. 이는 시간이 지나면서 아키텍처 설계의 맥락이 잊혀지는 것을 방지하고, 관련 이해관계자들을 위한 **단일 진실 공급원(Single source of truth)** 역할을 수행하여 시스템의 지속적인 진화를 지원합니다 [2, 3].
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
* **문서화의 전략적 가치:** 소프트웨어 아키텍처 결정은 한 번 내려지면 되돌리기 어렵고, 시간이 흐를수록 그 배경과 맥락이 쉽게 잊혀집니다 [3]. 따라서 어떤 기술적 배경에서 결정이 이루어졌는지 체계적인 이력 관리를 하기 위해 ADR의 작성이 필수적으로 요구됩니다 [3].
|
||||
* **ADR의 핵심 구성 요소:** ADR은 객관적인 결정을 담보하기 위해 보통 다음과 같은 구체적인 항목들을 포함하여 작성됩니다 [3, 4].
|
||||
* **맥락(Context):** 결정이 내려지게 된 초기 상황과 기술적 배경은 무엇인가?
|
||||
@@ -60,7 +73,7 @@ Architecture Decision Records(ADR)는 소프트웨어 아키텍처와 관련된
|
||||
* **시스템 진화와 의사소통을 위한 전략적 자산**
|
||||
아키텍처 결정은 한 번 내려지면 변경 비용이 매우 높기 때문에 그 배경을 문서화하는 것이 필수적입니다 [2, 5]. 기록된 ADR은 새로운 팀원의 온보딩, 감사(Auditors), 이해관계자와의 소통, 그리고 미래의 시스템 개발 방향을 결정하는 데 가장 중요한 자산이 됩니다 [1, 2]. 시스템 부하, 사용자 행동, 팀의 기술 역량 등 프로젝트 맥락은 계속 변화하며, ADR은 이러한 변화의 궤적을 단계별로 기록하여 시스템이 변화에 적응하도록 돕습니다 [1].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
**소스에 ADR 도입 자체에 대한 구체적인 부작용이나 제약 사항에 관한 정보는 부족합니다.**
|
||||
|
||||
다만, 주어진 소스는 **"완벽한 아키텍처란 없으며 모든 결정은 타협(Trade-off)의 결과"**라고 강조합니다 [6]. 따라서 ADR은 특정 아키텍처를 선택하는 과정에서 발생하는 트레이드오프(예: 고도의 보안성을 얻기 위해 성능(대기 시간)을 희생하거나, 일관성을 양보하여 가용성을 높이는 등의 결정)를 식별하고, 이로 인한 제약 사항 및 타협 지점(Trade-off Points)을 투명하게 기록하는 수단으로 기능합니다 [3, 6, 7]. 즉, 기술적 선택의 반대 급부를 관리하고, 이를 시스템의 위험 요소로 명확히 인지하기 위해 ADR이 사용됩니다 [3, 4, 7].
|
||||
@@ -80,7 +93,7 @@ Architecture Decision Records(ADR)는 소프트웨어 아키텍처와 관련된
|
||||
* **비즈니스 가치와의 정렬 필수:** ADR에 기록된 아키텍처 결정은 단순히 기술적 만족을 위한 것이 아니라, 비용, 사용자 만족도, 시장 출시 시간 등 **구체적인 비즈니스 가치에 대한 정당성을 포함**해야 합니다 [3]. 만약 명확한 비즈니스 가치를 제공하지 못하거나 이해관계자의 목표와 엇나간다면, 해당 결정은 재고되어야 합니다 [3].
|
||||
* **분석 마비(Analysis Paralysis)의 위험:** 꼼꼼한 문서화와 완벽한 결정을 내리려는 압박감 때문에 결정을 지연시키는 현상을 경계해야 합니다 [3]. 결정은 충분한 정보를 확보한 **'마지막 책임 순간(last responsible moment)'**에 이루어져야 하며, 개발 팀과의 긴밀한 협력을 통해 진행해야 합니다 [3].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
## 🔗 지식 연결 (Graph)
|
||||
### Related Concepts
|
||||
|
||||
#### [관계 유형 A: 아키텍처 평가 및 분석 방법론]
|
||||
@@ -197,3 +210,52 @@ Architecture Decision Records(ADR)는 소프트웨어 아키텍처와 관련된
|
||||
|
||||
---
|
||||
*Last updated: 2026-05-02*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,22 +1,41 @@
|
||||
---
|
||||
id: wiki-2026-0508-ai-assisted-refactoring-ai-기반-리팩
|
||||
title: AI Assisted Refactoring (AI 기반 리팩토링)
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [uncategorized]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[AI-Assisted Refactoring (AI 기반 리팩토링)]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
AI 기반 리팩토링은 대형 언어 모델(LLM)과 같은 인공지능 도구를 활용하여 소프트웨어의 외부 동작을 변경하지 않으면서 내부 코드 구조를 분석하고 개선하는 과정을 의미한다 [1, 2]. 이 접근법은 보일러플레이트 코드 작성이나 자동화된 단위 테스트 생성을 통해 리팩토링의 생산성을 크게 높일 수 있지만, 기존 시스템의 암묵적 지식을 파악해야 하는 복잡한 아키텍처 작업에서는 숙련된 개발자의 작업 속도를 오히려 늦출 위험도 존재한다 [3-5]. 따라서 AI 도구는 자동화된 테스트 및 인간 개발자의 철저한 검토와 결합되어 기술 부채를 통제하는 보조 수단으로 전략적으로 활용되어야 한다 [6-8].
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
* **분석 및 대안 제시 (Analysis & Recommendations):** AI 모델은 방대한 코드베이스를 분석하여 코드 스멜(Code Smell)을 실시간으로 탐지하고, 프로젝트의 코딩 규칙에 맞는 리팩토링 대안을 제안한다 [1, 2, 9]. 다양한 설계 대안을 비교하거나, 레거시 코드를 더 모듈화되고 재사용 가능한 서비스로 일괄 변환(Batch transformation)하는 데 유용하다 [2, 9].
|
||||
* **계층적 다중 에이전트 활용 (Hierarchical Multi-Agent Approach):** 전체 아키텍처와 교차 모듈 간의 의존성을 분석해 리팩토링 계획을 수립하는 플래너 모델(예: Gemini 2.5 Pro)과, 파일 단위의 국지적인 리팩토링과 테스트 생성을 수행하는 실행 모델(예: Cursor)을 분리하여 리팩토링을 수행하는 체계가 연구 및 적용되고 있다 [10, 11].
|
||||
* **작업 유형별 효율성 차이 (Task-Specific Efficiency):** 반복적인 보일러플레이트 코드 작성, 언어 변환, 문서화 및 단위 테스트 생성 등 단순한 작업에서는 AI가 20~55% 수준의 높은 생산성 향상을 제공한다 [5, 12, 13]. 특히 도메인 지식이 부족한 주니어 개발자에게 설계 지식을 보완해주어 큰 효율성(최대 39% 향상)을 제공할 수 있다 [8, 14].
|
||||
* **자동화 테스트를 통한 가드레일 (Test-Guarded Validation):** AI는 코드를 환각(Hallucination)하거나 오류를 유발할 수 있으므로 리팩토링의 안전성을 보장하기 위해서는 인간이 감독(Human-in-the-loop)하고, 리팩토링 전에 AI를 활용하여 포괄적인 단위 테스트(안전망)를 먼저 생성하는 방식이 요구된다 [6, 7, 15, 16].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
* **AI 생산성 역설 (AI Productivity Paradox):** 숙련된 시니어 개발자가 익숙한 코드베이스에서 AI를 사용할 경우, 개발자는 자신이 20% 더 빨라졌다고 느끼지만 실제로는 작업 속도가 19% 하락하는 39%의 '인식 격차(Perception Gap)'가 발생할 수 있다 [3, 8, 17, 18].
|
||||
* **암묵적 지식 및 인지 비용 (Implicit Knowledge Problem):** 전문가들이 머릿속에 지니고 있는 아키텍처 결정 사항, 과거 버그 내역, 팀의 관례 등의 암묵적 지식을 AI에게 프롬프트로 설명하고(Context-giving) 결과를 검토하는 데 걸리는 시간이, 개발자가 직접 코드를 리팩토링하는 시간보다 더 오래 걸릴 수 있다 [4, 19, 20].
|
||||
* **병목 현상의 전이 (Bottleneck Migration):** AI 도구가 코드 생성 자체의 속도는 크게 단축시키지만, 생성된 코드를 테스트하고 아키텍처에 통합하며 리뷰하는 시간(PR Review Time)이 91%나 증가하게 되어 개발 워크플로우의 병목이 후속 단계로 이동하게 된다 [21, 22].
|
||||
* **핵심 기술 위축 (Skills Atrophy):** AI에 과도하게 의존하여 리팩토링을 수행하면 개발자의 구문 기억력, 문제 분해 능력, 수동 디버깅 직관, 그리고 코드를 읽고 이해하는 깊이 있는 인지 능력이 저하될 위험이 존재한다 [22, 23].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
### Related Concepts
|
||||
|
||||
#### [관계 유형 A: 리팩토링 및 검증 기반 (Refactoring & Validation Foundations)]
|
||||
@@ -61,4 +80,53 @@ AI 기반 리팩토링은 대형 언어 모델(LLM)과 같은 인공지능 도
|
||||
- 확장 방향: 레거시 시스템 전체를 한 번에 재작성(Rewrite)하지 않고, 점진적으로 의존성을 끊고 새로운 아키텍처로 대체하는 과정에서 AI의 모듈 분리 능력을 어떻게 결합할 수 있는지에 대한 연구 [37, 38].
|
||||
|
||||
---
|
||||
*Last updated: 2026-05-03*
|
||||
*Last updated: 2026-05-03*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,28 +1,39 @@
|
||||
---
|
||||
id: P-REINFORCE-WIKI-80E2D2FE
|
||||
category: Unified
|
||||
id: wiki-2026-0508-api-gateway
|
||||
title: API Gateway
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: [P-REINFORCE-WIKI-80E2D2FE]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.95
|
||||
tags: ['api-gateway', '마이크로서비스-아키텍처-(microservices-architecture)', '서버리스-아키텍처-(serverless-architecture)', '서비스-메시-(service-mesh)', '레거시-시스템-현대화-(legacy-system-modernization)', 'architecture-principles']
|
||||
tags: [api-gateway, 마이크로서비스-아키텍처-(microservices-architecture), 서버리스-아키텍처-(serverless-architecture), 서비스-메시-(service-mesh), 레거시-시스템-현대화-(legacy-system-modernization), architecture-principles]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-02
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[API Gateway]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
API Gateway는 클라이언트와 마이크로서비스(또는 서버리스 함수) 사이에서 중개자 역할을 수행하는 관리 도구이자 핵심 아키텍처 패턴입니다 [1, 2]. 클라이언트의 API 요청을 접수하여 적절한 백엔드 마이크로서비스로 전달(Forward)하고, 그 결과를 모아 다시 클라이언트에게 반환하는 애플리케이션의 주 진입점(Entry point) 역할을 수행합니다 [2, 3]. 이를 통해 클라이언트에게 일관된 인터페이스를 제공하며 기반 아키텍처의 복잡성을 추상화합니다 [4].
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
- **단일 진입점 및 라우팅 (Entry Point & Routing):** 마이크로서비스 아키텍처에서 API Gateway는 클라이언트가 내부 서비스에 접근하는 방식을 정의하는 주 진입점으로 사용됩니다 [1, 3]. 클라이언트의 요청을 받아 올바른 마이크로서비스로 라우팅하고, 응답을 수신하여 클라이언트에게 반환하는 중개자 역할을 합니다 [2].
|
||||
- **아키텍처 추상화 및 일관성 (Abstraction & Consistency):** 기존 모놀리식 아키텍처에서 서버리스나 마이크로서비스 기반으로 마이그레이션할 때, 기반 아키텍처의 복잡성을 숨기고 클라이언트에게 일관된 인터페이스를 제공하는 전략적 수단으로 사용됩니다 [4].
|
||||
- **서버리스 및 이벤트 기반 워크로드 통합 (Serverless & Event-Driven Integration):** AWS Lambda와 같은 클라우드 서비스와 결합되어 서버리스 아키텍처를 구성하는 데 활용되며 [5], 데이터 스트림 처리, 실시간 분석과 같은 이벤트 기반 워크로드(Event-driven workloads)를 처리하는 데 탁월한 역할을 수행합니다 [6].
|
||||
- **보안 및 관리 도구 (Security & Management Tool):** API Gateway 자체는 마이크로서비스가 아니며, 백엔드 서비스들을 운영하고 관리하는 도구입니다 [2]. 서버리스 및 분산 환경에서는 각 컴포넌트별 권한(Permissions) 제어 및 환경 변수 관리를 세심하게 수행하는 지점이 됩니다 [7].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
- **기술 스택의 비대화 및 비용 증가 (Fatter Technology Stack & Cost):** API Gateway를 도입하면 오케스트레이터, 서버 클러스터, 서비스 메시 등과 함께 전체 기술 스택이 두꺼워지며(Fatter technology stack) 더 많은 리소스를 요구하게 됩니다 [8]. 이는 마이크로서비스 기반 소프트웨어 개발 프로젝트의 전체적인 클라우드 리소스 및 인프라 비용을 증가시키는 원인이 됩니다 [9].
|
||||
- **관리의 복잡성 (Management Complexity):** 서버리스 환경에서 API Gateway를 활용할 때 각 컴포넌트(함수)에 대한 권한 및 환경 변수를 세밀하게 관리해야 하는 운영 상의 복잡성이 수반됩니다 [7]. 또한, 백엔드의 마이크로서비스들과 명확하게 연결되어야만 제 기능을 하므로 설계 및 구성 과정에서 추가적인 노력이 필요합니다 [2].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
### Related Concepts
|
||||
|
||||
#### [관계 유형 A (아키텍처/기반 기술)]
|
||||
@@ -59,4 +70,53 @@ API Gateway는 클라이언트와 마이크로서비스(또는 서버리스 함
|
||||
- 확장 방향: API Gateway가 실시간 분석이나 데이터 스트리밍과 같은 이벤트 기반 워크로드를 어떻게 트리거하고 수용하는지 그 비동기적 통신 구조의 설계 방식을 분석합니다 [6].
|
||||
|
||||
---
|
||||
*Last updated: 2026-05-02*
|
||||
*Last updated: 2026-05-02*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -0,0 +1,83 @@
|
||||
---
|
||||
id: wiki-2026-0508-api-contract-definition
|
||||
title: API Contract Definition
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: [P-Reinforce-662214]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.95
|
||||
tags: [uncategorized]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-04-20
|
||||
github_commit: "[P-Reinforce] Mega Batch - Wikified API-Contract-Definition"
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[API-Contract-Definition]]
|
||||
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
> 핵심 요약 작업 진행 중
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
본문 상세 구성 진행 중
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
- **과거 데이터와의 충돌:** 지식 자산화 및 기존 네트워크 연동 단계.
|
||||
- **정책 변화:** Software Architecture 카테고리의 전문성 확보 및 링크 밀도 최적화.
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
---
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -0,0 +1,25 @@
|
||||
---
|
||||
id: wiki-20260508-api-first-architecture-redir
|
||||
title: API First Architecture
|
||||
category: Architecture
|
||||
status: merged
|
||||
redirect_to: API-First_Architecture
|
||||
canonical_id: API-First_Architecture
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [redirect]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-merge 2026-05-08)
|
||||
---
|
||||
|
||||
# API First Architecture
|
||||
|
||||
> [!IMPORTANT]
|
||||
> 이 문서는 P-Reinforce Phase 2 자동 MERGE에 의해 **[[API-First_Architecture]]**로 통합되었습니다.
|
||||
|
||||
---
|
||||
*Redirected to: [[API-First_Architecture]]*
|
||||
@@ -1,13 +1,26 @@
|
||||
---
|
||||
category: Unified
|
||||
id: wiki-2026-0508-api-first-architecture
|
||||
title: API First Architecture
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [auto-consolidated, technical-documentation]
|
||||
title: [[API-First Architecture|API-First Architecture]]
|
||||
last_updated: 2026-05-02
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[API-First Architecture|API-First Architecture]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
> **API-First Architecture**는 애플리케이션 프로그래밍 인터페이스(API)를 시스템의 최우선 제품으로 취급하는 소프트웨어 설계 방식입니다 [1]. 제품을 먼저 구축하고 나중에 API를 덧붙이는 대신, API의 설계와 문서화부터 개발을 시작합니다 [1]. 이러한 계약 우선(contract-first) 방법론을 통해 API의 일관성과 재사용성을 보장하며, 프론트엔드와 백엔드 개발 팀이 분리되어 병렬로 효율적인 작업을 진행할 수 있도록 지원합니다 [1, 2].
|
||||
|
||||
---
|
||||
@@ -16,7 +29,7 @@ last_updated: 2026-05-02
|
||||
|
||||
---
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
* **작동 방식 및 주요 원칙**
|
||||
* **계약 주도 개발 (Contract-Driven Development):** 개발 팀들은 OpenAPI나 AsyncAPI와 같은 사양을 사용하여 엔드포인트, 데이터 모델, 인증 방법 등을 명시한 API 계약(contract)에 동의합니다 [3]. 이렇게 정의된 사양은 이후의 모든 개발 및 통합 작업의 명확한 지침이 됩니다 [3].
|
||||
* **독립적인 개발 주기:** API 계약이 정의되면, 프론트엔드 팀은 모의(Mocked) 버전의 API를 기반으로 즉시 UI 개발과 테스트를 진행할 수 있고, 동시에 백엔드 팀은 실제 비즈니스 로직을 구현할 수 있어 개발 주기가 효과적으로 분리됩니다 [2, 3].
|
||||
@@ -49,7 +62,7 @@ API를 단순한 기술적 연동 수단이 아닌, 외부와 소통하는 하
|
||||
|
||||
---
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
- **과거 데이터와의 충돌:** 지식 자산화 및 기존 네트워크 연동 단계.
|
||||
- **정책 변화:** Software Architecture 카테고리의 전문성 확보 및 링크 밀도 최적화.
|
||||
|
||||
@@ -66,7 +79,7 @@ API를 단순한 기술적 연동 수단이 아닌, 외부와 소통하는 하
|
||||
|
||||
---
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
## 🔗 지식 연결 (Graph)
|
||||
- **Related Topics:** Contract-Driven Development, OpenAPI, AsyncAPI
|
||||
- **Projects/Contexts:** Stripe, Twilio (이 철학으로 잘 문서화된 API를 구축하여 비즈니스를 성장시킨 대표적인 기업 사례 [3])
|
||||
- **Contradictions/Notes:** 소스 내에 상충되는 주장은 존재하지 않습니다. 다만, 이 구조의 구현 복잡성은 '중간(Medium)' 수준이며, 성공적인 도입과 유지를 위해서는 스펙 우선(spec-first)의 규율과 명확한 거버넌스가 요구된다고 명시하고 있습니다 [5].
|
||||
@@ -96,4 +109,53 @@ API를 단순한 기술적 연동 수단이 아닌, 외부와 소통하는 하
|
||||
* [[GraphQL]]: 클라이언트 요구에 최적화된 API 쿼리를 제공하는 대체 기술입니다.
|
||||
|
||||
---
|
||||
*Last updated: 2026-05-02*
|
||||
*Last updated: 2026-05-02*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,17 +1,20 @@
|
||||
---
|
||||
id: P-REINFORCE-WIKI-WEB-API-FUNDAMENTALS
|
||||
title: "API 핵심 원리 및 아키텍처 패턴 (API Fundamentals)"
|
||||
category: Unified
|
||||
id: wiki-2026-0508-api-fundamentals
|
||||
title: API Fundamentals
|
||||
category: 10_Wiki/Topics
|
||||
status: verified
|
||||
canonical_id: ""
|
||||
aliases: ["API", "인터페이스", "Application Programming Interface", "통신 규약"]
|
||||
duplicate_of: ""
|
||||
canonical_id: self
|
||||
aliases: [P-REINFORCE-WIKI-WEB-API-FUNDAMENTALS, API, 인터페이스, Application Programming Interface, 통신 규약]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 1.0
|
||||
tags: ["Web_API", "REST", "GraphQL", "gRPC", "Architecture"]
|
||||
raw_sources: ["Datacollector_Export_2026-05-02"]
|
||||
tags: [Web_API, REST, GraphQL, gRPC, Architecture]
|
||||
raw_sources: [Datacollector_Export_2026-05-02]
|
||||
last_reinforced: 2026-05-02
|
||||
github_commit: ""
|
||||
github_commit: pending
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[API 핵심 원리 및 아키텍처 패턴 (API Fundamentals)]]
|
||||
@@ -44,3 +47,70 @@ API(Application Programming Interface)는 소프트웨어 컴포넌트 간의
|
||||
- **정보 상태**: 검증 완료 (Verified)
|
||||
- **출처 신뢰도**: A
|
||||
- **검토 이유**: 시스템 통합과 확장성의 근간이 되는 API의 핵심 개념 및 실천적 분석 방법론 정립.
|
||||
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
|
||||
> *(TODO: 한 문장으로 핵심 통찰을 작성. "X는 Y 조건에서 Z 효과를 낸다" 구조 권장.)*
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
|
||||
**추출된 패턴:**
|
||||
> *(TODO)*
|
||||
|
||||
**세부 내용:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
|
||||
- **과거 데이터와의 충돌:** 없음
|
||||
- **정책 변화:** 없음
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
|
||||
- **Parent:** [[10_Wiki/Topics]]
|
||||
- **Related:** *(TODO: 최소 2개)*
|
||||
- **Opposite / Trade-off:** *(TODO)*
|
||||
- **Raw Source:** 직접 입력
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,10 +1,21 @@
|
||||
---
|
||||
id: [[P-Reinforce|P-Reinforce]]-CODING-001
|
||||
category: Unified
|
||||
id: wiki-2026-0508-ast-traversal
|
||||
title: AST Traversal
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: [P-Reinforce-CODING-001]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [coding, ast, compiler]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-04-20
|
||||
github_commit: "batch-reinforce-01"
|
||||
github_commit: batch-reinforce-01
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# Abstract Syntax Tree Traversal
|
||||
@@ -19,7 +30,7 @@ github_commit: "batch-reinforce-01"
|
||||
- 정적 분석 및 린팅(Linting) 툴의 기초 로직 제공.
|
||||
- 리팩토링 및 코드 자동 생성 도구의 엔진 역할.
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & RL Update)
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
- **과거 데이터와의 충돌:** 단순 텍스트 기반 검색과 달리 문맥(Context)을 이해하는 구조적 접근의 필수성 강조.
|
||||
- **정책 변화:** 코딩 표준(w1) 강화에 따라 AST 기반 자동 수정 가중치 상향.
|
||||
|
||||
@@ -27,3 +38,52 @@ github_commit: "batch-reinforce-01"
|
||||
- **Parent:** 10_Wiki/💡 Topics/Coding
|
||||
- **Related:** [[CST|CST]], [[Parser|Parser]], Visitor-Pattern
|
||||
- **Raw Source:** 00_Raw/2026-04-20/[[Abstract-Syntax-Tree-Traversal|Abstract-Syntax-Tree-Traversal]].md
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,30 +1,41 @@
|
||||
---
|
||||
id: P-REINFORCE-WIKI-E724CEAB
|
||||
category: Unified
|
||||
id: wiki-2026-0508-atam-architecture-trade-offs-ana
|
||||
title: ATAM (Architecture Trade offs Analysis Method)
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: [P-REINFORCE-WIKI-E724CEAB]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.95
|
||||
tags: ['atam-(architecture-trade-offs-analysis-method)', 'architecture-decision-records-(adr)', 'iso-25010-(품질-모델)', '민감도-지점-(sensitivity-points)', 'tara-(architecture-assessment)', 'architecture-principles']
|
||||
tags: [atam-(architecture-trade-offs-analysis-method), architecture-decision-records-(adr), iso-25010-(품질-모델), 민감도-지점-(sensitivity-points), tara-(architecture-assessment), architecture-principles]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-02
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[ATAM (Architecture Trade-offs Analysis Method)]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
ATAM(Architecture Trade-offs Analysis Method)은 특정 소프트웨어 아키텍처가 비즈니스 목표를 얼마나 잘 지원하는지 평가하고 아키텍처적 위험 요소를 식별하기 위해 SEI(Software Engineering Institute)에서 개발한 방법론입니다 [1, 2]. 이 방법론은 '완벽한 아키텍처는 없다'는 인식 하에, 의사결정 과정에서 불가피하게 발생하는 타협점(Compromise)을 체계적으로 찾아냅니다 [1]. 소프트웨어 아키텍처를 평가하는 데 있어 '표준(Gold Standard)'으로 간주되며, 직감이나 유행에 따른 아키텍처 선택을 방지하는 객관적인 기준을 제공합니다 [1, 3].
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
* **시나리오 기반 분석 (Scenario-based thinking):** ATAM은 '성능'과 같이 추상적인 품질 목표를 논의하는 대신, 구체적인 시나리오를 사용하여 아키텍처를 평가합니다 [1, 2]. 예를 들어 "사용자가 10분 내에 두 배로 증가할 때 시스템이 어떻게 작동하는가?" 또는 "데이터베이스가 실패할 때 아키텍처가 어떻게 동작하는가?"와 같은 특정한 자극과 반응을 통해 아키텍처의 한계를 시험합니다 [1, 2].
|
||||
* **트레이드오프 식별 (Identification of trade-offs):** 분석 과정을 통해 여러 품질 속성 간의 상호작용과 절충점(Trade-off Points)을 명확히 드러냅니다 [1, 2]. 극단적으로 안전한 시스템(높은 암호화)을 구현하면 성능(지연 시간)을 희생해야 하거나, 가용성을 높이기 위해 일관성을 양보해야 하는 등의 상충 관계를 찾아냅니다 [1, 2].
|
||||
* **위험 및 민감도 지점 도출 (Risks and sensitivity points):** 아키텍처가 어느 부분에서 민감한지(sensitive)를 파악합니다 [1]. 이를 통해 설계자가 단순히 '유행하는 패턴의 관점'에서만 생각하는 것을 방지하고, 라이브 운영(Live operation) 중 발생할 수 있는 예상치 못한 문제들로부터 시스템을 보호합니다 [1].
|
||||
* **아키텍처 비교 및 의사결정:** ATAM은 측정 가능한 품질 기준을 바탕으로 여러 아키텍처 접근법을 비교하는 데 사용되며, 순수한 직감에 의한 결정을 체계적인 의사결정 프로세스로 전환합니다 [3, 4]. 이 과정의 핵심 산출물로는 '위험 테마 및 트레이드오프 보고서'가 생성됩니다 [5].
|
||||
* **사전 분석을 통한 위험 완화:** 시스템이 구축되기 전에 소프트웨어 시스템의 동작을 분석할 수 있는 기반을 제공합니다 [6]. 실제 구축 없이도 시스템이 이해관계자의 요구를 충족하는지 검증함으로써 실질적인 비용 절감과 위험 완화 효과를 가져옵니다 [6].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
ATAM 자체는 시스템의 트레이드오프를 밝혀내는 분석 방법론이므로, 이 방법론이 도출하는 핵심적인 제약 사항은 바로 "모든 아키텍처 결정은 곧 타협(Trade-off)"이라는 사실입니다 [1].
|
||||
* **품질 속성 간의 상충:** 성능, 보안, 가용성, 유지보수성 등 다양한 품질 속성을 동시에 완벽하게 달성하는 것은 불가능하며, 하나의 품질 속성을 최적화(예: 개발 속도 극대화)하면 필연적으로 다른 속성(예: 향후 유지보수성)이 저하되는 반대 급부가 발생함을 인정해야 합니다 [1, 2].
|
||||
* **패턴 맹신에 대한 경고:** 특정 아키텍처 패턴이 현대적이고 유행한다는 이유만으로 선택해서는 안 되며, 구체적인 시나리오를 바탕으로 철저히 한계를 시험하고 약점을 파악하는 분석 과정을 반드시 거쳐야 한다는 제약을 부여합니다 [1].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
### Related Concepts
|
||||
|
||||
#### [관계 유형 A: 아키텍처 평가 및 기록]
|
||||
@@ -62,4 +73,53 @@ ATAM 자체는 시스템의 트레이드오프를 밝혀내는 분석 방법론
|
||||
- 확장 방향: ATAM 등을 통해 초기 설계 당시 의도되었던 아키텍처가 시스템의 지속적인 진화와 유지보수 과정에서 어떻게 변질되고 붕괴되는지, 그리고 이를 어떻게 막을 것인지에 대한 운영적 관점의 연구로 나아갈 수 있습니다 [14].
|
||||
|
||||
---
|
||||
*Last updated: 2026-05-02*
|
||||
*Last updated: 2026-05-02*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,14 +1,26 @@
|
||||
---
|
||||
id: P-REINFORCE-WIKI-550EC936
|
||||
category: Unified
|
||||
id: wiki-2026-0508-atam-architecture-tradeoff-analy
|
||||
title: ATAM (Architecture Tradeoff Analysis Method)
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: [P-REINFORCE-WIKI-550EC936]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.95
|
||||
tags: ['atam-(architecture-tradeoff-analysis-method)', 'iso-25010-(quality-model)', 'tara', 'adr-(architecture-decision-records)', '소프트웨어-아키텍처-평가-(software-architecture-evaluation)', 'architecture-principles']
|
||||
tags: [atam-(architecture-tradeoff-analysis-method), iso-25010-(quality-model), tara, adr-(architecture-decision-records), 소프트웨어-아키텍처-평가-(software-architecture-evaluation), architecture-principles]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-02
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[ATAM (Architecture Tradeoff Analysis Method)]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
ATAM(Architecture Tradeoff Analysis Method)은 특정 아키텍처가 비즈니스 목표를 얼마나 잘 지원하는지 평가하고 아키텍처적 위험 요소를 식별하기 위한 소프트웨어 아키텍처 평가 방법론이다 [1]. 추상적인 품질 목표 대신 구체적인 자극과 반응으로 구성된 '시나리오'를 활용하여 아키텍처의 한계를 시험한다 [1, 2]. 이를 통해 완벽한 아키텍처 대신 각 품질 속성 간의 타협점(Trade-off)을 체계적으로 발견하고 검증하는 데 목적이 있다 [2].
|
||||
|
||||
## 📖 Core 소스에 관련 정보가 부족합니다.Content
|
||||
@@ -17,15 +29,14 @@ ATAM(Architecture Tradeoff Analysis Method)은 특정 아키텍처가 비즈니
|
||||
* **트레이드오프 식별 (Identification of trade-offs):** 아키텍처 결정에 따른 상호작용과 상충 관계를 명확히 보여준다 [2]. 특정 기능을 극대화하기 위해 희생해야 하는 다른 품질 속성들의 관계(예: 보안을 위한 성능 저하, 가용성을 위한 일관성 양보 등)를 시스템적으로 파악하게 한다 [1, 2].
|
||||
* **위험 및 민감도 포인트 분석 (Risks and sensitivity points):** 설계된 아키텍처가 어느 지점에서 민감하게 반응하는지를 찾아낸다 [2]. 이는 아키텍트가 단순히 유행하는 아키텍처 패턴에 매몰되는 것을 방지하고, 실제 라이브 운영에서 발생할 수 있는 불쾌한 상황이나 위험 요소(Single point of failure 등)를 사전에 방지하도록 돕는다 [2, 3].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
ATAM 방법론 자체를 프로젝트에 도입할 때 발생하는 제약 사항이나 단점에 대해서는 소스에 관련 정보가 부족합니다.
|
||||
다만, ATAM을 통해 도출되는 시스템 설계상의 트레이드오프는 다음과 같이 나타난다 [1, 2].
|
||||
* **보안 vs. 성능:** 극도로 안전한 암호화 접근 방식을 취하면 처리 지연 시간(latency)이 증가하여 성능에 비용을 치러야 한다 [2].
|
||||
* **가용성 vs. 일관성:** 시스템의 가용성을 극대화하기 위해서는 데이터의 일관성을 일부 양보해야 하는 상황이 명확히 드러난다 [1].
|
||||
* **개발 속도 vs. 유지보수성:** 시스템을 매우 빠르게 개발할 경우, 필연적으로 향후 유지보수가 훨씬 더 어려워지는 반대급부가 발생한다 [2].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
### Related Concepts
|
||||
|
||||
#### [평가 및 분석 도구]
|
||||
@@ -61,4 +72,61 @@ ATAM 방법론 자체를 프로젝트에 도입할 때 발생하는 제약 사
|
||||
- 확장 방향: ATAM을 포함하여 시스템 아키텍처가 설계 요구사항과 일치하는지를 검증하고 감사하는 전체적인 프로세스와 그 외의 다양한 평가 프레임워크들에 대해 확장해서 조사할 수 있다.
|
||||
|
||||
---
|
||||
*Last updated: 2026-05-02*
|
||||
*Last updated: 2026-05-02*
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
|
||||
**추출된 패턴:**
|
||||
> *(TODO)*
|
||||
|
||||
**세부 내용:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,9 +1,21 @@
|
||||
---
|
||||
id: [[P-Reinforce|P-Reinforce]]-AST-TRAVERSAL
|
||||
category: Unified
|
||||
id: wiki-2026-0508-abstract-syntax-tree-traversal
|
||||
title: Abstract Syntax Tree Traversal
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: [P-Reinforce-AST-TRAVERSAL]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.99
|
||||
tags: [AST, Abstract Syntax Tree, Traversal, Visitor Pattern, Static [[Analysis|Analysis]]]
|
||||
tags: [AST, Abstract Syntax Tree, Traversal, Visitor Pattern, Static Analysis]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-04-20
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Abstract-Syntax-Tree-Traversal|Abstract-Syntax-Tree-Traversal]] (AST 순회)
|
||||
@@ -19,9 +31,58 @@ last_reinforced: 2026-04-20
|
||||
- **Scope Analysis**:
|
||||
- 변수가 어디서 선언되고 어디까지 유효한지(Scope)를 파악하기 위해 트리 위아래를 오가며 참조 관계를 분석한다.
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (RL Update)
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
- 트리가 너무 거대하면(수만 줄의 코드) 순회 성능이 급격히 저하된다. 이를 위해 필요한 노드만 선택적으로 방문하거나, 증분식(Incremental) 분석을 통해 변경된 부분만 다시 순회하는 최적화 전략이 실무 도구([[ESLint|ESLint]] 등)에 필수적이다.
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
- Related: [[Abstract-Syntax-Tree-Transformation|Abstract-Syntax-Tree-Transformation]] , [[ESLint-Static-Analysis|ESLint-Static-Analysis]]
|
||||
- [[Strategy|Strategy]]: [[Reliability_Safety_First|Reliability_Safety_First]]
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,20 +1,33 @@
|
||||
---
|
||||
category: Unified
|
||||
id: wiki-2026-0508-alliance-동맹
|
||||
title: Alliance (동맹)
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [auto-consolidated, technical-documentation]
|
||||
title: [[Alliance (동맹)|Alliance (동맹)]]
|
||||
last_updated: 2026-05-02
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Alliance (동맹)|Alliance (동맹)]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
Game of War에서 동맹(Alliance)은 최대 100명의 플레이어로 구성되는 복잡한 정치적 및 사회적 연합체입니다 [1]. 이는 단순한 협력 그룹을 넘어 플레이어 간의 자원 공유, 방어용 군집(Hive) 형성, 그리고 왕국(Kingdom)의 통치권을 차지하기 위해 필수적으로 요구되는 핵심 시스템입니다 [2]. 특히 동맹원 간의 상호 원조 기능과 인앱 결제(IAP) 보상을 공유하는 시스템은 플레이어들에게 강력한 유대감과 과금에 대한 사회적 압박을 동시에 부여하는 핵심적인 BM(비즈니스 모델) 동력으로 작용합니다 [2-4].
|
||||
|
||||
---
|
||||
|
||||
'게임 오브 워(Game of War)'를 비롯한 4X 모바일 게임에서 얼라이언스(동맹)는 최대 100명의 플레이어로 구성되는 복잡한 정치적, 사회적 집단입니다 [1]. 단순한 팀의 개념을 넘어 플레이어 간의 협력, 외교, 배신 등 창발적 게임플레이(Emergent Gameplay)를 유도하는 핵심 기반입니다 [2-4]. 특히 얼라이언스 내에서 형성된 사회적 유대감과 상호 압박은 플레이어들이 게임에 지속적으로 참여하고 막대한 인앱 결제(IAP)를 진행하게 만드는 가장 강력한 원동력으로 작용합니다 [5, 6].
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
* **사회적 구조와 역할 분담 (Social Structure and Roles)**
|
||||
* 동맹은 플레이어들이 적의 공격으로부터 서로를 보호하기 위해 도시들을 밀집시키는 '하이브(hive)'를 형성하도록 유도합니다 [2].
|
||||
* 동맹 내부에서 플레이어들은 각자의 특화된 역할을 분담합니다. 자원을 안전하게 보관하는 '은행가(Banker)', 군사력보다는 동맹을 위한 자원 생산에 집중하는 '농부(Farmer)', 맵의 정보를 파악하는 '정찰병(Scout)' 등 매우 고도로 조직화된 형태로 운영됩니다 [5].
|
||||
@@ -46,10 +59,10 @@ Game of War에서 동맹(Alliance)은 최대 100명의 플레이어로 구성되
|
||||
* **전용 기능과 성장 가속:**
|
||||
얼라이언스에 가입하면 동맹 전용 퀘스트, 자원 및 아이템 거래, 전용 도시 건설 등의 혜택을 누릴 수 있습니다 [15, 16]. 또한, 획득한 충성도(Loyalty)를 사용하여 얼라이언스 상점에서 VIP 활성화 아이템이나 전쟁 버프 아이템 등을 구매할 수 있습니다 [17, 18]. 서로의 건설 및 연구 시간을 단축시켜주는 지원(Help) 기능은 게임 세션을 반복적으로 늘리고 유저의 지속적인 접속을 유도하는 핵심 장치입니다 [19].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
No trade-offs available.
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
## 🔗 지식 연결 (Graph)
|
||||
- **Related Topics:** IAP Kick-back System, Wonder (원더), Social Engineering (사회공학), KvK (Kingdom vs Kingdom)
|
||||
- **Projects/Contexts:** Game of War: Fire Age BM 및 경제 구조 분석, 4X 전략 게임의 수익화 모델
|
||||
- **Contradictions/Notes:** 동맹은 플레이어 간의 상호 원조를 통해 게임 진행을 돕고 보호를 제공하는 필수적인 시스템이지만, 동시에 다른 동맹원들의 과금에 편승하기만 하면 추방당할 수 있다는 강력한 '과금 압박 메커니즘'으로 작용하는 양면성을 가집니다 [3, 7, 10].
|
||||
@@ -65,3 +78,52 @@ No trade-offs available.
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-27*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,20 +1,33 @@
|
||||
---
|
||||
category: Unified
|
||||
id: wiki-2026-0508-alliances
|
||||
title: Alliances
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [auto-consolidated, technical-documentation]
|
||||
title: [[Alliances|Alliances]]
|
||||
last_updated: 2026-05-02
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Alliances|Alliances]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
> 동맹은 단순한 팀을 넘어, 킥백(Kick-back) 보상과 사회적 유대감을 통해 개별 유저의 과금을 '집단적 기여'로 승화시키는 강력한 소셜 엔지니어링 엔진이다.
|
||||
|
||||
---
|
||||
|
||||
동맹(Alliances)은 최대 200명의 플레이어가 모여 공격을 조율하고 영토를 통제하며 특별한 보상을 얻기 위해 결성하는 플레이어 그룹입니다 [1, 2]. 구성원들은 자원 확보, 상호 방어 지원, 정보 공유 및 통제점(Control Points) 점령 등 다양한 전투 및 지정학적 목표를 위해 협력합니다 [3-5]. 월드 맵의 특정 섹터에서 패권을 장악한 지배적인 동맹은 비공식적인 교전 규칙을 세우고 타 플레이어에게 강제할 정도로 전투 생태계 내에서 막대한 영향력을 행사합니다 [2, 6].
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
- **추출된 패턴:** 상호 원조(Help) 시스템과 킥백(Kick-back) 보상을 통한 사회적 결속 및 결제 압박 강화.
|
||||
- **핵심 메커니즘:**
|
||||
- **Social Co[[Opera|Opera]]tion:** 건설/연구 시간 단축(Help)과 자원 공유를 통한 이타적 유대감 형성.
|
||||
@@ -30,10 +43,10 @@ last_updated: 2026-05-02
|
||||
* **통제점(Control Points) 점령전:** 최소 25명 이상의 플레이어로 구성된 동맹은 분쟁 구역(Contestable Zones) 내의 통제점 전투에 참여할 수 있습니다 [8]. 통제점을 점령하면 CP 레벨에 따라 동맹 전체에 석유 및 토륨(thorium) 생산 부스트가 제공됩니다 [5, 9]. 점령전은 NPC 기지를 파괴한 후, 방어 동맹과 공격 동맹만이 구역 내에 남아 다른 플레이어의 개입 없이 맞붙는 '케이지 매치(cage match)' 형태의 전쟁 단계와 서든 데스 단계를 거쳐 최종 확보(Secured)에 이르게 됩니다 [5, 9, 10].
|
||||
* **외교 및 관리 체계:** 동맹 창설에는 금(Gold) 또는 5,000,000 토륨이 소모되며, 리더와 장교가 구성원 가입 승인, 진급/강등, 추방 등의 관리 권한을 행사합니다 [11-13]. 적대적인 동맹들은 때때로 휴전이나 정전을 맺고 상호 이익을 보호하기 위해 2계층 시스템(two-tier system)의 연합을 형성하여 대규모 구역 전쟁(sector wars)에 대비하기도 합니다 [14, 15].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
No trade-offs available.
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
## 🔗 지식 연결 (Graph)
|
||||
- **Parent:** Social & Psychology
|
||||
- **Related:** [[Social Engineering|Social Engineering]], Kick-back System, [[Wonder|Wonder]], VIP Activation
|
||||
- **Raw Source:** 00_Raw/Alliances
|
||||
@@ -49,3 +62,52 @@ No trade-offs available.
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-27*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,20 +1,33 @@
|
||||
---
|
||||
category: Unified
|
||||
id: wiki-2026-0508-ambient-declarations
|
||||
title: Ambient Declarations
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [auto-consolidated, technical-documentation]
|
||||
title: [[Ambient Declarations|Ambient Declarations]]
|
||||
last_updated: 2026-05-02
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Ambient Declarations|Ambient Declarations]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
> 핵심 요약 작업 진행 중
|
||||
|
||||
---
|
||||
|
||||
> "존재하지만 실체는 없는 것들에 대한 증명." 타입스크립트 컴파일러에게 "이 변수나 함수는 외부에 이미 있으니 타입만 믿고 통과시켜라"라고 알려주는 `declare` 키워드의 본질이다.
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
본문 상세 구성 진행 중
|
||||
|
||||
---
|
||||
@@ -26,7 +39,7 @@ last_updated: 2026-05-02
|
||||
- **External Library Integration**:
|
||||
- 타입 정보가 없는 레거시 JS 라이브러리를 타입스크립트 프로젝트에서 에러 없이 사용하기 위한 필수 관문이다.
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
- **과거 데이터와의 충돌:** 지식 자산화 및 기존 네트워크 연동 단계.
|
||||
- **정책 변화:** Programming & Language 카테고리의 전문성 확보 및 링크 밀도 최적화.
|
||||
|
||||
@@ -34,10 +47,59 @@ last_updated: 2026-05-02
|
||||
|
||||
- 무분별한 앰비언트 선언은 전역 네임스페이스를 오염시킨다. 현대적 가이드라인은 가능하면 `Module Augmentation`을 사용하거나 `@types` 패키지를 통해 엄격하게 관리하는 것을 권장한다.
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
## 🔗 지식 연결 (Graph)
|
||||
---
|
||||
|
||||
---
|
||||
|
||||
- Related: [[Declaration-Files|Declaration-Files]] , Module-Augmentation
|
||||
- Standard: [[Branded-Types-for-Nominal-Typing|Branded-Types-for-Nominal-Typing]]
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,27 +1,38 @@
|
||||
---
|
||||
id: P-REINFORCE-WIKI-46783FB6
|
||||
category: Unified
|
||||
id: wiki-2026-0508-apache-ignite
|
||||
title: Apache Ignite
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: [P-REINFORCE-WIKI-46783FB6]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.95
|
||||
tags: ['apache-ignite', 'hazelcast', 'space-based-architecture-pattern', 'distributed-systems', 'in-memory-data-grids-(imdg)', 'devops-environment']
|
||||
tags: [apache-ignite, hazelcast, space-based-architecture-pattern, distributed-systems, in-memory-data-grids-(imdg), devops-environment]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-02
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Apache Ignite]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
Apache Ignite는 공간 기반 아키텍처(Space-Based Architecture) 패턴을 구현할 때 활용되는 분산 시스템 도구 중 하나이다 [1]. 이 도구를 다루기 위해서는 분산 시스템에 대한 전문 지식이 필수적으로 요구된다 [1]. 소스에 관련 정보가 부족하여 더 이상의 자세한 정의를 제공하기 어렵다.
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
소스에 관련 정보가 부족합니다.
|
||||
|
||||
(Apache Ignite 자체에 대한 상세한 작동 원리나 세부 구조는 제공된 소스에 포함되어 있지 않으며, 오직 '공간 기반 아키텍처(Space-Based Architecture)'의 단점(Cons)을 설명하는 과정에서 분산 시스템 도구의 예시로 단 한 차례 짧게 언급되어 있습니다 [1].)
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
Apache Ignite를 활용하여 시스템을 구축할 경우, 해당 도구와 분산 시스템 전반에 대한 고도의 전문 지식을 갖춘 인력이 필요하다는 점이 주요 제약 사항이다 [1].
|
||||
그 외 구체적인 부작용이나 최적화 반대급부에 대해서는 소스에 관련 정보가 부족합니다.
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
### Related Concepts
|
||||
|
||||
#### [구현/활용 도구]
|
||||
@@ -55,4 +66,53 @@ Apache Ignite를 활용하여 시스템을 구축할 경우, 해당 도구와
|
||||
- 확장 방향: 디스크가 아닌 여러 대의 서버 RAM에 데이터를 분산 저장하여 방대한 데이터에 초고속으로 접근하게 해주는 가상화된 데이터 그리드 기술의 원리를 파악할 수 있다 [2].
|
||||
|
||||
---
|
||||
*Last updated: 2026-05-02*
|
||||
*Last updated: 2026-05-02*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,31 +1,42 @@
|
||||
---
|
||||
id: P-REINFORCE-WIKI-7C3B92CC
|
||||
category: Unified
|
||||
id: wiki-2026-0508-append-only-log
|
||||
title: Append only log
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: [P-REINFORCE-WIKI-7C3B92CC]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.95
|
||||
tags: ['append-only-log', 'event-sourcing-pattern', 'cqrs-architecture-pattern', 'event-stream-processing', 'online-event-processing-(olep)', 'architecture-principles']
|
||||
tags: [append-only-log, event-sourcing-pattern, cqrs-architecture-pattern, event-stream-processing, online-event-processing-(olep), architecture-principles]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-02
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Append-only log]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
**Append-only log(추가 전용 로그)**는 애플리케이션의 상태에 대한 모든 변경 사항을 불변의 이벤트 시퀀스로 캡처하여 저장하는 데이터 구조 메커니즘이다 [1]. 데이터가 덮어쓰이지 않고 지속적으로 추가되며, 스트림 파티션 내에서 엄격하게 정렬되고 영구적으로 기록된다 [2]. 주로 실시간 데이터 처리, 완벽한 감사 추적, 복잡한 비즈니스 로직에 대한 응답 등을 지원하기 위해 이벤트 소싱(Event Sourcing) 및 이벤트 스트리밍 패턴의 핵심 기반으로 사용된다 [1, 2].
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
* **불변적 상태 변화 기록 (Immutable State Changes):** 데이터베이스에서 기존 상태를 덮어쓰는 대신, 시스템에서 발생하는 모든 상태 변경 사항을 순차적이고 불변(immutable)하는 이벤트 스트림으로 캡처하여 로그 형태로 저장한다 [1].
|
||||
* **스트리밍 및 이벤트 재생 기능 (Streaming & Replayability):** 클라이언트는 단순히 이벤트를 구독하는 것에 그치지 않고 로그 스트림의 어느 위치에서든 데이터를 읽을 수 있으며, 자신의 위치를 전진시키며 처리한다 [2]. 이 메커니즘을 통해 클라이언트는 언제든지 스트림에 참여할 수 있고, 과거의 이벤트를 재생(replay)할 수 있어 버그 수정 후 재처리나 장애 복구 시나리오를 효과적으로 지원한다 [2, 3].
|
||||
* **감사 추적 및 시간 기반 쿼리 (Audit Trails and Temporal Queries):** 모든 변경 내역이 손실 없이 저장되므로, 과거 특정 시점의 데이터 상태(예: 과거 특정 날짜의 계좌 잔액)를 분석하는 시간적 쿼리나 완벽한 감사 추적(Audit Trail) 시스템을 구축하는 데 매우 적합하다 [3, 4].
|
||||
* **비동기 분산 환경의 영구 데이터 관리:** OLEP(Online Event Processing)와 같은 환경에서는 비동기적으로 분산된 이벤트 로그를 사용하여 이기종 시스템 전반에 걸쳐 복잡한 이벤트를 신뢰성 있게 구성하고 영구적인 데이터를 관리한다 [5].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
* **가파른 학습 곡선:** 전통적인 CRUD(Create, Read, Update, Delete) 방식의 데이터베이스 모델링 마인드셋에서 벗어나 이벤트 기반의 사고방식(event-based thinking)으로 전환해야 하므로 초기 설계 및 구현 난이도가 높다 [3].
|
||||
* **스토리지 비용 증가:** 데이터가 삭제되거나 업데이트되지 않고 이벤트 로그가 지속적으로 누적 및 증가하기 때문에 시간이 지남에 따라 더 높은 데이터 스토리지 비용이 발생한다 [3].
|
||||
* **상태 재구성 오버헤드 및 스냅샷 필수:** 시스템의 현재 상태를 알기 위해 수백만 개의 누적된 이벤트를 처음부터 다시 읽어 상태를 재구성(rebuilding state)해야 하므로 성능 저하가 발생할 수 있으며, 이를 해결하기 위해 주기적인 스냅샷(snapshots) 관리가 필수적이다 [3].
|
||||
* **버전 관리의 복잡성:** 비즈니스 요구사항 변화로 인해 이벤트의 구조(스키마)가 변경될 때, 과거 버전의 이벤트와 새로운 버전의 이벤트를 함께 처리해야 하므로 버전 핸들링 작업이 매우 복잡해진다 [3].
|
||||
* **최종 일관성 (Eventual Consistency):** 시스템이 즉각적인 데이터 일관성(Immediate Consistency)보다는 최종 일관성에 의존하므로, 트랜잭션의 즉각적인 일치성이 강력하게 요구되는 시스템에는 적합하지 않을 수 있다 [4].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
### Related Concepts
|
||||
|
||||
#### [관계 유형 A (아키텍처/기반 기술)]
|
||||
@@ -67,4 +78,53 @@ last_reinforced: 2026-05-02
|
||||
- 확장 방향: 비동기적으로 통신하는 이벤트 로그 환경에서 수많은 마이크로서비스 간에 이벤트가 어떻게 전달되고 소비되는지 전체 요청 경로를 추적하고 오류의 근본 원인을 디버깅하는 방법론으로의 확장 [7, 8, 11].
|
||||
|
||||
---
|
||||
*Last updated: 2026-05-02*
|
||||
*Last updated: 2026-05-02*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,14 +1,26 @@
|
||||
---
|
||||
id: P-REINFORCE-WIKI-C08C3C0C
|
||||
category: Unified
|
||||
id: wiki-2026-0508-architectural-violations
|
||||
title: Architectural Violations
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: [P-REINFORCE-WIKI-C08C3C0C]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.95
|
||||
tags: ['architectural-violations', 'architecture-erosion', 'technical-debt', 'static-code-analysis-tools', 'software-architecture-recovery', 'architecture-principles']
|
||||
tags: [architectural-violations, architecture-erosion, technical-debt, static-code-analysis-tools, software-architecture-recovery, architecture-principles]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-02
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Architectural Violations]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
아키텍처 위반(Architectural Violations)은 기술 부채의 축적(accumulation of technical debt), 지식 증발(knowledge vaporization)과 함께 **소프트웨어 아키텍처 침식(Architecture erosion)을 일으키는 주요 원인 중 하나**입니다 [1]. 이는 시간이 지남에 따라 초기에 의도했던 설계와 실제 구현된 아키텍처 간의 격차가 점진적으로 벌어지는 현상을 초래합니다 [1]. 소스 내에서는 아키텍처 침식의 원인으로서 간략하게 언급되어 있으며, 아키텍처 위반이라는 단일 개념에 대한 구체적인 정의나 세부 사례에 관한 정보는 부족합니다.
|
||||
|
||||
## 📖 Core 소스에 관련 정보가 부족합니다.
|
||||
@@ -18,13 +30,12 @@ last_reinforced: 2026-05-02
|
||||
* **시스템에 미치는 치명적 영향**: 아키텍처 위반이 누적되어 침식이 발생하면 **소프트웨어 성능이 저하**되고, 시스템의 **진화 및 유지보수 비용(evolutionary costs)이 실질적으로 증가**하며, 전반적인 **소프트웨어 품질이 하락**하게 됩니다 [1, 2].
|
||||
* **탐지 및 식별 접근법**: 이러한 위반과 침식을 조기에 발견하고 완화하기 위해 일관성 기반(consistency-based), 진화 기반(evolution-based), 결함 기반(defect-based), 결정 기반(decision-based) 접근법이 제안되었습니다 [2]. 구체적으로는 **자동화된 아키텍처 적합성 검사(automated architecture conformance checks)**와 **정적 코드 분석 도구(static code analysis tools)**, 그리고 리팩토링 기술이 식별에 활용됩니다 [2].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
소스에 아키텍처 위반 선택에 따른 직접적인 제약 사항이나 반대 급부(Trade-off)에 대한 세부 정보가 부족합니다. 그러나 위반을 통제하기 위한 관리적 측면에서 다음과 같은 한계와 기회비용이 존재합니다.
|
||||
|
||||
* **예방 및 치료적 조치의 비용 vs 방치 시의 막대한 위험**: 아키텍처 위반을 방지하기 위해서는 아키텍처 규칙 강제, 정기적인 코드 리뷰, 자동화된 테스트와 같은 **'예방적 조치(preventative measures)'**를 엄격히 시행해야 합니다 [3]. 또한 이미 발생한 위반에 대해서는 리팩토링, 재설계, 문서 업데이트 등의 **'치료적 조치(remedial measures)'**가 수반되어야 합니다 [3]. 이러한 조치들은 개발 과정에서 시간과 노력을 요구하지만, 위반을 방치할 경우 초기 설계 결함과 지속적인 변경으로 인해 2년이라는 시간을 재개발에 소모해야 했던 넷스케이프(Netscape)의 모질라(Mozilla) 브라우저 사례처럼 막대한 수리 비용과 프로젝트 지연을 감수해야만 합니다 [1, 3].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
### Related Concepts
|
||||
|
||||
#### [소프트웨어 아키텍처 문제 및 현상]
|
||||
@@ -59,4 +70,61 @@ last_reinforced: 2026-05-02
|
||||
- 확장 방향: 이미 심각한 아키텍처 위반과 침식이 진행되어 문서와 구현이 불일치하는 시스템에서, 현재 구현된 아키텍처를 역공학(reverse engineering)하여 본래의 의도와 구조를 복구해 내는 기법 및 프로세스로 이해를 확장할 수 있습니다 [3].
|
||||
|
||||
---
|
||||
*Last updated: 2026-05-02*
|
||||
*Last updated: 2026-05-02*
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
|
||||
**추출된 패턴:**
|
||||
> *(TODO)*
|
||||
|
||||
**세부 내용:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -0,0 +1,83 @@
|
||||
---
|
||||
id: wiki-2026-0508-architectural-constraint-enforce
|
||||
title: Architectural Constraint Enforcement
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: [P-Reinforce-4F930E]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.95
|
||||
tags: [uncategorized]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-04-20
|
||||
github_commit: "[P-Reinforce] Mega Batch - Wikified Architectural-Constraint-Enforcement"
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Architectural-Constraint-Enforcement]]
|
||||
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
> 핵심 요약 작업 진행 중
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
본문 상세 구성 진행 중
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
- **과거 데이터와의 충돌:** 지식 자산화 및 기존 네트워크 연동 단계.
|
||||
- **정책 변화:** Software Architecture 카테고리의 전문성 확보 및 링크 밀도 최적화.
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
---
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,17 +1,29 @@
|
||||
---
|
||||
id: P-REINFORCE-WIKI-8C24E3F6
|
||||
category: Unified
|
||||
id: wiki-2026-0508-architecture-description-아키텍처-명세
|
||||
title: Architecture Description (아키텍처 명세)
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: [P-REINFORCE-WIKI-8C24E3F6]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.95
|
||||
tags: ['architecture-description-(아키텍처-명세)', 'iso/iec/ieee-42010', "kruchten's-4+1-view-model", 'architecture-decision-records-(adr)', 'architectural-views', 'architecture-principles']
|
||||
tags: [architecture-description-(아키텍처-명세), iso/iec/ieee-42010, "kruchten's-4+1-view-model", architecture-decision-records-(adr), architectural-views, architecture-principles]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-02
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Architecture Description (아키텍처 명세)]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
아키텍처 명세(Architecture Description)는 소프트웨어 아키텍처 프로세스 중 생성된 시스템의 설계를 문서화하고 기록하는 행위를 의미한다[1]. 이는 초기 고수준의 설계 결정을 캡처하여 이해관계자 간의 원활한 소통을 촉진하고, 다른 프로젝트에서 설계 컴포넌트를 재사용할 수 있도록 돕는다[2]. 아키텍처 명세는 ISO/IEC/IEEE 42010 표준에 의해 체계화되어 있으며, 다양한 이해관계자의 관심사를 반영하기 위해 다각도의 뷰(View)를 활용하고 결정 사항의 근거를 기록하는 것을 핵심으로 한다[3-5].
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
**1. 아키텍처 명세의 국제 표준 (ISO/IEC/IEEE 42010)**
|
||||
소프트웨어 아키텍처 영역의 첫 번째 공식 표준은 소프트웨어 집약적 시스템의 아키텍처 명세에 대한 권장 관행을 담은 IEEE 1471-2000이었으며, 이는 이후 2011년에 ISO/IEC/IEEE 42010:2011("Systems and software engineering – Architecture description")로 통합 및 대체되었다[4]. 이 최신 표준은 하드웨어와 소프트웨어뿐만 아니라 인간, 프로세스, 설비 등을 모두 포함하는 포괄적인 시스템 정의를 수용하여 기업 아키텍처(Enterprise Architecture)와 솔루션 아키텍처 간의 관계를 반영한다[4].
|
||||
|
||||
@@ -28,13 +40,12 @@ last_reinforced: 2026-05-02
|
||||
**4. 지식 관리 및 소통(Knowledge Management and Communication)**
|
||||
아키텍처 명세(문서화)는 아키텍처 지원 활동(Supporting activities) 중 하나로, 요구사항 분석 및 설계 단계부터 핵심적인 역할을 한다[1]. 소프트웨어 아키텍처 지식은 이해관계자들의 머릿속에 암묵적으로 존재하는 경우가 많으므로, 이를 문서화하여 '지식 증발(Knowledge vaporization)'을 막고 명확히 소통하는 것이 아키텍처 명세의 중요한 목표이다[1, 9].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
* **과도한 사전 설계(Big Design Up Front) vs. 애자일(Agility):** 특히 애자일 소프트웨어 개발의 지지자들 사이에서는 아키텍처 명세가 너무 방대한 사전 설계를 유도할 수 있다는 우려가 존재한다[10]. 이에 대응하기 위해 DSDM과 같은 애자일 방법론은 아키텍처의 기반을 다질 때 '딱 필요한 만큼(just enough)'의 아키텍처 설계와 문서화만을 수행할 것을 권장한다[10].
|
||||
* **아키텍처 침식(Architecture Erosion)의 위험:** 명세된 아키텍처가 시스템의 지속적인 변경을 제대로 반영하지 못하고 방치될 경우, 의도된 설계(명세)와 실제 구현된 아키텍처 간의 격차가 발생하는 '아키텍처 침식'이 일어난다[9]. 이는 시스템 성능과 품질을 저하시키고 유지보수 비용을 급증시키므로 지속적인 문서 업데이트와 리팩토링이 필요하다[9, 11].
|
||||
* **소통 채널의 파편화 (이메일 사용의 부작용):** 아키텍처 결정을 이메일로 주고받거나 제대로 문서화하지 않으면, 결정 사항이 잊혀지고 이해되지 않아 동일한 논의가 무한 반복되는 안티패턴(Anti-pattern)이 발생한다[12]. 따라서 ADR은 접근 가능한 단일 진실 공급원(Single source of truth) 중앙 저장소(예: 위키)에 보관되어야 한다[12].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
### Related Concepts
|
||||
|
||||
#### [표준 및 모델 지침]
|
||||
@@ -78,4 +89,53 @@ last_reinforced: 2026-05-02
|
||||
- 확장 방향: 작성된 아키텍처 명세와 설계 결정을 바탕으로 시스템이 요구되는 품질 속성을 실질적으로 충족하는지 시나리오를 통해 검증하고 트레이드오프를 평가하는 분석 방법론에 대한 탐구로 확장[16, 17].
|
||||
|
||||
---
|
||||
*Last updated: 2026-05-02*
|
||||
*Last updated: 2026-05-02*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,14 +1,26 @@
|
||||
---
|
||||
id: P-REINFORCE-WIKI-1AE99216
|
||||
category: Unified
|
||||
id: wiki-2026-0508-architecture-erosion-아키텍처-침식
|
||||
title: Architecture Erosion (아키텍처 침식)
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: [P-REINFORCE-WIKI-1AE99216]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.95
|
||||
tags: ['architecture-erosion-(아키텍처-침식)', 'technical-debt', 'knowledge-vaporization', 'big-ball-of-mud', 'software-architecture-recovery', 'architecture-principles']
|
||||
tags: [architecture-erosion-(아키텍처-침식), technical-debt, knowledge-vaporization, big-ball-of-mud, software-architecture-recovery, architecture-principles]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-02
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Architecture Erosion (아키텍처 침식)]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
아키텍처 침식(Architecture Erosion)은 시간이 지남에 따라 초기 의도된 소프트웨어 아키텍처와 실제 구현된 아키텍처 사이에 점진적인 격차가 발생하는 현상을 의미한다 [1]. 이 현상은 소프트웨어 개발 생명주기(SDLC)의 전 단계에서 발생할 수 있으며, 개발 속도를 저하시키고 유지보수 비용을 증가시킨다 [1]. 주로 아키텍처 위반, 기술 부채의 축적, 지식 증발(knowledge vaporization)과 같은 요인들로 인해 발생한다 [1].
|
||||
|
||||
## 📖 Core 대Content
|
||||
@@ -26,14 +38,13 @@ last_reinforced: 2026-05-02
|
||||
- **예방적 조치**: 아키텍처 규칙 강제, 정기적인 코드 리뷰, 자동화된 테스트를 통해 사전에 구조적 변질을 차단한다 [5].
|
||||
- **치료적 조치**: 이미 발생한 침식을 해결하기 위해 리팩토링, 재설계, 그리고 문서 업데이트를 수행한다 [5]. 노후화되거나 시대에 뒤떨어진 문서 및 아키텍처의 의사결정 편차를 해결하기 위해, 정적 프로그램 분석 등을 활용하여 구현된 시스템으로부터 아키텍처를 역공학으로 유추해내는 소프트웨어 아키텍처 복구(Software architecture recovery) 과정이 필요할 수 있다 [5].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
아키텍처 침식을 관리하고 방지하기 위한 노력은 소프트웨어 품질 유지와 개발 속도 사이의 트레이드오프를 수반한다.
|
||||
|
||||
* **예방 및 유지보수 비용 vs. 단기 개발 속도**: 아키텍처 침식을 방지하기 위해 엄격한 아키텍처 규칙을 강제하고, 지속적인 코드 리뷰와 자동화된 테스트를 수행하는 예방적 조치는 초기와 진행 과정에서 상당한 리소스와 시간의 투자를 요구한다 [5]. 이러한 아키텍처 규율을 지키는 것은 팀에게 단기적으로 개발 속도를 늦추거나 오버헤드로 느껴질 수 있다. 하지만 이를 방치하면 기술 부채가 축적되어 결국 성능 저하와 막대한 진화 비용이라는 더 큰 대가를 치르게 된다 [4, 5].
|
||||
* **리팩토링 및 복구의 한계**: 시스템이 이미 심각하게 침식된 경우, 이를 바로잡기 위한 아키텍처 복구(Architecture Recovery)나 전면적인 재설계를 수행해야 한다 [5]. 그러나 모질라의 사례처럼, 침식이 일정 수준을 넘어서면 단순한 치료를 넘어 수년간의 재개발이라는 막대한 시간적·금전적 비용 및 비즈니스 지연(Trade-off)을 초래할 수 있다는 점을 유의해야 한다 [1].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
### Related Concepts
|
||||
|
||||
#### [발생 원인 및 결함(Causes & Defects)]
|
||||
@@ -75,4 +86,61 @@ last_reinforced: 2026-05-02
|
||||
- 확장 방향: 아키텍처 침식을 가속화하는 나쁜 설계 습관과 관행들을 폭넓게 조사하여 시스템 복잡성이 기하급수적으로 늘어나는 원인을 분석할 수 있다.
|
||||
|
||||
---
|
||||
*Last updated: 2026-05-02*
|
||||
*Last updated: 2026-05-02*
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
|
||||
**추출된 패턴:**
|
||||
> *(TODO)*
|
||||
|
||||
**세부 내용:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,30 +1,41 @@
|
||||
---
|
||||
id: P-REINFORCE-WIKI-6AF151C4
|
||||
category: Unified
|
||||
id: wiki-2026-0508-architecture-evaluation-아키텍처-평가
|
||||
title: Architecture Evaluation (아키텍처 평가)
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: [P-REINFORCE-WIKI-6AF151C4]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.95
|
||||
tags: ['architecture-evaluation-(아키텍처-평가)', 'atam-(architecture-tradeoff-analysis-method)', '품질-모델-(iso/iec-25010)', 'adr-(architecture-decision-record)', '프로토타이핑-및-개념-증명-(poc)', 'architecture-principles']
|
||||
tags: [architecture-evaluation-(아키텍처-평가), atam-(architecture-tradeoff-analysis-method), 품질-모델-(iso/iec-25010), adr-(architecture-decision-record), 프로토타이핑-및-개념-증명-(poc), architecture-principles]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-02
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Architecture Evaluation (아키텍처 평가)]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
아키텍처 평가는 제안되거나 현재 사용 중인 소프트웨어 설계가 비즈니스 목표와 분석 과정에서 도출된 요구사항을 얼마나 잘 충족하는지 결정하는 체계적인 과정이다 [1, 2]. 이 과정은 특정 패턴의 도입이 프로젝트의 품질 요구사항(성능, 확장성, 보안 등)에 적합한지 구체적인 시나리오를 바탕으로 검증한다 [2, 3]. 대표적인 평가 방법론으로는 ATAM(Architecture Tradeoff Analysis Method)이 활용되며, 이를 통해 설계에 내재된 타협점(Trade-off)을 명확히 식별하여 정보에 기반한 의사결정을 지원한다 [1, 4].
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
* **평가의 목적 및 근본 원리:** 모든 아키텍처 결정에는 타협(Trade-off)이 따르며 "완벽한 아키텍처"란 존재하지 않는다 [4]. 따라서 아키텍처 평가는 단순히 유행하는 기술을 선택하는 것이 아니라, 프로젝트의 맥락과 우선순위화된 품질 목표(가용성, 성능, 유지보수성 등)를 바탕으로 어떤 설계가 가장 수용 가능한 타협안을 제시하는지 객관적으로 비교하는 과정이다 [2, 4, 5].
|
||||
* **시나리오 기반 평가 기법 (ATAM 등):** SEI에서 개발한 ATAM은 아키텍처를 평가하는 가장 대표적인 방법론이다 [4]. "성능 향상"과 같은 추상적인 목표 대신, "10분 내에 사용자 수가 두 배로 증가할 때 시스템의 반응"과 같은 구체적인 '시나리오'를 사용하여 아키텍처의 한계와 민감도(Sensitivity points)를 시험한다 [2, 4]. 이 외에도 TARA, SARA 프레임워크 등이 평가 기법을 돕는 데 사용된다 [1].
|
||||
* **평가 기준으로서의 품질 모델:** 평가 시에는 ISO/IEC 25010과 같은 표준 품질 모델을 참조한다 [1, 6, 7]. 기능 적합성, 성능 효율성, 호환성, 상호작용 능력 등의 지표를 기반으로 프로젝트 요구사항의 가중치를 정량화하여 아키텍처 개념들을 비교하기 위한 의사결정 매트릭스를 구성한다 [6-9].
|
||||
* **리스크 최소화를 위한 초기 검증:** 성능, 부하, 통합, 운영 측면에서 주요 기술적 리스크를 평가할 때는 프로토타이핑(Prototyping)이나 개념 증명(Proof of Concept)이 핵심적으로 활용된다 [10]. 이 과정을 통한 조기 검증(Early validation)은 훗날 발생할 수 있는 막대한 재작업 비용과 잘못된 결정을 줄인다 [11].
|
||||
* **결정의 문서화와 지속적 검토:** 평가의 최종 결과는 아키텍처 결정 기록(ADR, Architecture Decision Records)으로 문서화되어야 한다. 여기에는 결정의 배경, 대안, 타협점 및 리스크가 명시되어야 한다 [11-13]. 아키텍처는 고정불변이 아니므로 사용자 규모나 팀 상황이 변경될 때마다 정기적인 평가 및 수정이 이루어져야 한다 [14].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
* **품질 속성 간의 상충 관계 (Trade-offs):** 아키텍처 평가는 궁극적으로 서로 충돌하는 요구사항 간의 교환을 인지하고 수용하는 과정이다 [2, 4]. 예를 들어, 극도로 안전한 시스템을 위해 암호화 수준을 높이면 응답 시간(성능)이 저하되며, 가용성을 높이려 하면 데이터 일관성을 어느 정도 양보해야 할 수 있다 [2, 4]. 빠른 개발(Fast delivery)을 우선순위에 두면, 확장성이나 유지보수성이 나빠지는 구조를 선택할 위험을 감수해야 한다 [4, 9].
|
||||
* **분석 마비 (Analysis Paralysis) 위험:** 잘못된 결정을 내릴 것에 대한 두려움으로 아키텍처 평가를 지연시키거나 지나치게 길게 끄는 '분석 마비' 함정에 빠질 수 있다 [15]. 따라서 충분한 정보를 확보하여 결정을 정당화할 수 있는 "마지막 책임 순간(last responsible moment)"에 적절히 결정을 내리고, 팀의 피드백을 통해 이를 지속적으로 조정해야 한다 [15].
|
||||
* **조직적 제약 조건 고려:** 아키텍처 평가 시 기술적 요소뿐만 아니라 팀의 구조, 규모, 스킬셋, 인프라 및 도구의 가용성(Conway's Law 등)을 반드시 고려해야 한다. 팀이 구축하고 장기적으로 유지할 수 없는 아키텍처는 실패한 결정이다 [16, 17].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
### Related Concepts
|
||||
|
||||
#### [관계 유형 A (평가 프레임워크 및 기준)]
|
||||
@@ -67,4 +78,53 @@ last_reinforced: 2026-05-02
|
||||
- 확장 방향: 문서화가 유실되거나 침식이 심하게 진행된 기존 시스템의 구현물(코드)로부터 현재의 실제 아키텍처를 역공학으로 추출하여 재평가하기 위한 기법들을 탐구한다 [20].
|
||||
|
||||
---
|
||||
*Last updated: 2026-05-02*
|
||||
*Last updated: 2026-05-02*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,22 +1,41 @@
|
||||
---
|
||||
id: wiki-2026-0508-architecture-review-아키텍처-및-설계-리뷰
|
||||
title: Architecture Review (아키텍처 및 설계 리뷰)
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [uncategorized]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Architecture Review (아키텍처 및 설계 리뷰)|Architecture Review (아키텍처 및 설계 리뷰]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
아키텍처 리뷰(Architecture Review)는 라인 단위의 구현 세부 사항을 넘어, 코드 변경 사항의 구조적 무결성과 장기적인 생존성을 평가하는 고수준의 특화된 검토 프로세스입니다 [1, 2]. 이 과정은 아키텍처의 표류(Architectural drift)와 기술 부채의 축적을 방지하는 전략적 체크포인트 역할을 수행합니다 [1, 3]. 궁극적으로 새로운 기능이 시스템의 거시적인 디자인 패턴(예: MVC, 클린 아키텍처) 및 설계 원칙(예: SOLID)에 부합하여, 확장성과 유지보수성을 보장하도록 만드는 것을 목표로 합니다 [1, 4].
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
* **목적 및 평가 초점:** 자동화된 도구가 포착하기 어려운 고수준의 설계 의사결정을 검증하여 시스템의 장기적인 건전성을 유지합니다 [3, 7]. 코드의 국소적 정확성보다는, 새로운 모듈이 기존 아키텍처 원칙과 정렬되며 시스템이 '거대한 진흙 뭉치(Big Ball of Mud)'가 되는 것을 방지하는 데 집중합니다 [3, 5].
|
||||
* **설계 원칙 및 정합성 검증:** SOLID 원칙(SRP, OCP 등) 준수 여부와 컴포넌트 간의 결합도(Coupling)를 검토합니다 [3, 4]. 하나의 모듈 변경이 연관 없는 다른 컴포넌트의 연쇄 수정을 유발하지 않도록 모듈성을 보장해야 합니다 [6].
|
||||
* **과도한 엔지니어링 방지:** 미래의 유연성을 확보하되, 현재 요구사항에 비해 불필요하게 복잡한 '오버 엔지니어링(Over-engineering)'이 도입되지 않았는지 평가합니다 [3, 8]. 적절한 추상화 수준을 유지하는 것이 핵심입니다.
|
||||
* **의존성 및 서드파티 검토:** 새로운 외부 라이브러리나 서비스 도입 시, 시스템의 의존성 전이 위험, 보안 취약점, 라이선스 호환성 등을 면밀히 검토하여 공급망 안정성을 확보합니다.
|
||||
* **리뷰 타이밍과 문서화:** 실제 코드가 작성되기 전, 설계 문서나 다이어그램 단계에서 사전 리뷰를 수행하는 것(시프트 레프트)이 가장 효율적입니다 [9]. 합의된 중요한 결정 사항은 **아키텍처 결정 기록(ADR, Architecture Decision Records)**으로 문서화하여 역사적 맥락을 보존합니다 [9].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
* **높은 비용 및 전문성 요구:** 아키텍처 리뷰는 시스템 전반에 대한 깊은 지식이 필요하므로 시니어 개발자의 시간이 많이 소요됩니다 [10]. 이는 자칫 개발 파이프라인의 병목(Bottleneck)이 될 수 있습니다 [12].
|
||||
* **완벽주의의 함정:** 완벽한 아키텍처와 미래 확장성만을 쫓다 보면, 당장의 비즈니스 요구사항 해결이 늦어지거나 불필요한 복잡성이 주입될 수 있습니다 [8, 15].
|
||||
* **유연성 저하:** 특정 디자인 패턴을 무조건적으로 강제하는 등 지나치게 엄격한 원칙 적용은 실용적인 문제 해결을 방해할 수 있습니다 [16].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
### Related Concepts
|
||||
* **[[SOLID Principles|SOLID Principles]]**: 아키텍처 리뷰 시 견고한 객체 지향 설계를 판단하는 절대적인 척도입니다.
|
||||
* **Architecture Decision Records (ADR**: 리뷰를 통해 합의된 설계 선택과 트레이드오프를 기록하는 공식적인 도구입니다.
|
||||
@@ -43,3 +62,52 @@
|
||||
|
||||
---
|
||||
*Last updated: 2026-05-02*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,17 +1,20 @@
|
||||
---
|
||||
id: P-REINFORCE-WIKI-ARCH-DIAGRAMS
|
||||
title: "아키텍처 다이어그램 작성 표준 (Architecture Diagramming Standards)"
|
||||
category: Unified
|
||||
id: wiki-2026-0508-architecture-diagramming-standar
|
||||
title: Architecture Diagramming Standards
|
||||
category: 10_Wiki/Topics
|
||||
status: verified
|
||||
canonical_id: ""
|
||||
aliases: ["아키텍처 다이어그램", "Architecture Diagram", "시스템 청사진"]
|
||||
duplicate_of: ""
|
||||
canonical_id: self
|
||||
aliases: [P-REINFORCE-WIKI-ARCH-DIAGRAMS, 아키텍처 다이어그램, Architecture Diagram, 시스템 청사진]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 1.0
|
||||
tags: ["Architecture", "Visualization", "C4_Model", "Documentation", "Communication"]
|
||||
raw_sources: ["Datacollector_Export_2026-05-02"]
|
||||
tags: [Architecture, Visualization, C4_Model, Documentation, Communication]
|
||||
raw_sources: [Datacollector_Export_2026-05-02]
|
||||
last_reinforced: 2026-05-02
|
||||
github_commit: ""
|
||||
github_commit: pending
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[아키텍처 다이어그램 작성 표준 (Architecture Diagramming Standards)]]
|
||||
@@ -46,3 +49,70 @@ github_commit: ""
|
||||
- **정보 상태**: 검증 완료 (Verified)
|
||||
- **출처 신뢰도**: A
|
||||
- **검토 이유**: 시스템 설계의 투명성을 확보하고 기술적 의사소통의 효율성을 높이기 위한 시각화 표준 확립.
|
||||
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
|
||||
> *(TODO: 한 문장으로 핵심 통찰을 작성. "X는 Y 조건에서 Z 효과를 낸다" 구조 권장.)*
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
|
||||
**추출된 패턴:**
|
||||
> *(TODO)*
|
||||
|
||||
**세부 내용:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
|
||||
- **과거 데이터와의 충돌:** 없음
|
||||
- **정책 변화:** 없음
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
|
||||
- **Parent:** [[10_Wiki/Topics]]
|
||||
- **Related:** *(TODO: 최소 2개)*
|
||||
- **Opposite / Trade-off:** *(TODO)*
|
||||
- **Raw Source:** 직접 입력
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,9 +1,21 @@
|
||||
---
|
||||
id: 550e8400-e29b-41d4-a716-446655440001
|
||||
category: Unified
|
||||
id: wiki-2026-0508-architecture-refactor
|
||||
title: Architecture Refactor
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: [550e8400-e29b-41d4-a716-446655440001]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.95
|
||||
tags: [skybound, architecture, performance, zero-leak]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-04-21
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# Skybound 아키텍처 리팩토링
|
||||
@@ -19,7 +31,7 @@ last_reinforced: 2026-04-21
|
||||
- `EntityPool` 최적화를 통해 루프 연산 시 CPU 점유율을 15-20% 개선.
|
||||
- 불필요한 이벤트 리스너 재등록을 차단하여 장기 실행 시의 메모리 누수 방지.
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & RL Update)
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
- **과거 데이터와의 충돌:** 기존의 파편화된 비동기 호출 방식(Ghost UI 발생 원인)을 대체함.
|
||||
- **정책 변화:** 성능보다는 '예측 가능성(Predictability)'을 우선하는 설계 원칙 수립.
|
||||
|
||||
@@ -28,9 +40,58 @@ last_reinforced: 2026-04-21
|
||||
- **Related:** 10_Wiki/Decisions/Skybound/IDE_Stability_Fix, 10_Wiki/Decisions/Skybound/Frame_Type_Restoration
|
||||
- **Raw Source:** 00_Raw/2026-04-21-Skybound_Architecture_Refactor_Plan
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
## 🔗 지식 연결 (Graph)
|
||||
### Related Concepts (Auto-Linked)
|
||||
* [[Architecture]]
|
||||
* [[Frame_Type_Restoration]]
|
||||
* [[IDE_Stability_Fix]]
|
||||
* [[decisions]]
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,9 +1,21 @@
|
||||
---
|
||||
id: [[P-Reinforce|P-Reinforce]]-AUTO-ARCO-002
|
||||
category: Unified
|
||||
confidence_score: 0.90
|
||||
tags: [auto-reinforced, arrangement, composition, design, [[Systems-Thinking|Systems-Thinking]], structure]
|
||||
id: wiki-2026-0508-arrangement-and-composition
|
||||
title: Arrangement and Composition
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: [P-Reinforce-AUTO-ARCO-002]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.9
|
||||
tags: [auto-reinforced, arrangement, composition, design, Systems-Thinking, structure]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-04-20
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Arrangement-and-Composition|Arrangement-and-Composition]]
|
||||
@@ -24,7 +36,7 @@ last_reinforced: 2026-04-20
|
||||
3. **지식 관리에서의 적용**:
|
||||
* 노트 간의 연결(Graph)과 폴더 구조의 배치가 지식의 인출 효율을 결정함.
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & RL Update)
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
- **과거 데이터와의 충돌**: 과거에는 고정된 그리드 시스템 내의 '정적 배치'가 미덕이었으나, 현대의 반응형 디자인 정책은 사용자의 기기에 따라 배치를 유연하게 바꾸는 '액티브 레이아웃 정책'으로 변화함(RL Update).
|
||||
- **정책 변화(RL Update)**: 음악 및 영상 창작 정책에서, AI가 개별 음표가 아닌 '악기 간의 배치(Arrangement)'와 '전체 흐름(Composition)'을 학습하여 인간 프로듀서 수준의 곡을 완성하는 'AI 오케스트레이션 정책'이 실용화됨.
|
||||
|
||||
@@ -32,3 +44,52 @@ last_reinforced: 2026-04-20
|
||||
- [[Structural Principles|Structural Principles]], [[Aesthetic-Value|Aesthetic-Value]], Design Theory, [[Agent Architecture|Agent Architecture]], Workflow-InteGrity
|
||||
- **Modern Tech/Tools**: [[Figma|Figma]] (Auto-layout), [[CSS Grid|CSS Grid]], AI-powered music arrangers (Suno, Udio).
|
||||
---
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,15 +1,26 @@
|
||||
---
|
||||
id: P-REINFORCE-AUTO-16E587
|
||||
category: "10_Wiki/💡 Topics/Software Engineering"
|
||||
id: wiki-2026-0508-aspect-oriented-programming-aop
|
||||
title: Aspect Oriented Programming (AOP)
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: [P-REINFORCE-AUTO-16E587]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.95
|
||||
tags: [auto-reinforced]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-03
|
||||
github_commit: "[P-Reinforce] Continuous Worker - Aspect-Oriented Programming (AOP)"
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Aspect-Oriented Programming (AOP)|Aspect-Oriented Programming (AOP)]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
Aspect-Oriented Programming(AOP)은 소프트웨어 시스템 내 여러 모듈에 걸쳐 공통적으로 나타나는 **횡단 관심사(Cross-Cutting Concerns)를 핵심 비즈니스 로직과 분리하여 모듈화하는 프로그래밍 방법론**이다 [1]. 주로 로깅, 예외 처리, 트랜잭션, 보안 등 애플리케이션 전반에 필수적이지만 도메인 로직 자체는 아닌 기능들을 캡슐화하는 데 사용된다 [2], [3]. 이를 통해 비즈니스 코드를 수정하지 않고도 공통 기능을 적용할 수 있어 코드의 중복(Scattering)을 막고 시스템의 가독성과 유지보수성을 극대화한다 [4], [5].
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
@@ -21,7 +32,7 @@ Aspect-Oriented Programming(AOP)은 소프트웨어 시스템 내 여러 모듈
|
||||
* **Spring Boot (Java):** AOP는 메서드 레벨에서 작동하며, 컨트롤러, 서비스, 리포지토리 등 모든 Spring 빈(Bean) 메서드의 실행을 가로챌 수 있다 [5]. `@Aspect` 어노테이션과 함께 `@Before`, `@After`, `@Around` 등의 Advice를 사용하여 비즈니스 로직을 터치하지 않고 횡단 관심사를 적용하는 것이 가장 강력한 실전 패턴이다 [5], [13], [14].
|
||||
* **C# / .NET:** C#은 AOP를 네이티브 수준에서 완전하게 지원하지 않는다 [1]. 따라서 속성(Attributes)을 정의하고 `Castle.DynamicProxy`와 같은 런타임 인터셉터를 사용하여 메서드 호출을 가로채는 방식으로 간접적인 AOP를 구현해야 한다 [1].
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & RL Update)
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
* **코드의 마법 같은 동작(Magical Behavior)과 디버깅 난이도:**
|
||||
AOP의 가장 큰 단점은 코드가 명시적으로 호출되지 않아도 은연중에 실행되기 때문에 로직의 흐름이 너무 "마법처럼" 보일 수 있다는 점이다 [15], [16]. 이로 인해 새로운 개발자가 특정 동작이 어디서 유발되는지 파악하기 어려우며, 의도치 않은 곳에서 로직이 실행되거나 에러가 발생할 경우 디버깅 추적이 매우 까다로워진다 [15], [16].
|
||||
* **성능 오버헤드 (Performance Cost):**
|
||||
@@ -30,7 +41,6 @@ Aspect-Oriented Programming(AOP)은 소프트웨어 시스템 내 여러 모듈
|
||||
특정 상황의 세부적인 맥락(예: 함수 내 특정 지역 변수의 상태 포맷팅)이 필요한 로깅의 경우, AOP 외부 래퍼에서 그 데이터에 접근하기 어려워 기존 로깅 라이브러리를 코드 내부에서 직접 호출하는 것보다 유연성이 떨어질 수 있다 [18].
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
|
||||
### Related Concepts
|
||||
|
||||
#### [관계 유형 A: 아키텍처/기반 기술]
|
||||
@@ -72,3 +82,52 @@ Aspect-Oriented Programming(AOP)은 소프트웨어 시스템 내 여러 모듈
|
||||
*Last updated: 2026-05-03*
|
||||
- Raw Source: 00_Raw/2026-05-03/Aspect-Oriented Programming (AOP).md
|
||||
---
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,20 +1,96 @@
|
||||
---
|
||||
id: wiki-2026-0508-automated-refactoring-tools
|
||||
title: Automated Refactoring Tools
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [uncategorized]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Automated Refactoring Tools]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
자동화된 리팩토링 도구는 소프트웨어의 외부 동작을 보존하면서 내부 구조를 기계적으로 변경해 주는 소프트웨어 유틸리티 및 IDE 기능을 의미합니다 [1, 2]. 과거 스몰토크(Smalltalk)의 리팩토링 브라우저부터 현대의 통합 개발 환경(IDE)에 이르기까지, 이 도구들은 코드 재구성의 속도와 안정성을 높이는 데 기여해 왔습니다 [3, 4]. 최근에는 대형 언어 모델(LLM)을 기반으로 한 AI 도구들이 등장하여 다중 파일 리팩토링 및 단위 테스트 생성을 지원하는 등 그 역할과 능력이 더욱 확장되고 있습니다 [5, 6].
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
* **통합 개발 환경(IDE)의 기본 지원**: IntelliJ IDEA, Eclipse, Visual Studio, PyCharm 등의 현대적 IDE는 변수 이름 변경, 필드 캡슐화, 메서드 추출과 같은 마이크로 리팩토링(Micro-refactorings)을 자동화하여 제공합니다 [4, 7, 8].
|
||||
* **정적 코드 분석기(Static Code Analyzers)**: Codacy, PMD, JArchitect, NDepend, RuboCop 등의 분석 도구들은 코드를 실행하지 않고도 프로그래밍 결함이나 코드 스멜을 식별하여 개발자가 리팩토링할 대상을 쉽게 찾도록 돕습니다 [9].
|
||||
* **AI 기반 리팩토링 도구**: IBM Bob, Amazon CodeGuru Reviewer, GitHub Copilot, Cursor AI, Claude Code 등의 생성형 AI 도구는 방대한 코드베이스의 문맥을 파악하여 실시간으로 리팩토링을 제안하고 실행합니다 [6, 10, 11]. 특히 IBM watsonx Code Assistant와 같은 도구는 COBOL 등의 레거시 애플리케이션 구조를 동적으로 리팩토링하고 현대화하는 데 활용되기도 합니다 [11].
|
||||
* **의존성 및 아키텍처 분석 도구**: 마이크로소프트의 'MaX'와 같은 도구는 함수 및 바이너리 모듈 수준의 의존성을 분석하고 바람직하지 않은 의존성 사이클을 식별하여, 대규모 시스템의 아키텍처 리팩토링 결정을 지원합니다 [12, 13].
|
||||
* **자동화 도구의 기술적 요구사항**: 올바른 리팩토링 도구는 단순한 텍스트 검색이 아닌 구문 분석 트리(Parse Trees)와 의미론적 분석을 통해 프로그램 데이터베이스를 구축해야 합니다 [2, 14, 15]. 또한, 개발자가 안전하게 코드 설계를 탐색할 수 있도록 빠른 실행 속도와 신뢰할 수 있는 '실행 취소(Undo)' 기능을 필수적으로 갖추어야 합니다 [16, 17].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
* **수동 리팩토링 선호 및 도구의 한계**: 많은 개발자들이 자동화 도구의 존재를 알면서도 리팩토링의 약 86%를 수동으로 처리합니다 [18, 19]. 이는 IDE가 제공하는 리팩토링이 개발자가 의도하는 고차원적인 아키텍처 변경 수준에 미치지 못하는 경우가 많기 때문입니다 [20, 21]. 더불어, 리팩토링 도구 자체에 버그가 존재하거나 에러를 제대로 소통하지 못해 개발자가 도구 사용을 기피하는 경우도 발생합니다 [22, 23].
|
||||
* **AI 도구의 환각 및 검증 부담**: AI를 활용한 리팩토링은 유용하지만, 환각(Hallucination) 현상으로 인해 코드에 새로운 오류를 도입할 위험을 수반합니다 [24, 25]. 따라서 자동화된 테스트 제품군(Test Suite)을 통한 지속적인 검증과 개발자의 꼼꼼한 코드 리뷰(Human-in-the-loop)가 필수적으로 동반되어야 합니다 [24-26].
|
||||
* **AI 생산성 역설(Productivity Paradox)**: 복잡한 레포지토리나 익숙한 코드베이스에서 작업하는 숙련된 시니어 개발자의 경우, 프롬프트를 정교하게 작성하고 AI의 결과물을 검토 및 수정하는 데 드는 인지적 오버헤드 때문에 오히려 작업 속도가 19%까지 저하될 수 있습니다 [27-30]. 또한 AI를 통해 코드 생성과 리팩토링 속도를 높이더라도, 코드 리뷰 단계의 소요 시간이 급증(예: PR 리뷰 시간 91% 증가)하여 결과적으로 프로젝트의 병목 위치만 하류(Downstream)로 이동하는 부작용이 나타날 수 있습니다 [31, 32].
|
||||
|
||||
|
||||
---
|
||||
*Last updated: 2026-05-03*
|
||||
*Last updated: 2026-05-03*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
|
||||
- **Parent:** [[10_Wiki/Topics]]
|
||||
- **Related:** *(TODO: 최소 2개)*
|
||||
- **Opposite / Trade-off:** *(TODO)*
|
||||
- **Raw Source:** 직접 입력
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,13 +1,26 @@
|
||||
---
|
||||
category: Unified
|
||||
id: wiki-2026-0508-bim-모델-렌더링
|
||||
title: BIM 모델 렌더링
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [auto-consolidated, technical-documentation]
|
||||
title: [[BIM 모델 렌더링|BIM 모델 렌더링]]
|
||||
last_updated: 2026-05-02
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[BIM 모델 렌더링|BIM 모델 렌더링]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
> BIM(건축 정보 모델) 및 CAD 모델 렌더링은 수십만 개의 고유하거나 반복되는 기하학적 요소로 이루어진 대규모 건설 데이터를 웹 브라우저 등에서 효율적으로 시각화하는 과정입니다 [1-3]. 이 과정에서는 막대한 드로우 콜([[Draw Call|Draw Call]])과 메모리 대역폭 한계로 인한 성능 저하를 방지하기 위해 형상 병합(Merging), 인스턴싱(Instancing), 배칭(Batching) 등의 기법을 적재적소에 활용해야 합니다 [4-7]. 최근에는 [[WebGPU|WebGPU]]를 도입하여 500MB 이상의 거대 BIM 데이터를 실시간으로 렌더링하고 컴퓨트 셰이더를 통해 무거운 연산을 병렬 처리하는 방식이 대규모 건설 뷰어의 핵심 기술로 부상하고 있습니다 [8-10].
|
||||
|
||||
---
|
||||
@@ -18,7 +31,7 @@ last_updated: 2026-05-02
|
||||
|
||||
> 대규모 건축물 및 지형 뷰어(BIM)는 병원 캠퍼스, 공항 터미널, 도시 규모의 디지털 트윈 등 500MB를 초과하는 방대한 규모의 3D 모델을 실시간으로 시각화하는 시스템이다 [1, 2]. 이러한 모델은 보, 기둥, HVAC 시스템과 같이 수십만 개의 개별 구성 요소로 이루어져 있어 막대한 렌더링 부하를 유발한다 [3]. 이를 원활하게 렌더링하고 시각적 상호작용을 지원하기 위해서는 [[WebGPU|WebGPU]], BatchedMesh, 공간 분할 알고리즘 등 드로우 콜([[Draw Call|Draw Call]])을 최소화하고 메모리를 관리하는 고도의 최적화 기술이 필수적으로 요구된다 [3-5].
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
- **BIM 모델의 구조적 특징과 렌더링 과제:**
|
||||
BIM 또는 CAD 모델은 벽, 바닥, 파이프, 문, 창문 등 수많은 개별 부품(Component)으로 구성되어 있습니다 [1]. 이를 각각 개별적인 메쉬(Mesh)로 렌더링할 경우 CPU에서 GPU로 그리기 명령을 보내는 드로우 콜이 폭증하여 심각한 병목 현상이 발생합니다 [3]. 특히 통합 GPU 환경 등에서는 대용량 정점 데이터를 처리할 때 메모리 대역폭의 한계에 부딪혀 프레임 스터터링이 일어날 수 있습니다 [11, 12].
|
||||
|
||||
@@ -52,7 +65,7 @@ last_updated: 2026-05-02
|
||||
- **WebGPU 및 컴퓨트 셰이더 도입:** 500MB 이상의 거대한 건축 모델이나 실시간 구조 시뮬레이션을 다룰 때는 자바스크립트의 단일 스레드 한계를 극복할 수 있는 Native WebGPU의 도입이 권장된다 [12-14]. 컴퓨트 셰이더([[Compute Shader|Compute Shader]])를 활용하면 대규모 BIM 데이터셋의 실시간 필터링이나 충돌 감지 연산을 수천 개의 GPU 코어에서 병렬로 처리할 수 있어, 기존 CPU 처리 방식 대비 압도적인 성능 향상을 달성할 수 있다 [15, 16].
|
||||
- **가시성 판별(Culling) 및 메모리 최적화:** 뷰어의 성능을 안정적으로 유지하기 위해 화면에 보이지 않는 객체를 렌더링 파이프라인에서 제외하는 최적화가 필수적이다. CPU 기반의 공간 분할(Octree/BVH) 기술이나, GPU 컴퓨트 셰이더를 활용해 시야 포함 여부와 가림 현상(Occlusion)을 판별하는 GPU 주도 렌더링([[GPU-driven Rendering|GPU-driven Rendering]]) 기법이 적용된다 [5, 17, 18]. 더불어, 메모리 대역폭 한계와 크래시 현상을 극복하기 위해 텍스처 아틀라스를 사용하거나 Web Worker와 `SharedArrayBuffer`를 연계한 제로 카피(Zero-copy) 데이터 디코딩 구조가 활용된다 [19, 20].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요.
|
||||
- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행.
|
||||
|
||||
@@ -66,7 +79,7 @@ last_updated: 2026-05-02
|
||||
- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요.
|
||||
- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행.
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
## 🔗 지식 연결 (Graph)
|
||||
- **Related Topics:** [[InstancedMesh|InstancedMesh]], BatchedMesh, WebGPU, [[Draw Call|Draw Call]]
|
||||
- **Projects/Contexts:** IFC.js, [[Revit 모델 렌더링|Revit 모델 렌더링]], [[대규모 건설 뷰어(Construction Viewers)|대규모 건설 뷰어(Construction Viewers]]
|
||||
- **Contradictions/Notes:** 다양한 형태의 객체를 단일 드로우 콜로 처리하여 성능을 높이기 위해 `BatchedMesh`를 사용하는 것이 일반적으로 권장되지만, 수백만 개의 정점과 수십만 개의 서브 지오메트리가 있는 거대한 Revit 기반 건축 모델에 이를 그대로 적용할 경우, 내부 버퍼 업데이트와 데이터 복사 등의 오버헤드로 인해 오히려 CPU 사용량이 40~60% 이상 폭증하고 프레임(FPS)이 급락하는 심각한 성능 역전 현상이 보고되기도 하므로 데이터 규모에 따른 주의가 필요합니다 [15, 22-25].
|
||||
@@ -97,3 +110,52 @@ last_updated: 2026-05-02
|
||||
*Last updated: 2026-04-19*
|
||||
|
||||
---
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,14 +1,26 @@
|
||||
---
|
||||
category: Architecture
|
||||
tags: [auto-wikified, technical-documentation, architecture]
|
||||
id: wiki-2026-0508-bloc
|
||||
title: BLoC
|
||||
description: "BLoC(Business Logic Component)는 Flutter 생태계에서 프로젝트의 규모에 따라 활용되는 스트림(Stream) 기반의 이벤트 중심 상태 관리 패턴입니다 [1]."
|
||||
last_updated: 2026-05-04
|
||||
category: Architecture
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [auto-wikified, technical-documentation, architecture]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# BLoC
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
BLoC(Business Logic Component)는 Flutter 생태계에서 프로젝트의 규모에 따라 활용되는 스트림(Stream) 기반의 이벤트 중심 상태 관리 패턴입니다 [1]. 이 패턴은 엄격한 관심사 분리를 요구하여 비즈니스 로직을 분리하는 데 사용됩니다 [1]. 높은 테스트 용이성과 상태 변화에 대한 예측 가능성을 제공하기 때문에, 특히 대규모 엔터프라이즈 프로젝트에서 널리 선호되는 아키텍처 패턴입니다 [1].
|
||||
|
||||
## 📖 Core 소스에 기반한 Content
|
||||
@@ -16,11 +28,10 @@ BLoC(Business Logic Component)는 Flutter 생태계에서 프로젝트의 규모
|
||||
* **엄격한 관심사 분리**: 애플리케이션 내에서 UI(프레젠테이션) 레이어와 비즈니스 로직 레이어를 엄격하게 분리하도록 강제합니다 [1].
|
||||
* **대규모 엔터프라이즈 환경 최적화**: BLoC 패턴이 강제하는 엄격한 구조적 특징은 코드의 예측 가능성을 높이고 테스트를 매우 용이하게 만듭니다. 이러한 장점 덕분에 복잡도가 높은 대규모 엔터프라이즈 모바일 프로젝트를 설계할 때 가장 적합한 상태 관리 방식으로 평가받고 있습니다 [1].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
BLoC 패턴은 애플리케이션의 테스트 용이성과 예측 가능성을 극대화하지만, 그 반대급부로 설계 시 '엄격한 관심사 분리'를 반드시 충족해야 하는 제약과 복잡성이 따릅니다 [1]. 상대적으로 배우기 쉽고 유연하여 중소규모 프로젝트에서 높은 생산성을 내는 Provider나 Riverpod 상태 관리 패턴에 비해, 초기 구조를 잡고 유지하는 데 더 높은 학습 곡선과 코딩 비용(보일러플레이트 등)이 요구될 수 있음을 시사합니다 [1]. 그 외 BLoC 패턴의 기술적 부작용이나 최적화 한계에 대해서는 소스에 관련 정보가 부족합니다.
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
### Related Concepts
|
||||
|
||||
#### [상태 관리 아키텍처 (State Management Patterns)]
|
||||
@@ -57,4 +68,61 @@ BLoC 패턴은 애플리케이션의 테스트 용이성과 예측 가능성을
|
||||
- 확장 방향: Flutter 생태계의 BLoC 및 Riverpod 패턴과 대조되는 React Native 진영의 상태 관리 패턴(Redux Toolkit, Zustand, TanStack Query 등)을 함께 조사하여, 크로스 플랫폼 프레임워크 전반의 최신 상태 관리 트렌드와 철학적 차이를 폭넓게 이해할 수 있습니다 [1].
|
||||
|
||||
---
|
||||
*Last updated: 2026-05-03*
|
||||
*Last updated: 2026-05-03*
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
|
||||
**추출된 패턴:**
|
||||
> *(TODO)*
|
||||
|
||||
**세부 내용:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,17 +1,29 @@
|
||||
---
|
||||
id: P-REINFORCE-WIKI-0C43BD75
|
||||
category: Unified
|
||||
id: wiki-2026-0508-bpm
|
||||
title: BPM
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: [P-REINFORCE-WIKI-0C43BD75]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.95
|
||||
tags: ['bpm', 'event-driven-architecture', 'mediator-topology', 'bpel', 'jbpm', 'architecture-principles']
|
||||
tags: [bpm, event-driven-architecture, mediator-topology, bpel, jbpm, architecture-principles]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-02
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[BPM]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
BPM(Business Process Management) 실행 엔진은 이벤트 기반 아키텍처(Event-Driven Architecture)의 메디에이터 토폴로지(Mediator Topology) 내에서, 주로 인간의 개입이 필요하거나 실행 시간이 긴 복잡한 이벤트 조정 및 오류 처리를 수행하는 데 사용되는 정교한 프로세스 자동화 엔진입니다 [1].
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
소스에서 제공하는 BPM에 대한 핵심 내용은 이벤트 기반 아키텍처의 메디에이터(Mediator) 구현 방식과 연관되어 제한적으로 설명되어 있습니다.
|
||||
|
||||
* **인간의 개입과 장기 실행 프로세스 처리:** 이벤트 조정 및 오류 처리 과정에서 인간의 상호작용(human intervention)이 필요하여 처리 시간이 길어지는(long run times) 경우, BPEL(Business Process Execution Language) 매니저보다 더 고도화된 BPM 실행 엔진을 사용하는 것이 적합합니다 [1].
|
||||
@@ -20,13 +32,12 @@ BPM(Business Process Management) 실행 엔진은 이벤트 기반 아키텍처(
|
||||
|
||||
*참고: BPM의 세부적인 작동 원리나 구조, 그 외 아키텍처적 특성에 대해서는 소스에 관련 정보가 부족합니다.*
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
*소스에 관련 정보가 부족합니다.*
|
||||
|
||||
(다만 소스 내용을 통해 추론할 때, 단순한 프로그래밍 기반 메디에이터나 BPEL로는 처리하기 어려운 '인간의 개입' 및 '긴 실행 시간'을 다루기 위해 더 정교한(sophisticated) 다중 DSL 기반의 엔진이 필요하다는 제약에서 BPM이 도입됨을 알 수 있습니다 [1]. 구체적인 단점이나 부작용에 대한 언급은 소스에 포함되어 있지 않습니다.)
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
### Related Concepts
|
||||
#### [아키텍처/기반 기술]
|
||||
- [[Event-Driven Architecture]]
|
||||
@@ -65,4 +76,53 @@ BPM(Business Process Management) 실행 엔진은 이벤트 기반 아키텍처(
|
||||
- 확장 방향: MSA 환경에서는 각 서비스가 독립적인 데이터베이스를 가지므로(분산 시스템), 여러 마이크로서비스에 걸친 복잡한 비즈니스 트랜잭션을 조정할 때 BPM과 같은 오케스트레이터(Orchestrator)가 어떻게 활용될 수 있는지 탐구할 수 있습니다.
|
||||
|
||||
---
|
||||
*Last updated: 2026-05-02*
|
||||
*Last updated: 2026-05-02*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,13 +1,26 @@
|
||||
---
|
||||
category: Unified
|
||||
id: wiki-2026-0508-base-layouts
|
||||
title: Base Layouts
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [auto-consolidated, technical-documentation]
|
||||
title: [[Base Layouts|Base Layouts]]
|
||||
last_updated: 2026-05-02
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Base Layouts|Base Layouts]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
War Commander에서 Base Layouts은 사령부(Command Center), 자원 저장소, 발전소와 같은 핵심 인프라를 보호하기 위해 건물, 포탑, 장벽, 방어 유닛을 전략적으로 배치하는 것을 의미합니다 [1-3]. 이는 공격자가 겹치는 화망과 함정 구역을 통과하도록 강제하는 기하학적 억지력(Geometric Deterrence)으로 작용합니다 [3]. 궁극적인 목표는 공격자의 전략에 지속적으로 적응하고 전술을 수정하여 80% 이상의 방어 성공률을 유지하는 것입니다 [1].
|
||||
|
||||
---
|
||||
@@ -18,7 +31,7 @@ War Commander에서 Base Layouts은 사령부(Command Center), 자원 저장소,
|
||||
|
||||
War Commander에서 기지 방어 레이아웃은 적의 공격으로부터 자원, 지휘 본부(Command Center), 발전소를 보호하기 위해 방어 건물과 유닛을 전략적으로 배치하는 끊임없이 변화하는 퍼즐이다 [1-3]. 성공적인 방어는 공격자가 여러 킬존(Kill zones)을 통과하도록 유도하여 방어 효율을 극대화하는 형태적 계층화(Geometric layering)에 기반한다 [3]. 목표는 기지 방어율을 80% 이상으로 유지하는 것이며, 리플레이를 통해 적의 접근 경로를 파악하여 레이아웃을 지속적으로 개선해야 한다 [1, 4].
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
* **핵심 원칙 및 주요 구조물 보호:** 효율적인 기지 설계는 형태보다 기능을 우선시합니다. 사령부, 자원 저장 시설, 발전소는 기지 중앙에 배치하고, 그 주위를 덜 중요한 건물과 방어선으로 둘러싸야 합니다 [2, 3]. 특히 전력이 부족하면 포탑의 발사 속도가 느려지고 자원 생산이 감소하므로 발전소를 장벽과 포탑으로 철저히 보호하는 것이 필수적입니다 [4, 5]. 또한, 군수 공장(War Factory), 헬기장(Helipad), 병영(Barracks)과 같은 방어 시설 역시 방어 유닛을 원활히 전개할 수 있도록 보호되어야 합니다 [6].
|
||||
* **포탑 및 장애물 배치:** 포탑은 방어 건물을 보호하고 겹치는 화망을 구성하도록 배치해야 합니다 [3, 7]. 장벽(Walls)은 적의 접근 경로를 차단하고 썬더볼트(Thunderbolt)와 같은 항공기의 공격을 대신 흡수하여 포탑을 보호하며, 적 지상군을 지뢰(Land mines)가 매설된 좁은 구역으로 몰아넣는 역할을 합니다 [5, 7, 8].
|
||||
* **고급 기지 설계(Advanced Base Designs):**
|
||||
@@ -55,11 +68,11 @@ War Commander에서 기지 방어 레이아웃은 적의 공격으로부터 자
|
||||
* **블리츠 기지 (Blitz Base):** 적의 유인(Baiting) 전술을 방지하기 위해 고안된 특수 형태이다 [13, 14]. 중앙에 중요 건물을 두고 대공 유닛(Heavy Gunners 또는 Stingers)이 배치된 감시탑(Watch Tower)을 대칭으로 배치하여 적의 공중 선제공격을 차단한다 [13, 14]. 장거리 공성 유닛을 저지하기 위해 박격포를 외곽에, 기관총을 그 뒤에 배치한다 [13, 14].
|
||||
* **원형 기지 (Circle Perimeter) 및 은폐:** 핵심 건물 주위를 원형으로 둘러싸면 적의 명확한 공격 지점을 모호하게 만들 수 있다 [9]. 또한, 높이가 높은 지휘 본부나 버려진 건물 뒤에 방어 유닛(예: 자폭 폭격기, 탱크 등)을 숨겨두면 적이 접근할 때 기습적인 피해를 줄 수 있다 [9].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
- 신규 지식 자산화 (2026-04-27).
|
||||
- War Commander 전투 생태계 데이터 통합.
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
## 🔗 지식 연결 (Graph)
|
||||
- **Related Topics:** Defensive Grid, Turrets, [[Baiting Tactics|Baiting Tactics]], [[Command Center|Command Center]]
|
||||
- **Projects/Contexts:** War Commander Base Defense Strategy, Geometric Deterrence
|
||||
- **Contradictions/Notes:** 소스에 따르면 모든 공격을 방어할 수 있는 마법 같은 단일 레이아웃 공식은 존재하지 않으며, 방어자는 리플레이를 관찰하고 공격자와의 끊임없는 메타(Meta) 싸움에 맞춰 기지 레이아웃을 퍼즐처럼 지속해서 변화시켜야 한다고 강조합니다 [1, 6].
|
||||
@@ -84,3 +97,52 @@ War Commander에서 기지 방어 레이아웃은 적의 공격으로부터 자
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-27*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,20 +1,33 @@
|
||||
---
|
||||
category: Unified
|
||||
id: wiki-2026-0508-bayesian-inference
|
||||
title: Bayesian Inference
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [auto-consolidated, technical-documentation]
|
||||
title: Bayesian-Inference (베이지안 추론)
|
||||
last_updated: 2026-05-02
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# Bayesian-Inference (베이지안 추론)
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
> "믿음은 고정된 것이 아니라 정보에 따라 진화한다." 기존의 배경 지식(Prior)에 새로운 근거(Evidence)를 더해 더 정확한 진실(Posterior)에 다가가는 통계학적 통찰이다.
|
||||
|
||||
---
|
||||
|
||||
베이지안 추론(Bayesian Inference)은 베이즈 정리(Bayes' Theorem)를 바탕으로, 새로운 증거가 수집될 때마다 가설의 확률(신뢰도)을 지속적으로 갱신해 나가는 통계적 추론 방법론입니다 [1, 2]. 이는 지능 시스템이 불확실한 환경에서 점진적으로 학습하고 세계관을 수정해 나가는 핵심 원리입니다 [1].
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
- **Prior Probability (사전 확률)**:
|
||||
- 새로운 데이터를 보기 전에 우리가 이미 알고 있는 지식이나 가설의 확률.
|
||||
- **Likelihood (우도)**:
|
||||
@@ -36,7 +49,7 @@ last_updated: 2026-05-02
|
||||
- **능동적 학습 (Active Learning)**: 어떤 데이터가 사후 확률을 가장 크게 변화시킬지 판단하여 효율적으로 학습 대상을 선택합니다 [1].
|
||||
- **베이지안 뇌 가설 (Bayesian Brain Hypothesis)**: 인간의 뇌가 감각 정보를 능동적으로 처리하고 확률 분포를 통해 미래를 예측한다는 이론으로, 현대 AI 상황 판단 모듈 설계의 모티브가 됩니다 [1, 6].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
- 베이지안 추론은 '사전 확률'을 설정할 때 주관이 개입된다는 비판을 받기도 한다(빈도주의 통계학과의 논쟁). 하지만 데이터가 적은 초기 상태에서는 베이지만큼 강력한 예측 도구가 없다.
|
||||
|
||||
---
|
||||
@@ -44,7 +57,7 @@ last_updated: 2026-05-02
|
||||
- **사전 확률의 주관성**: 초기 설정한 사전 확률(Prior)에 따라 결과가 달라질 수 있다는 비판이 있으나, 충분한 데이터가 쌓이면 사후 확률은 데이터의 본질에 수렴하게 됩니다 [1, 7].
|
||||
- **연산 복잡도**: 복잡한 모델에서 베이지안 적분을 직접 계산하는 것은 매우 어렵기 때문에, MCMC(Markov Chain Monte Carlo)나 변분 추론(Variational Inference)과 같은 근사 기법이 널리 사용됩니다 [1].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
## 🔗 지식 연결 (Graph)
|
||||
- Related: [[Automated-Reasoning|Automated-Reasoning]] , [[Behavioral-Economics|Behavioral-Economics]]
|
||||
- Foundation: Computational Theory & Math/Information Theory
|
||||
|
||||
@@ -55,3 +68,52 @@ last_updated: 2026-05-02
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-30*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,13 +1,26 @@
|
||||
---
|
||||
category: Unified
|
||||
id: wiki-2026-0508-beat-saber
|
||||
title: Beat Saber
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [auto-consolidated, technical-documentation]
|
||||
title: [[Beat Saber|Beat Saber]]
|
||||
last_updated: 2026-05-02
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Beat Saber|Beat Saber]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
> 'Beat Saber'는 모션 트래킹 기술을 활용해 플레이어가 가상현실 속에서 광선검을 휘둘러 리듬에 맞춰 표적을 베고 장애물을 피하는 인기 VR 리듬 엑서게임(Exergame)입니다 [1]. 전 세계적으로 200만 장 이상 판매된 성공적인 상업 게임으로, 햅틱 및 시청각 피드백을 통해 높은 몰입감을 제공합니다 [1, 2]. 실제 테니스와 맞먹는 에너지 소모량을 바탕으로 신체 활동을 돕는 유용한 도구로 인정받고 있으며, VR 멀미([[VR Sickness|VR Sickness]]) 및 몰입 상태([[Flow State|Flow State]])를 분석하는 학술 연구에서도 널리 활용되고 있습니다 [2, 3].
|
||||
|
||||
---
|
||||
@@ -22,7 +35,7 @@ last_updated: 2026-05-02
|
||||
|
||||
> 비트 세이버(Beat Saber)는 비트 게임즈(Beat Games)에서 개발한 상업용 가상 현실(VR) 리듬 운동 게임(exergame)으로, 전 세계적으로 200만 장 이상 판매된 가장 성공적인 게임 중 하나입니다 [1, 2]. 이 게임은 모션 트래킹 기술을 활용하여 핸드헬드 컨트롤러를 광선검처럼 시뮬레이션하며, 사용자는 음악의 비트에 맞춰 날아오는 목표물을 베고 장애물을 적극적으로 피해야 합니다 [2]. 또한 햅틱, 청각 및 성과 피드백을 결합하여 높은 몰입감을 선사하며, 실제 테니스를 치는 것과 비슷한 수준의 에너지를 소모하게 하는 특징이 있습니다 [1, 2].
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
- **게임의 특징과 신체적 효과:** Beat Games에서 개발한 Beat Saber는 플레이어에게 햅틱, 청각, 그리고 성과 기반 피드백을 제공하여 강렬한 몰입감을 선사합니다 [1]. 가상현실 건강 및 운동 연구소(VR Health Institute)에 따르면, 이 게임을 플레이할 때 소모되는 에너지는 실제 테니스를 치는 것과 유사합니다 [2]. 사용자들은 몰입형 환경이 운동의 힘든 강도로부터 주의를 분산시켜 주며, 현실에서의 운동과 비슷한 신체 활동 효과를 얻을 수 있다고 평가합니다 [4].
|
||||
- **VR 사후 효과(Aftereffects) 및 멀미 연구 도구:** 이 게임은 단기(10분) 및 장기(50분) VR 노출이 사용자의 시각, 인지, 웰빙 및 VR 멀미에 미치는 영향을 조사하는 연구의 테스트 베드로 사용되었습니다 [2, 5]. 연구 결과, Beat Saber는 멀미로 인한 중도 포기자가 발생하지 않을 정도로 전반적으로 플레이어들에게 잘 수용되는(well tolerated) 것으로 나타났습니다 [6, 7]. 발생하는 즉각적인 사후 효과 역시 대부분 일시적이었으며 게임 종료 40분 후 기저 수준으로 회복되었으나, 장시간(50분) 플레이한 일부 참가자(약 14%)는 회복 후에도 여전히 높은 수준의 멀미를 경험한 것으로 확인되었습니다 [6, 8].
|
||||
- **몰입(Flow) 상태 유도 및 검증:** Beat Saber는 플레이어의 기술과 과제의 난이도 간의 균형을 맞추기 용이한 통제된 싱글 플레이어 게임이라는 특성이 있습니다 [3]. 이러한 장점 덕분에 e스포츠 및 게임 환경에서 플레이어의 신경 생리학적 몰입 상태(Flow [[State|State]])를 안정적으로 유도하고 측정하기 위한 실험실 기반의 고충실도 검증(high-fidelity validation) 연구 모델에서도 핵심적인 과제로 제안 및 활용됩니다 [3].
|
||||
@@ -49,7 +62,7 @@ last_updated: 2026-05-02
|
||||
- **신체적 운동 효과 및 상호작용**: 사용자는 자신의 게임 플레이를 주도하여 원하는 곡과 난이도를 자유롭게 선택할 수 있으며, 난이도가 높아질수록 시각적 자극과 요구되는 움직임의 양도 크게 증가합니다 [5]. 가상 현실 건강 및 운동 연구소(VR Health Institute)는 비트 세이버의 에너지 소모량이 실제 테니스와 맞먹는다고 평가하였으며, 이는 주로 앉아서 생활하는 습관(sedentary [[Behavior|Behavior]])을 개선할 수 있는 매력적인 운동 전략으로 간주됩니다 [1, 3].
|
||||
- **몰입 상태([[Flow State|Flow State]])의 안정적 유도**: 비트 세이버는 사용자의 기술 수준에 맞춘 난이도 조절과 명확하고 즉각적인 피드백을 통해 몰입(Flow) 상태를 효과적으로 이끌어냅니다 [2, 6]. 이러한 특성 덕분에 신경생리학적 정밀도를 추구하는 고충실도(high-fidelity) 실험실 연구에서, 과업을 표준화하고 몰입 상태의 신경 및 자율신경계 신호를 안정적으로 유도하기 위한 통제된 단일 플레이어 게임으로 널리 활용되고 있습니다 [6].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요.
|
||||
- **정책 변화:** Programming & Language 분야의 자동 자산화 수행.
|
||||
|
||||
@@ -68,7 +81,7 @@ last_updated: 2026-05-02
|
||||
- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요.
|
||||
- **정책 변화:** Programming & Language 분야의 자동 자산화 수행.
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
## 🔗 지식 연결 (Graph)
|
||||
- **Related Topics:** VR Exergame, [[VR Sickness|VR Sickness]], [[Flow State|Flow State]]
|
||||
- **Projects/Contexts:** 가상현실 노출 사후 효과(VR Aftereffects) 연구, 몰입 상태 예측 프레임워크(Flow State Prediction Framework)
|
||||
- **Contradictions/Notes:** 소스 연구에 따르면 Beat Saber 플레이 후의 사후 효과(멀미 등)는 전반적으로 일시적이며 40분 내에 기저 수준으로 회복되어 멀미로 인한 실험 탈락자가 없었지만 [6, 7], 장시간(50분) 노출될 경우 특정 사용자 집단(약 14%)에서는 게임 종료 40분 후에도 여전히 높은 수준의 멀미가 유지되는 등 개인의 민감도와 노출 시간에 따라 상이한 결과가 나타납니다 [6, 8].
|
||||
@@ -110,3 +123,52 @@ last_updated: 2026-05-02
|
||||
*Last updated: 2026-04-19*
|
||||
|
||||
---
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,9 +1,21 @@
|
||||
---
|
||||
id: [[P-Reinforce|P-Reinforce]]-AUTO-BESY-001
|
||||
category: Unified
|
||||
id: wiki-2026-0508-belief-system
|
||||
title: Belief System
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: [P-Reinforce-AUTO-BESY-001]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.94
|
||||
tags: [auto-reinforced, belief-system, worldview, culture, [[Cognitive-Architecture|Cognitive-Architecture]], orientation]
|
||||
tags: [auto-reinforced, belief-system, worldview, culture, Cognitive-Architecture, orientation]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-04-20
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Belief-System|Belief-System]]
|
||||
@@ -22,7 +34,7 @@ last_reinforced: 2026-04-20
|
||||
* **Cognitive Economy**: 매 순간 일어나는 일을 처음부터 분석하지 않고 기존 체계에 비추어 빠르게 판단하게 해줌.
|
||||
* **identity**: "나는 어떤 사람인가"를 규정하는 정체성의 토대.
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & RL Update)
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
- **과거 데이터와의 충돌**: 과거에는 신념 체계를 혈연이나 지역적 종교 정책에 의해 고정된 것으로 보았으나, 현대의 정보 유통 정책은 개인의 취향과 알고리즘 추천에 의해 시시각각 재구성되는 '유동적 신념 체계 정책'으로 이행함(RL Update).
|
||||
- **정책 변화(RL Update)**: 기업 문화 정책 수립 시, 단순히 사훈을 외우게 하는 정책 대신 구성원 각자의 신념 체계가 회사의 비전과 조화를 이루게 하는 '가치 공유 프로세스 기획 정책'이 조직 관리의 핵심이 됨.
|
||||
|
||||
@@ -30,3 +42,52 @@ last_reinforced: 2026-04-20
|
||||
- [[Beliefs|Beliefs]], [[Belief-Revision|Belief-Revision]], [[Axiology|Axiology]], [[Axiomatic-Systems|Axiomatic-Systems]], [[Sociology of Knowledge|Sociology of Knowledge]]
|
||||
- **Modern Tech/Tools**: Psychometric profiling, Cognitive [[Behavior|Behavior]]al therapy frameworks.
|
||||
---
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,9 +1,21 @@
|
||||
---
|
||||
id: [[P-Reinforce|P-Reinforce]]-AUTO-BIGD-001
|
||||
category: Unified
|
||||
id: wiki-2026-0508-big-data
|
||||
title: Big Data
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: [P-Reinforce-AUTO-BIGD-001]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.97
|
||||
tags: [auto-reinforced, big-data, data-science, analytics, scalable-systems, infrastructure]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-04-20
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Big-Data|Big-Data]]
|
||||
@@ -23,7 +35,7 @@ last_reinforced: 2026-04-20
|
||||
2. **분석의 차원**:
|
||||
* **Correlation over Causation**: "왜 발생하는가"보다 "무엇과 무엇이 같이 발생하는가"라는 상관 관계 분석에 우선 집중하여 빠른 비즈니스 의사결정 지원.
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & RL Update)
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
- **과거 데이터와의 충돌**: 과거에는 무조건 많이 모으는 '데이터 댐' 정책이 유행이었으나, 현대 정책은 쓰레기 데이터 입력 시 쓰레기 결과가 나온다는(GIGO) 교훈 하에 '데이터 품질(Data-centric AI) 관리 정책'으로 전환함(RL Update).
|
||||
- **정책 변화(RL Update)**: 개인 정보 보호 정책(GDPR 등) 강화로 인해, 데이터를 한 곳으로 모으지 않고 기기단에서 학습하는 '연합 학습(Federated Learning) 정책'이 빅데이터 활용의 새로운 표준이 됨.
|
||||
|
||||
@@ -31,3 +43,52 @@ last_reinforced: 2026-04-20
|
||||
- [[Artificial Intelligence (AI)|Artificial Intelligence (AI)]], Foundational Models, [[Statistics & Data Analysis|Statistics & Data Analysis]], [[Backups|Backups]], [[Technical-Architecture|Technical-Architecture]]
|
||||
- **Modern Tech/Tools**: Hadoop, Spark, NoSQL (MongoDB, Cassandra), Data Lake (Snowflake).
|
||||
---
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,13 +1,26 @@
|
||||
---
|
||||
category: Unified
|
||||
id: wiki-2026-0508-bottom-up-approach
|
||||
title: Bottom Up Approach
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [auto-consolidated, technical-documentation]
|
||||
title: [[Bottom-Up-Approach|Bottom-Up-Approach]]
|
||||
last_updated: 2026-05-02
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Bottom-Up-Approach|Bottom-Up-Approach]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
> "작은 성공의 조립: 거창한 전체 계획부터 세우지 않고, 가장 구체적이고 당장 실행 가능한 작은 부품들을 먼저 만들어 검증한 뒤 이들을 연결하여 점진적으로 거대한 시스템을 완성하는 실용주의적 전략."
|
||||
|
||||
---
|
||||
@@ -18,7 +31,7 @@ last_updated: 2026-05-02
|
||||
|
||||
상향식 탐색(Bottom-Up Approach)은 데이터가 최종적으로 도달하거나 영속화되는 지점(예: 데이터베이스 스토리지), 혹은 개발자가 변경해야 하는 구체적인 코드 위치에서 시작하여 이를 호출하는 상위 함수나 클래스를 역추적하며 코드베이스를 이해하는 전략이다 [1, 2]. 이 방식은 주로 버그 수정, 성능 최적화, 부수 효과(Side effect) 분석 시 핵심적으로 활용되며, 작업에 필요한 종속성(Dependent graph)에만 집중하여 불필요한 코드 파악에 드는 시간을 줄여준다 [1, 2].
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
상향식 접근법(Bottom-Up-Approach)은 기초적인 요소들에서 시작하여 점차 상위 수준의 종합적인 시스템으로 나아가는 방식입니다.
|
||||
|
||||
1. **특징**:
|
||||
@@ -42,7 +55,7 @@ last_updated: 2026-05-02
|
||||
- **적용 시점과 장점**: 버그를 수정하거나, 성능을 최적화하고, 특정 수정 사항에 대한 부수 효과를 분석해야 할 때 가장 효과적이다 [2]. 본인이 작업하는 영역과 관련된 종속성만 파악하면 되므로, 개발자가 전혀 신경 쓸 필요 없는 시스템 상층부의 무관한 정보까지 학습해야 하는 인지적 과부하를 방지할 수 있다 [1]. 문서화되지 않은 소프트웨어를 다룰 때 변경이 필요한 특정 부분에만 집중하는 매우 실용적인 접근법이다 [3].
|
||||
- **하이브리드 전략 (Hybrid Strategy)**: 대규모 시스템을 완벽하게 그리기 위해 상향식 탐색은 단독으로 쓰이기보다 하향식 탐색(Top-down)과 혼합되어 사용된다 [4]. 하향식으로 비즈니스 의도와 전체 요청 흐름을 파악하고, 상향식으로 기술적인 한계를 확인하며 그 중간 지점에서 일관된 이해를 형성하는 과정이 필수적이다 [2, 4].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
- **과거 데이터와의 충돌**: 과거에는 완벽한 초기 설계(Top-down) 정책이 실패를 막는 유일한 길이라 믿었으나, 현대의 애자일 및 스타트업 정책은 빠른 실패와 학습이 가능한 '상향식 실행 정책'을 압도적으로 선호함(RL Update).
|
||||
- **정책 변화(RL Update)**: 지식 관리 정책(예: 이 Wiki)에서, 전체 카테고리부터 완벽히 짜는 대신 개별 지식 카드들을 먼저 풍성하게 주입하고 나중에 이들의 연결(Graph)을 통해 구조를 발견하는 '상향식 지식 생성 정책'이 채택됨 ([[Ps-Reinforce|Ps-Reinforce]] 핵심 철학).
|
||||
|
||||
@@ -54,7 +67,7 @@ last_updated: 2026-05-02
|
||||
|
||||
상향식 탐색은 변경해야 하는 코드와 기술적 제약 사항을 명확하고 효율적으로 파악할 수 있게 해주지만, 코드베이스 전체의 아키텍처나 고수준의 비즈니스 의도(Intent)를 즉각적으로 이해하기는 어렵다는 명확한 한계가 있다 [1, 4]. 상향식만 고집할 경우 큰 그림을 놓치고 지엽적인 기술 구현이나 물리적 제약에만 시야가 매몰될 수 있다 [2, 4]. 따라서 상향식으로 코드의 종속성을 파악한 이후에는, 시스템 최상위 디렉토리의 목적이나 비즈니스 맥락을 알고 있는 팀원에게 설명을 요청하거나 하향식 탐색을 병행하여 좁은 이해의 폭을 넓히고 보완하는 작업이 필요하다 [1, 4].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
## 🔗 지식 연결 (Graph)
|
||||
- [[Big-Picture|Big-Picture]], [[Analysis|Analysis]], [[Emergence|Emergence]], [[Agile-Philosophy|Agile-Philosophy]], [[Rapid-Prototyping|Rapid-Prototyping]]
|
||||
- **Modern Tech/Tools**: Component-based UI (React), Microservices, Modular [[Hardware|Hardware]].
|
||||
---
|
||||
@@ -140,3 +153,52 @@ last_updated: 2026-05-02
|
||||
|
||||
---
|
||||
*Last updated: 2026-05-02*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,20 +1,33 @@
|
||||
---
|
||||
category: Unified
|
||||
id: wiki-2026-0508-branded-types
|
||||
title: Branded Types
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [auto-consolidated, technical-documentation]
|
||||
title: [[Branded-Types|Branded-Types]] (브랜디드 타입)
|
||||
last_updated: 2026-05-02
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Branded-Types|Branded-Types]] (브랜디드 타입)
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
> "본질적으로 같은 `string`이라도, 유저 ID와 주문 ID는 엄격히 구분되어야 한다." 타입스크립트에 가짜 딱지를 붙여 '이름 기반 타입 시스템(Nominal Typing)'을 흉내 내는 고수의 기술이다.
|
||||
|
||||
---
|
||||
|
||||
> 브랜디드 타입(Branded Types) 또는 오파크 타입(Opaque Types)은 TypeScript의 구조적 타이핑([[Structural Typing|Structural Typing]]) 시스템 내에서 발생할 수 있는 의미론적 오류를 방지하기 위해 사용되는 디자인 패턴이다 [1, 2]. 컴파일 시점에만 존재하는 고유한 가상 속성이나 심볼을 타입에 부여하여, 런타임 구조가 동일한 타입이라도 명목적 타이핑(Nominal Typing) 효과를 내며 엄격히 구분되도록 강제한다 [2-4]. 이를 통해 사용자 ID와 주문 ID처럼 형태는 같지만 의미가 전혀 다른 데이터의 혼용을 막고, 시스템 내 데이터의 무결성을 안전하게 보호한다 [4-6].
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
- **Problem: [[Structural Typing|Structural Typing]]**:
|
||||
- 타입스크립트는 구조가 같으면 같은 타입으로 본다. `type UserId = string; type PostId = string;`일 때, 둘을 바꿔 써도 컴파일러는 잡지 못한다.
|
||||
- **[[Solution|Solution]]: Intersecting with Unique Tag**:
|
||||
@@ -42,7 +55,7 @@ last_updated: 2026-05-02
|
||||
* **대안 및 트레이드오프**
|
||||
브랜디드 타입은 프로그램의 안전성을 극대화하지만 동시에 코드베이스의 개념적 복잡성을 증가시키는 비용을 수반한다 [20, 21]. 따라서 단순하게 한정된 값의 집합을 나타내는 데이터라면 유니온(Unions), 열거형(Enums), 또는 템플릿 리터럴 타입(Template Literal Types) 등 언어에 이미 내장된 간단한 대체제를 사용하는 것이 유지 보수에 더 유리할 수 있다 [22-25].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
- 런타임에는 이 '낙인(Brand)'이 사라진다. 따라서 브랜디드 타입은 오직 컴파일 타임의 실수 방지용이다. 시스템이 매우 거대해져서 ID 값들이 혼동될 우려가 있는 엔터프라이즈급 프로젝트에서 그 가치가 증명된다.
|
||||
|
||||
---
|
||||
@@ -50,7 +63,7 @@ last_updated: 2026-05-02
|
||||
- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요.
|
||||
- **정책 변화:** Programming & Language 분야의 자동 자산화 수행.
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
## 🔗 지식 연결 (Graph)
|
||||
- Related: [[TypeScript_Type_Safety|TypeScript_Type_Safety]] , [[Branded-Types-for-Nominal-Typing|Branded-Types-for-Nominal-Typing]]
|
||||
- Foundation: [[클린 아키텍처 (Clean Architecture)|Clean-[[Architecture]]-TypeScript]]
|
||||
|
||||
@@ -64,3 +77,52 @@ last_updated: 2026-05-02
|
||||
*Last updated: 2026-04-18*
|
||||
|
||||
---
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,18 +1,94 @@
|
||||
---
|
||||
id: wiki-2026-0508-breaking-dependencies
|
||||
title: Breaking Dependencies
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [uncategorized]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Breaking Dependencies]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
'Breaking Dependencies(의존성 제거)'는 단위 테스트 작성을 방해하거나 시스템의 유연성을 저해하는 코드 간의 강한 결합을 끊어내는 리팩토링 과정이다 [1-3]. 주로 데이터베이스 연결이나 외부 서드파티 서버 호출과 같이 코드를 독립적으로 실행하기 어렵게 만드는 무거운 자원을 식별하고, 이를 가짜 객체(Mock) 등 가벼운 대체물로 교체하기 위해 수행된다 [1-3]. 이를 통해 개발자는 레거시 코드에 안전한 테스트를 추가하고, 궁극적으로 더 큰 규모의 리팩토링과 새로운 기능을 안전하게 추가할 수 있는 기반을 마련할 수 있다 [2, 4, 5].
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
* **레거시 코드 딜레마 극복의 핵심**: 레거시 코드를 안전하게 리팩토링하려면 테스트가 필수적이지만, 테스트를 작성하려면 먼저 코드를 수정해 복잡한 의존성을 끊어내야 하는 모순적인 상황에 직면하게 된다 [2, 6]. 단위 테스트 작성을 가로막는 문제의 99%는 의존성 문제(Dependency Problem)로 귀결되며, 외부 API 호출, 전역 의존성(Global Dependency), 혹은 생성하기 까다로운 매개변수 등이 이에 해당한다 [1, 7]. 의존성 제거는 이 딜레마를 돌파하는 첫 번째 관문이다 [2].
|
||||
* **접점(Seam)의 식별과 활용**: 의존성을 끊기 위해 개발자는 소스 코드를 직접 수정하지 않고도 프로그램의 동작을 변경할 수 있는 지점인 '접점(Seam)'을 찾아야 한다 [1, 2, 4]. 예를 들어, 객체 지향 언어에서는 문제가 되는 클래스를 확장(Extend)하여 테스트 환경에서 실제 DB에 연결되지 않도록 메서드의 동작을 덮어쓰는 방식을 취해 의존성을 우회할 수 있다 [8, 9].
|
||||
* **의존성 제거를 위한 구체적 기법들**: 마이클 페더스(Michael Feathers)는 안전하게 의존성을 끊어내기 위한 24가지의 '의존성 제거 기법(Dependency-Breaking Techniques)' 카탈로그를 제시한다 [10]. 여기에는 매개변수 적응시키기(Adapt Parameter), 메서드 객체 추출(Break Out Method Object), 인터페이스 추출(Extract Interface), 인스턴스 위임자 도입(Introduce Instance Delegator), 생성자/메서드 매개변수화(Parameterize Constructor/Method), 하위 클래스화 및 메서드 재정의(Subclass and Override Method) 등의 실용적인 패턴들이 포함된다 [11, 12].
|
||||
* **모듈 및 아키텍처 수준의 의존성 제거**: 의존성 분리는 단일 클래스나 메서드 단위의 테스트 목적을 넘어, 시스템 아키텍처를 개선하기 위해서도 사용된다. 윈도우(Windows) 리팩토링 사례에서는 여러 바이너리 간에 복잡하게 얽혀 있던 원치 않는 모듈 간 의존성(inter-module dependencies)을 끊어내기 위해 특정 API 기능을 다른 바이너리로 이동시키고 분할하는 시스템 규모의 리팩토링을 수행했다 [13, 14].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
* **코드의 미학적 손상**: 기존 코드에 단위 테스트를 적용하기 위해 의존성을 제거하는 과정에서, 불가피하게 임시적인 간접 계층이나 불필요해 보이는 메서드를 추가해야 할 수 있다. 이로 인해 리팩토링의 특정 단계에서는 코드가 이전보다 미학적으로 약간 더 지저분해지거나(uglier) 복잡해지는 제약이 발생한다 [15, 16].
|
||||
* **병적인 코드 베이스에서의 어려움**: 운이 좋다면 의존성이 작고 국소적으로 모여있지만, 코드가 심각하게 망가진 병적인(pathological) 시스템의 경우 의존성이 수없이 많고 코드 전반에 광범위하게 퍼져 있어 이를 끊어내는 과정 자체가 극도로 고통스럽고 오랜 시간이 소요될 수 있다 [5].
|
||||
* **전처리기 및 링커 접점의 부작용**: 객체 접점(Object Seams)을 사용할 수 없는 C/C++ 같은 언어에서 전처리기 매크로나 링커를 활용해 의존성을 끊는 방식(Preprocessing / Link Seams)은 테스트 환경과 프로덕션 환경의 차이를 불명확하게 만들어, 파악하기 힘든 까다로운 버그를 유발할 수 있다 [17, 18]. 이러한 방식은 테스트의 유지보수성도 저하시키므로 더 나은 대안이 없는 최후의 수단으로만 사용해야 한다 [19].
|
||||
|
||||
---
|
||||
*Last updated: 2026-05-03*
|
||||
*Last updated: 2026-05-03*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
|
||||
- **Parent:** [[10_Wiki/Topics]]
|
||||
- **Related:** *(TODO: 최소 2개)*
|
||||
- **Opposite / Trade-off:** *(TODO)*
|
||||
- **Raw Source:** 직접 입력
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,17 +1,29 @@
|
||||
---
|
||||
id: P-REINFORCE-WIKI-15DEEFAA
|
||||
category: Unified
|
||||
id: wiki-2026-0508-broker-topology
|
||||
title: Broker Topology
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: [P-REINFORCE-WIKI-15DEEFAA]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.95
|
||||
tags: ['broker-topology', 'event-driven-architecture', 'mediator-topology', 'choreography', 'message-broker', 'architecture-principles']
|
||||
tags: [broker-topology, event-driven-architecture, mediator-topology, choreography, message-broker, architecture-principles]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-02
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Broker Topology]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
Broker Topology(브로커 토폴로지)는 이벤트 기반 아키텍처(Event-Driven Architecture)를 구현하는 두 가지 주요 토폴로지 중 하나로, 중앙의 조정자(Orchestrator)나 메디에이터 없이 컴포넌트들이 비동기적으로 이벤트를 브로드캐스트하는 구조입니다 [1, 2]. 이 방식은 중앙 통제 대신 각 독립적인 이벤트 핸들러가 자율적으로 이벤트에 반응하는 형태(Choreography)를 취합니다 [2, 3]. 결합도가 매우 낮아 확장성과 반응성이 뛰어나며 단일 장애점을 최소화할 수 있지만, 복잡한 트랜잭션 관리와 워크플로우 제어에는 불리한 특성이 있습니다 [1-3].
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
* **핵심 구성 요소 (Core Components):**
|
||||
브로커 토폴로지는 주로 개시 이벤트(Initiating Event), 이벤트 브로커(Event Broker), 이벤트 채널(Event Channel), 이벤트 핸들러(Event Handler), 처리 이벤트(Processing Event) 등 5가지 요소로 구성됩니다 [1, 4]. 클라이언트가 이벤트를 발생시키면 이벤트 브로커의 특정 채널로 전달되고, 해당 채널을 수신하는 이벤트 핸들러들이 이벤트를 가져와 처리한 뒤, 다음 단계를 위한 새로운 처리 이벤트를 다시 브로커에 발행하는 연쇄적인 방식으로 동작합니다 [4].
|
||||
* **중앙 조정자의 부재 (Lack of Central Coordinator):**
|
||||
@@ -21,13 +33,12 @@ Broker Topology(브로커 토폴로지)는 이벤트 기반 아키텍처(Event-D
|
||||
* **최적의 사용 사례 (Best Use Cases):**
|
||||
이 토폴로지는 여러 단계의 복잡한 오케스트레이션(Orchestration)이 필요 없는 단순한 이벤트 스트림 처리에 가장 적합합니다 [8]. 예를 들어, 보안 시스템에서 침입 센서가 이벤트를 발생시키면 이를 직접 브로커로 전달하고, 경보 울림, 경찰 통보 등의 개별 프로세서가 이 알림에 비동기적으로 반응하는 시나리오 등에 효과적입니다 [9].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
* **복잡한 에러 처리 및 트랜잭션 복구의 한계:** 중앙에서 프로세스를 조정하는 요소가 없으므로, 여러 서비스에 걸친 분산 트랜잭션을 관리하기가 매우 위험하고 까다롭습니다 [2]. 중간 단계에서 오류가 발생하더라도 이를 인지하고 전체 프로세스를 재시작(Restart)하거나 재생(Replay)하는 내장 메커니즘이 부족하므로 수동 개입 전략이나 별도의 에러 핸들러 설계가 요구됩니다 [2, 5].
|
||||
* **데이터의 일관성 문제 (Data Inconsistency):** 모든 행위가 비동기적으로 분리되어 실행되기 때문에, 각 서브시스템이 이벤트를 처리하고 상태를 업데이트하는 속도가 다를 수 있습니다 [2, 10]. 이로 인해 일시적으로 서비스 간 데이터의 불일치가 발생하는 최종 일관성(Eventual Consistency) 모델을 감수해야 합니다 [2, 10].
|
||||
* **워크플로우 모니터링의 난해함:** 모든 처리가 개별 핸들러들의 자율적인 안무(Choreography) 방식으로 이루어지기 때문에, 비즈니스 워크플로우의 전체적인 진행 상황을 파악하거나 추적하기 어렵습니다 [3]. 이를 해결하기 위해 모든 이벤트에 상관 ID(Correlation ID)를 포함시켜 분산 추적(Distributed Tracing)을 가능하게 하는 부가적인 노력이 필수적입니다 [11].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
### Related Concepts
|
||||
|
||||
#### [아키텍처/기반 기술]
|
||||
@@ -67,4 +78,53 @@ Broker Topology(브로커 토폴로지)는 이벤트 기반 아키텍처(Event-D
|
||||
* 확장 방향: 마이크로서비스 간 느슨한 결합(Loose Coupling)을 실현하고 서비스 자율성을 부여하기 위한 내부 통신 수단으로서 브로커 토폴로지가 어떻게 접목되는지 탐구합니다 [10, 23].
|
||||
|
||||
---
|
||||
*Last updated: 2026-05-02*
|
||||
*Last updated: 2026-05-02*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,9 +1,21 @@
|
||||
---
|
||||
id: [[P-Reinforce|P-Reinforce]]-AUTO-BROW-001
|
||||
category: Unified
|
||||
id: wiki-2026-0508-browser
|
||||
title: Browser
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: [P-Reinforce-AUTO-BROW-001]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.95
|
||||
tags: [auto-reinforced, browser, web-access, rendering-engine, internet-infrastructure, client-side]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-04-20
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Browser|Browser]]
|
||||
@@ -21,7 +33,7 @@ last_reinforced: 2026-04-20
|
||||
2. **OS로서의 브라우저**:
|
||||
* 현대 브라우저는 단순한 문서 뷰어를 넘어, 오피스, 게임, AI 도구들이 실행되는 '온라인 운영체제' 역할을 수행함.
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & RL Update)
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
- **과거 데이터와의 충돌**: 과거 브라우저 정책은 단순 정보 조희(Read-only) 중심이었으나, 현대 정책은 사용자의 데이터 주권을 지키고 AI 에이전트가 직접 웹을 탐색하며 작업을 수행하는 '에이전틱 브라우징 정책'으로 진화함(RL Update).
|
||||
- **정책 변화(RL Update)**: 서드파티 쿠키 차단 정책(Cookieless) 등 개인정보 보호 정책이 강화됨에 따라, 브라우저가 사용자 익명성을 보장하는 동시에 광고 성과를 측정하는 새로운 추적 차단 정책과 표준이 수립됨.
|
||||
|
||||
@@ -29,3 +41,52 @@ last_reinforced: 2026-04-20
|
||||
- [[Backend|Backend]], [[API-Key-Management|API-Key-Management]], [[Availability-and-Persistence|Availability-and-Persistence]], [[Visual-Effects-VFX|Visual-Effects-VFX]], [[Technical-Architecture|Technical-Architecture]]
|
||||
- **Modern Tech/Tools**: [[Chrome|Chrome]], Firefox, Safari, [[Chromium|Chromium]]-based browsers, [[WebAssembly|WebAssembly]] (Wasm).
|
||||
---
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,17 +1,20 @@
|
||||
---
|
||||
id: P-REINFORCE-WIKI-ARCH-C4-MODEL
|
||||
title: "C4 모델 아키텍처 시각화 프레임워크"
|
||||
category: Unified
|
||||
id: wiki-2026-0508-c4-modeling-framework
|
||||
title: C4 Modeling Framework
|
||||
category: 10_Wiki/Topics
|
||||
status: verified
|
||||
canonical_id: ""
|
||||
aliases: ["C4 Model", "계층적 아키텍처 모델링", "시스템 시각화"]
|
||||
duplicate_of: ""
|
||||
canonical_id: self
|
||||
aliases: [P-REINFORCE-WIKI-ARCH-C4-MODEL, C4 Model, 계층적 아키텍처 모델링, 시스템 시각화]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 1.0
|
||||
tags: ["Architecture", "Modeling", "C4_Model", "Visualization", "Documentation"]
|
||||
raw_sources: ["Datacollector_Export_2026-05-02"]
|
||||
tags: [Architecture, Modeling, C4_Model, Visualization, Documentation]
|
||||
raw_sources: [Datacollector_Export_2026-05-02]
|
||||
last_reinforced: 2026-05-02
|
||||
github_commit: ""
|
||||
github_commit: pending
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[C4 모델 아키텍처 시각화 프레임워크]]
|
||||
@@ -43,3 +46,70 @@ C4 모델은 소프트웨어 아키텍처를 **컨텍스트(Context), 컨테이
|
||||
- **정보 상태**: 검증 완료 (Verified)
|
||||
- **출처 신뢰도**: A
|
||||
- **검토 이유**: 시스템 구조의 명확한 전달과 문서화를 위한 현대적 시각화 표준 정립.
|
||||
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
|
||||
> *(TODO: 한 문장으로 핵심 통찰을 작성. "X는 Y 조건에서 Z 효과를 낸다" 구조 권장.)*
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
|
||||
**추출된 패턴:**
|
||||
> *(TODO)*
|
||||
|
||||
**세부 내용:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
|
||||
- **과거 데이터와의 충돌:** 없음
|
||||
- **정책 변화:** 없음
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
|
||||
- **Parent:** [[10_Wiki/Topics]]
|
||||
- **Related:** *(TODO: 최소 2개)*
|
||||
- **Opposite / Trade-off:** *(TODO)*
|
||||
- **Raw Source:** 직접 입력
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,10 +1,21 @@
|
||||
---
|
||||
id: [[P-Reinforce|P-Reinforce]]-AUTO-40FA98
|
||||
category: Unified
|
||||
confidence_score: 0.90
|
||||
id: wiki-2026-0508-cad-렌더링-최적화
|
||||
title: CAD 렌더링 최적화
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: [P-Reinforce-AUTO-40FA98]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.9
|
||||
tags: [auto-reinforced]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-04-20
|
||||
github_commit: "[P-Reinforce] Continuous Worker - CAD 렌더링 최적화"
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[CAD 렌더링 최적화|CAD 렌더링 최적화]]
|
||||
@@ -20,7 +31,7 @@ github_commit: "[P-Reinforce] Continuous Worker - CAD 렌더링 최적화"
|
||||
- **LOD 및 엣지(Edge) 렌더링 최적화:** 부품을 정밀 검토할 때 시각적으로 튀는 팝핑(Popping) 현상을 막기 위해, 화면 공간 디더링 패턴(Dithered LOD Blend)을 활용한 매끄러운 형태의 LOD 전환 기법을 구현합니다 [7, 13]. 또한 CAD 도면 특유의 날카로운 모서리(Wireframe/Edge)를 표현하기 위해 `EdgesGeometry`를 사용하면 정점 부하가 2배로 늘어나므로, 무게 중심 좌표(Barycentric Coordinate)를 활용하여 단일 패스의 프래그먼트 셰이더 안에서 절차적으로 엣지를 렌더링하는 기법이 권장됩니다 [14, 15].
|
||||
- **자원 및 상태 관리 ([[State|State]] Management):** 수백 개의 색상을 표현하기 위해 개별 재질(Material)을 번갈아 쓰지 않고 '텍스처 아틀라스([[Texture Atlas|Texture Atlas]])'와 파트 ID를 활용해 셰이더 전환을 최소화해야 합니다 [16]. 아울러 배터리 소모와 발열을 막기 위해 변경 사항이 있을 때만 프레임을 업데이트하는 Render-on-Demand(요청 시 렌더링) 방식을 적용하며, 값비싼 물리 기반 렌더링(MeshStandardMaterial) 대신 `MeshPhongMaterial` 또는 'Flat Shaded + Edge' 커스텀 셰이더를 사용하여 프래그먼트 연산 비용을 아낍니다 [8, 17-19].
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & RL Update)
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요.
|
||||
- **정책 변화:** Programming & Language 분야의 자동 자산화 수행.
|
||||
|
||||
@@ -33,3 +44,52 @@ github_commit: "[P-Reinforce] Continuous Worker - CAD 렌더링 최적화"
|
||||
*Last updated: 2026-04-19*
|
||||
|
||||
---
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,6 +1,22 @@
|
||||
---
|
||||
id: architecture_ci_cd_redirect
|
||||
redirect: [[CI_CD_Pipeline]]
|
||||
id: wiki-2026-0508-ci-cd
|
||||
title: CI CD
|
||||
category: 10_Wiki/Topics
|
||||
status: merged
|
||||
redirect_to: CI_CD_Pipeline
|
||||
canonical_id: CI_CD_Pipeline
|
||||
aliases: [architecture_ci_cd_redirect]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [uncategorized]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# Redirect
|
||||
|
||||
@@ -1,20 +1,33 @@
|
||||
---
|
||||
category: Unified
|
||||
id: wiki-2026-0508-cst
|
||||
title: CST
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [auto-consolidated, technical-documentation]
|
||||
title: [[CST (구체 구문 트리)|CST (구체 구문 트리]]
|
||||
last_updated: 2026-05-02
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[CST (구체 구문 트리)|CST (구체 구문 트리]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
> CST(구체 구문 트리) 또는 파스 트리(parse tree)는 문맥 자유 문법(context-free grammar)의 트리 표현으로, 컴파일러가 코드를 어떻게 이해하는지 보여주는 공식적인 표현 방식입니다 [1]. AST(추상 구문 트리)와 달리 포괄적인 구문 요소뿐만 아니라 미세한 문체, 어휘 및 레이아웃(공백, 들여쓰기 등)의 세부 사항까지 코드의 모든 측면을 정밀하게 포착하여 계층적 구조로 렌더링합니다 [2]. 이러한 특징으로 인해 코드 서식 지정이나 축소 등 레이아웃의 변화를 감지할 수 있어 프로그래머의 코딩 스타일을 분석하고 작성자를 식별하는 코드 스타일로메트리(Code stylometry)에 유용하게 활용됩니다 [3, 4].
|
||||
|
||||
---
|
||||
|
||||
> 소스 코드의 문법적 구조를 생략 없이 문자 그대로 담아내어, 텍스트와 의미 사이의 가교 역할을 하는 정밀한 기록.
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
* **정의 및 구조**
|
||||
CST는 주어진 문맥 자유 문법에 기반한 순서 트리(ordered tree)로, 루트(root), 비단말(Non-terminal) 노드, 단말(Terminal) 노드로 구성되어 컴파일러가 코드를 해석하는 계층적인 구조를 시각화합니다 [1, 2, 5]. 트리의 각 노드는 클래스 정의, 함수 정의 또는 변수 할당과 같은 명확한 코드 구성 요소와 연결됩니다 [2].
|
||||
|
||||
@@ -32,7 +45,7 @@ last_updated: 2026-05-02
|
||||
- 서식 보존 리팩토링(Fidelity-preserving Refactoring) 도구의 근간.
|
||||
- 파서 생성기(ANTLR 등)에서 소스 코드의 물리적 배치를 분석할 때 활용.
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요.
|
||||
- **정책 변화:** Programming & Language 분야의 자동 자산화 수행.
|
||||
|
||||
@@ -41,7 +54,7 @@ last_updated: 2026-05-02
|
||||
- **과거 데이터와의 충돌:** 효율성을 위해 세부 정보를 생략하는 AST와 정보량 측면에서 상보적 관계를 형성.
|
||||
- **정책 변화:** 지식 연결성(w2) 관점에서 AST 문서와 1:1 비교 분석 구도 형성.
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
## 🔗 지식 연결 (Graph)
|
||||
- **Related Topics:** [[AST (추상 구문 트리)|AST (추상 구문 트리]], 코드 스타일로메트리 (Code Stylometry), 코드 포매팅 (Code Formatting), [[코드 축소 (Code minification)|코드 축소 (Code Minification]]
|
||||
- **Projects/Contexts:** [[코드 서식 지정과 축소가 코드 스타일로메트리(작성자 인식)에 미치는 영향을 평가하는 기계 학습 모델 분류 연구|코드 서식 지정과 축소가 코드 스타일로메트리(작성자 인식)에 미치는 영향을 평가하는 기계 학습 모델 분류 연구]]
|
||||
- **Contradictions/Notes:** 소스에 관련된 모순된 정보는 없으며, 기존의 주류 문헌들이 코드 표상을 위해 주로 AST를 사용하는 것에서 벗어나, 서식 지정과 축소에 따른 표면적 변화를 측정하기 위해 CST의 사용이 필수적이었다는 점을 강조합니다 [4].
|
||||
@@ -56,3 +69,52 @@ last_updated: 2026-05-02
|
||||
- **Parent:** 10_Wiki/💡 Topics/Coding
|
||||
- **Related:** [[AST_Traversal|AST_Traversal]], Parser, [[Formatting|Formatting]]-Tools
|
||||
- **Raw Source:** 00_Raw/2026-04-20/[[Concrete Syntax Tree (CST)|Concrete Syntax Tree (CST]].md
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,20 +1,33 @@
|
||||
---
|
||||
category: Unified
|
||||
id: wiki-2026-0508-call-stack
|
||||
title: Call Stack
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [auto-consolidated, technical-documentation]
|
||||
title: [[Call Stack|Call Stack]]
|
||||
last_updated: 2026-05-02
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Call Stack|Call Stack]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
> "함수들이 쌓아 올리는 기억의 탑: 프로그램이 어떤 순서로 함수를 호출해왔는지, 함수가 끝나면 어디로 돌아가야 하는지를 관리하는 '후입선출(LIFO)' 방식의 지능형 작업 일지이자 메모리 영역."
|
||||
|
||||
---
|
||||
|
||||
호출 스택(Call Stack)은 복잡한 소프트웨어 시스템의 코드베이스를 읽고 런타임 흐름을 추적할 때 유용하게 쓰이는 개념입니다 [1, 2]. 하향식(Top-down) 코드 분석 시, 시스템의 최상위 진입점에서 시작하여 호출 스택을 따라 내려감으로써 비즈니스 로직이 어떻게 오케스트레이션되는지 파악할 수 있습니다 [3]. 또한, 디버거의 중단점(Breakpoints)과 함께 사용하면 실행 시점의 호출 스택과 변수 값을 실시간으로 관찰하여 정적 읽기만으로는 알 수 없는 시스템의 동적인 특성을 깊이 이해할 수 있습니다 [4].
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
콜 스택(Call Stack)은 컴퓨터 프로그램의 현재 실행 중인 서브루틴(함수)들에 대한 정보를 저장하는 스택 자료구조입니다.
|
||||
|
||||
1. **동작 메커니즘**:
|
||||
@@ -30,7 +43,7 @@ last_updated: 2026-05-02
|
||||
- **동적 특성 파악과 런타임 분석:** 정적인 코드 읽기만으로는 파악하기 어려운 런타임 흐름을 이해하려면 디버깅 도구를 통한 호출 스택 분석이 필수적입니다 [2, 4]. IDE 등의 중단점을 활용하면, 단순한 로그만 사용할 때보다 호출 스택이나 변수 값 변화에 대한 훨씬 더 많은 정보를 실시간으로 얻을 수 있습니다 [2, 4].
|
||||
- **새로운 코드베이스 학습 및 버그 추적:** 완전히 낯선 코드베이스에 접근할 때, 재현 가능한 간단한 버그를 찾고 이를 유발하는 호출 스택을 추적해 보는 것이 시스템을 구조적으로 파악하는 훌륭한 학습 방법이 됩니다 [1].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
- **과거 데이터와의 충돌**: 과거의 스택 정책은 단순히 '순차 실행'을 관리하는 정적 정책이었으나, 현대 자바스크립트 등 비동기 언어 정책에서는 '이벤트 루프(Event Loop)' 및 '마이크로태스크 큐'와 상호작용하며 복잡한 비동기 흐름을 관리하는 동적 정책으로 이해됨(RL Update).
|
||||
- **정책 변화(RL Update)**: 브라우저 성능 최적화 정책에서, 메인 스레드 점유 정책([[Main Thread|Main Thread]] [[Blocking|Blocking]])을 막기 위해 콜 스택을 너무 무겁게 유지하지 않고 작업을 쪼개는 '비동기 스택 정책'이 웹 앱 성능의 핵심 지표가 됨. (Blocking과 연결)
|
||||
|
||||
@@ -40,7 +53,7 @@ last_updated: 2026-05-02
|
||||
- **인지적 미아 현상과 시간 낭비:** 대규모 시스템에서 버그를 해결하거나 코드를 이해하기 위해 호출 스택을 무작정 따라가다 보면 깊은 계층 속에서 길을 잃고 헤매기 쉽습니다 [1].
|
||||
- **타임박싱(Timeboxing)의 필요성:** 이와 같은 문제를 방지하기 위해, 호출 스택을 추적할 때는 반드시 추적 시간을 제한(Timebox)해야 합니다 [1]. 일정 시간 내에 파악하지 못하고 길을 잃었다면 무리하지 말고 코드베이스에 지식이 있는 사람에게 즉시 도움을 요청하는 것이 바람직합니다 [1].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
## 🔗 지식 연결 (Graph)
|
||||
- [[Blocking|Blocking]], [[Analysis|Analysis]], [[Technical-Architecture|Technical-Architecture]], Memory-Management, Recursion
|
||||
- **Modern Tech/Tools**: [[Chrome DevTools|Chrome DevTools]] Call Stack view, [[V8 Engine|V8 Engine]] stack management.
|
||||
---
|
||||
@@ -85,3 +98,52 @@ last_updated: 2026-05-02
|
||||
|
||||
---
|
||||
*Last updated: 2026-05-02*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,17 +1,20 @@
|
||||
---
|
||||
id: P-REINFORCE-WIKI-DEV-CALL-STACK-ANALYSIS
|
||||
title: "호출 스택 분석과 런타임 흐름 추적 (Call Stack Analysis)"
|
||||
category: Unified
|
||||
id: wiki-2026-0508-call-stack-analysis
|
||||
title: Call Stack Analysis
|
||||
category: 10_Wiki/Topics
|
||||
status: verified
|
||||
canonical_id: ""
|
||||
aliases: ["호출 스택", "Call Stack", "스택 트레이스", "런타임 추적", "디버깅 흐름"]
|
||||
duplicate_of: ""
|
||||
canonical_id: self
|
||||
aliases: [P-REINFORCE-WIKI-DEV-CALL-STACK-ANALYSIS, 호출 스택, Call Stack, 스택 트레이스, 런타임 추적, 디버깅 흐름]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 1.0
|
||||
tags: ["Debugging", "Runtime", "Analysis", "Architecture", "Onboarding"]
|
||||
raw_sources: ["Datacollector_Export_2026-05-02"]
|
||||
tags: [Debugging, Runtime, Analysis, Architecture, Onboarding]
|
||||
raw_sources: [Datacollector_Export_2026-05-02]
|
||||
last_reinforced: 2026-05-02
|
||||
github_commit: ""
|
||||
github_commit: pending
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[호출 스택 분석과 런타임 흐름 추적 (Call Stack Analysis)]]
|
||||
@@ -44,3 +47,70 @@ github_commit: ""
|
||||
- **정보 상태**: 검증 완료 (Verified)
|
||||
- **출처 신뢰도**: A
|
||||
- **검토 이유**: 시스템의 실행 흐름을 정밀하게 분석하고 런타임 결함을 신속하게 진단하기 위한 기술적 분석 표준 정립.
|
||||
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
|
||||
> *(TODO: 한 문장으로 핵심 통찰을 작성. "X는 Y 조건에서 Z 효과를 낸다" 구조 권장.)*
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
|
||||
**추출된 패턴:**
|
||||
> *(TODO)*
|
||||
|
||||
**세부 내용:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
|
||||
- **과거 데이터와의 충돌:** 없음
|
||||
- **정책 변화:** 없음
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
|
||||
- **Parent:** [[10_Wiki/Topics]]
|
||||
- **Related:** *(TODO: 최소 2개)*
|
||||
- **Opposite / Trade-off:** *(TODO)*
|
||||
- **Raw Source:** 직접 입력
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,9 +1,29 @@
|
||||
---
|
||||
id: wiki-2026-0508-characterization-tests-특성화-테스트
|
||||
title: Characterization Tests (특성화 테스트)
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [uncategorized]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Characterization Tests (특성화 테스트)]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
캐릭터리제이션 테스트(특성화 테스트)는 코드가 '무엇을 해야 하는지'가 아니라 '실제로 무엇을 하는지' 현재의 동작을 그대로 캡처하고 기록하는 테스트 기법이다 [1, 2]. 주로 테스트가 없는 난해한 레거시 코드(Legacy Code)에 빠르고 효과적으로 안전망(Safety net)을 구축하여, 코드를 안전하게 리팩토링할 수 있도록 돕는 데 사용된다 [1, 2].
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
* **현재 동작의 캡처 (Capturing Current Behavior):**
|
||||
포괄적인 단위 테스트(Comprehensive Unit Tests)를 작성하여 기대하는 결과를 검증하는 대신, 기존 코드의 현재 동작 상태에 대한 스냅샷(Snapshot)을 찍어 특성화한다 [1].
|
||||
* **실제 동작의 우선성:**
|
||||
@@ -13,13 +33,12 @@
|
||||
* **리팩토링을 위한 빠르고 든든한 안전망:**
|
||||
테스트가 없고 코드를 이해하기조차 어려운 상황에서, 개발자는 이 테스트를 통해 레거시 코드를 빠르게 커버하고 리팩토링을 시작하기 위한 1차적인 안전망을 확보할 수 있다 [2].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
* **의도된 로직의 올바름을 검증하지 않음:** 캐릭터리제이션 테스트는 코드의 현재 동작을 그대로 기록(Snapshot)하여 그것이 변하지 않았는지를 확인하는 데 목적이 있다 [1, 2]. 즉, 코드가 논리적으로 올바르게 작성되었는지 검증하는 것이 아니며, 기존 코드에 버그가 있다면 그 버그가 포함된 동작 자체를 정상 기준으로 삼아 캡처하게 된다는 제약이 있다 [2].
|
||||
* **단위 테스트의 완벽한 대체재가 아님:** 이 테스트는 코드를 이해하기 어렵거나 시간이 부족할 때 안전하게 리팩토링을 수행하기 위한 수단(Safety net)으로 사용된다 [1, 2]. 시스템의 개별 컴포넌트를 설계적 관점에서 고립시켜 검증하는 전통적인 포괄적 단위 테스트(Unit Tests)를 완전히 대체하는 것은 아니다 [1].
|
||||
* 그 외 캐릭터리제이션 테스트의 구체적인 부작용이나 최적화 시 발생할 수 있는 기술적 반대 급부(Trade-off)에 대해서는 **소스에 관련 정보가 부족합니다.** (단지 도입을 위한 휴리스틱 등이 목차 수준에서만 언급됨 [4]).
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
### Related Concepts
|
||||
|
||||
#### [레거시 코드 제어 (Legacy Code Control)]
|
||||
@@ -55,4 +74,53 @@
|
||||
- 확장 방향: 레거시 코드에 캐릭터리제이션 테스트조차 작성할 시간이 부족하거나 클래스가 너무 거대할 때, 기존 코드를 직접 수정하지 않고 완전히 분리된 위치에 새로운 테스트 가능한 코드를 싹 틔우거나(Sprout), 기존 메서드를 감싸서(Wrap) 새 로직을 안전하게 추가하는 우회 기법으로 확장이 가능하다 [9-11].
|
||||
|
||||
---
|
||||
*Last updated: 2026-05-03*
|
||||
*Last updated: 2026-05-03*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,29 +1,40 @@
|
||||
---
|
||||
id: P-REINFORCE-WIKI-8AE6A842
|
||||
category: Unified
|
||||
id: wiki-2026-0508-choreography
|
||||
title: Choreography
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: [P-REINFORCE-WIKI-8AE6A842]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.95
|
||||
tags: ['choreography', 'broker-topology', 'event-driven-architecture', 'saga-pattern', 'mediator-topology', 'architecture-principles']
|
||||
tags: [choreography, broker-topology, event-driven-architecture, saga-pattern, mediator-topology, architecture-principles]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-02
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Choreography]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
Choreography(안무)는 중앙 집중식 조정자(Central Coordinator)나 오케스트레이터 없이, 시스템의 구성 요소들이 자율적으로 서로 이벤트를 주고받으며 전체 워크플로우 흐름을 제어하는 방식입니다 [1, 2]. 주로 이벤트 기반 아키텍처(Event-Driven Architecture)의 브로커 토폴로지(Broker Topology)에서 활용되며, 마이크로서비스와 같은 분산 시스템 환경에서 서비스 간의 메시지 흐름을 안정적으로 관리하기 위해 Saga 패턴과 함께 사용되기도 합니다 [2, 3]. 각 컴포넌트가 독립적으로 반응하므로 결합도가 낮고 확장성과 반응성이 매우 뛰어나다는 특징을 가집니다 [1, 2].
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
* **자율적인 이벤트 흐름 제어**: Choreography 방식에서는 이벤트를 관리하고 통제하는 중앙의 이벤트 메디에이터(Mediator)가 존재하지 않습니다 [1, 2]. 대신, 구성 요소(서비스)가 시스템 전체에 이벤트를 브로드캐스트하면, 다른 구성 요소들이 이를 자율적으로 감지하여 처리하거나 무시하는 방식으로 동작합니다 [1].
|
||||
* **브로커 토폴로지(Broker Topology)와의 결합**: 이벤트 기반 아키텍처의 흐름 제어 방식 중 하나인 브로커 토폴로지의 근본적인 동작 원리가 바로 이 안무(Choreography) 방식입니다 [2]. 복잡한 중앙 오케스트레이션 없이, 다수의 서비스 간에 메시지를 발행 및 구독하는 과정을 통해 전체 워크플로우를 완수합니다 [1, 3].
|
||||
* **높은 비결합성(Decoupling) 및 시스템 확장성**: 중앙 통제가 없기 때문에 특정 컴포넌트가 전체 비즈니스 트랜잭션의 상태를 단독으로 소유하거나 알지 못합니다 [1]. 이로 인해 구성 요소 간의 결합도가 매우 낮게(Highly decoupled) 유지되며, 독립적인 컴포넌트의 확장성, 시스템의 빠른 응답성, 그리고 개별 모듈의 내결함성(Fault tolerance)이 크게 향상됩니다 [1, 2].
|
||||
* **Saga 패턴을 통한 분산 트랜잭션 관리**: 여러 서비스에 걸쳐 있는 비즈니스 프로세스에서 일관된 결과를 얻기 위해 Choreography 방식은 Saga 패턴과 결합하여(Choreographed Saga) 분산 명령과 메시지 흐름을 관리하는 데 사용됩니다 [3, 4].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
* **에러 파악 및 복구의 어려움**: 중앙에서 워크플로우를 제어하지 않으므로 전체적인 프로세스 흐름을 한눈에 파악하기 어렵습니다. 또한 오류가 발생했을 때 이를 추적하고 자동으로 복구하는 메커니즘을 구현하는 것이 매우 까다롭습니다 [2, 5].
|
||||
* **분산 트랜잭션의 내재적 위험성**: 시스템에 실패한 작업을 재시작하거나 재실행(Replaying)하는 메커니즘이 기본적으로 내장되어 있지 않기 때문에 분산 트랜잭션 관리에 위험이 따릅니다 [1]. 따라서 오류 처리를 위한 수동 개입(Manual intervention) 전략을 반드시 신중하게 고려해야 합니다 [1].
|
||||
* **데이터 일관성(Data Inconsistency) 문제**: 컴포넌트들이 비동기적으로 자율 동작하는 구조 특성상, 일시적으로 시스템 내 데이터 불일치가 발생할 수 있는 주요 원인이 되기도 합니다 [1].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
### Related Concepts
|
||||
|
||||
#### [아키텍처 토폴로지 및 패턴]
|
||||
@@ -65,4 +76,53 @@ Choreography(안무)는 중앙 집중식 조정자(Central Coordinator)나 오
|
||||
- 확장 방향: Choreography 패턴이 시스템 간 상호작용을 수행하는 핵심 통신 메커니즘으로, 동기적 통신 방식과의 차이점 및 메시지 큐 시스템의 활용 원리로 학습을 확장할 수 있습니다 [11].
|
||||
|
||||
---
|
||||
*Last updated: 2026-05-02*
|
||||
*Last updated: 2026-05-02*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -0,0 +1,96 @@
|
||||
---
|
||||
id: wiki-2026-0508-code-refactoring
|
||||
title: Code Refactoring
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: [P-REINFORCE-AUTO-WIKI-DEV-002]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.95
|
||||
tags: [development, refactoring, code-quality, maintainability, technical-debt, p-reinforce]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-01
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Code Refactoring]]
|
||||
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
> "시스템의 겉보기 동작(Behavior)은 유지한 채 내부 구조를 개선하여, 인간에게는 더 읽기 쉽고 시스템에게는 더 변화에 유연하게 만드는 지속적인 코드 정제 작업."
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
리팩토링은 기술 부채를 관리하고 소프트웨어의 생명력을 유지하는 핵심 활동입니다.
|
||||
|
||||
1. **목적의 분리 (Separation of Concerns)**:
|
||||
* **기능 추가와 리팩토링의 분리**: 새로운 기능 구현과 코드 구조 개선은 반드시 별도의 풀 리퀘스트(PR)로 진행해야 합니다. 섞일 경우 리뷰어의 인지 부하가 급증하고 검증의 정확도가 떨어집니다.
|
||||
* **스타일 수정의 독립성**: 포맷팅이나 명칭 변경과 같은 리팩토링도 기능 변경과 섞지 않는 것이 원칙입니다.
|
||||
2. **안전망 확보**:
|
||||
* 리팩토링의 전제 조건은 견고한 **자동화 테스트**입니다. 로직 개선 후에도 기존 기능이 완벽히 작동함을 증명할 수 있어야 합니다.
|
||||
3. **효율적 전략**:
|
||||
* 대규모 리팩토링은 한 번에 처리하기보다 200~400줄 단위로 잘게 쪼개어(Decomposition) 단계적으로 진행하는 것이 리뷰 품질과 속도 면에서 유리합니다.
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
- **리뷰 지연의 부작용**: 코드 리뷰 프로세스가 너무 느리면 개발자들은 리팩토링이나 코드 정리를 기피하게 되어 장기적으로 기술 부채가 누적됩니다. 빠른 리뷰 피드백 루프가 건강한 리팩토링 문화를 만듭니다.
|
||||
- **사후 비용 vs 사전 설계**: 개발 완료 후의 리팩토링은 비용이 많이 듭니다. 아키텍처 리뷰를 통한 사전 설계 검토(Shift-Left)가 대규모 리팩토링을 예방하는 가장 효율적인 정책입니다.
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
- [[Technical Debt]]: 리팩토링이 상환하고자 하는 비용.
|
||||
- [[Automated Testing]]: 리팩토링을 가능하게 하는 안전망.
|
||||
- [[Code Health]]: 리팩토링의 궁극적인 지향점.
|
||||
- [[Single-purpose PR]]: 리팩토링 시 준수해야 할 PR 정책.
|
||||
- [[Architecture Review]]: 대규모 리팩토링을 예방하는 선제적 대응.
|
||||
---
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,3 +1,23 @@
|
||||
---
|
||||
id: wiki-2026-0508-combat-timeline-difficulty-scali
|
||||
title: Combat Timeline Difficulty Scaling
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [uncategorized]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# 📈 Combat Timeline & Difficulty Scaling (전투 타임라인 및 난이도 조절 시스템)
|
||||
|
||||
> **카테고리**: Skybound, Game Design, Software Architecture
|
||||
@@ -40,8 +60,74 @@ Skybound의 전투 시스템은 단순히 무작위로 적을 생성하는 것
|
||||
**승인인**: AI 개발부장 코다리 🫡
|
||||
**관련 코드**: `StageDirectorSystem.ts`, `SpawnerSystem.ts`, `CombatTimeline.ts`
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
## 🔗 지식 연결 (Graph)
|
||||
### Related Concepts (Auto-Linked)
|
||||
* [[Architecture]]
|
||||
* [[Principles]]
|
||||
* [[Software_Architecture]]
|
||||
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
|
||||
> *(TODO: 한 문장으로 핵심 통찰을 작성. "X는 Y 조건에서 Z 효과를 낸다" 구조 권장.)*
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
|
||||
**추출된 패턴:**
|
||||
> *(TODO)*
|
||||
|
||||
**세부 내용:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
|
||||
- **과거 데이터와의 충돌:** 없음
|
||||
- **정책 변화:** 없음
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,14 +1,26 @@
|
||||
---
|
||||
id: P-REINFORCE-WIKI-CD492DA6
|
||||
category: Unified
|
||||
id: wiki-2026-0508-complex-event-processing-cep
|
||||
title: Complex Event Processing (CEP)
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: [P-REINFORCE-WIKI-CD492DA6]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.95
|
||||
tags: ['complex-event-processing-(cep)', 'event-driven-architecture', 'simple-event-processing', 'event-stream-processing', 'internet-of-things-(iot)', 'architecture-principles']
|
||||
tags: [complex-event-processing-(cep), event-driven-architecture, simple-event-processing, event-stream-processing, internet-of-things-(iot), architecture-principles]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-02
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Complex Event Processing (CEP)]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
Complex Event Processing (CEP)는 다수의 단순하거나 일상적인 이벤트의 패턴을 분석하여, 보다 복잡한 이벤트가 발생했음을 추론하고 평가하는 이벤트 처리 방식이다 [1]. 인과적, 시간적, 공간적 상관관계를 바탕으로 여러 이벤트의 융합을 파악한 후 적절한 조치를 취하는 데 사용된다 [1]. 시간 창(time window)에 걸친 데이터 집계 및 패턴 매칭 등 실시간으로 고도화된 이벤트 처리가 요구될 때 핵심적인 역할을 한다 [2].
|
||||
|
||||
## 📖 Core 소스에 기반한 Core Content
|
||||
@@ -18,12 +30,11 @@ CEP는 성숙한 이벤트 기반 아키텍처(Event-Driven Architecture)에서
|
||||
* **다차원적 상관관계 분석:** 이벤트 간의 상관관계는 인과적(causal), 시간적(temporal), 또는 공간적(spatial)일 수 있다 [1]. 여러 이벤트의 융합을 평가하여 복잡한 이벤트를 추론하며, 이를 위해 정교한 이벤트 해석기(interpreter), 이벤트 패턴 정의 및 매칭, 그리고 상관관계 기법의 적용이 필수적이다 [1].
|
||||
* **주요 활용 목적:** 주로 시스템이나 비즈니스상의 이상 징후(anomalies), 위협(threats), 그리고 기회(opportunities)를 감지하고 이에 즉각적으로 대응하기 위해 사용된다 [1].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
* **제약 사항 및 기술적 복잡성:** CEP는 단순한 이벤트 처리와 달리, 복잡한 인과적/시간적/공간적 상관관계를 분석해야 하므로 정교한 이벤트 인터프리터와 이벤트 패턴 정의, 매칭 및 상관관계 분석 기술을 반드시 구현하고 도입해야 한다는 기술적 부담이 존재한다 [1].
|
||||
* **적합성의 한계:** 패턴 매칭이나 시간 단위의 데이터 집계와 같이 고도화된 복잡한 이벤트 처리가 필요한 경우에 적합하며 [2], 이러한 처리 방식이 불필요한 단순한 워크플로우를 가진 시스템에서는 아키텍처의 운영 오버헤드와 복잡성만 가중시킬 위험이 있다 [5].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
### Related Concepts
|
||||
|
||||
#### [관계 유형 A (아키텍처/기반 기술)]
|
||||
@@ -60,4 +71,61 @@ CEP는 성숙한 이벤트 기반 아키텍처(Event-Driven Architecture)에서
|
||||
* 확장 방향: 다수의 마이크로서비스 간에 독립적으로 발생하는 이벤트를 조합하여, 분산된 비즈니스 트랜잭션 내에서 발생하는 복잡한 흐름(Saga 패턴 등)을 어떻게 추적하고 패턴화할 수 있는지로 이해를 넓힐 수 있다 [8].
|
||||
|
||||
---
|
||||
*Last updated: 2026-05-02*
|
||||
*Last updated: 2026-05-02*
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
|
||||
**추출된 패턴:**
|
||||
> *(TODO)*
|
||||
|
||||
**세부 내용:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,20 +1,33 @@
|
||||
---
|
||||
category: Unified
|
||||
id: wiki-2026-0508-complexity-theory
|
||||
title: Complexity Theory
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [auto-consolidated, technical-documentation]
|
||||
title: [[Complexity Theory|Complexity Theory]]
|
||||
last_updated: 2026-05-02
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Complexity Theory|Complexity Theory]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
> "전체는 부분의 합보다 크다: 개별 요소들은 단순해 보이더라도, 이들이 얽히고설켜 상호작용할 때 발생하는 예측 불가능하고 비선형적인 패턴인 '복잡성'을 연구하는 현대 과학의 새로운 눈."
|
||||
|
||||
---
|
||||
|
||||
> "문제의 본질적 난이도를 측정하고, 계산 가능성의 경계를 설정하라" — 문제를 해결하는 데 필요한 자원(시간, 공간)의 양에 따라 문제들을 분류하고, 현실적으로 해결 가능한 문제와 불가능한 문제를 구분하는 전산학의 핵심 이론.
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
복잡계 이론(Complexity Theory)은 수많은 구성 요소가 서로 밀접하게 연관되어 질서와 혼돈 사이의 독특한 패턴을 만들어내는 시스템을 탐구합니다.
|
||||
|
||||
1. **핵심 개념**:
|
||||
@@ -35,7 +48,7 @@ last_updated: 2026-05-02
|
||||
- **P vs NP:** 현대 전산학 최대의 난제. "확인이 쉬운 문제는 해결도 쉬운가?"에 대한 질문.
|
||||
- **의의:** 암호학(해독하기 힘든 문제 설계)과 대규모 데이터 처리 알고리즘 설계의 이론적 기반.
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
- **과거 데이터와의 충돌**: 과거의 과학 정책은 문제를 쪼개서 분석하는 '환원주의 정책'이었으나, 현대 정책은 쪼개면 사라지는 시스템 전체의 성질을 분석하는 '전체론적 복잡계 정책'으로 패러다임을 전환함(RL Update).
|
||||
- **정책 변화(RL Update)**: 거대 AI 모델의 '창발 능력 정책'을 예측하고 제어하기 위해, 단순 성능 측정을 넘어 복잡계 이론을 적용한 '상전이(Phase Transition) 분석 정책'이 도입되고 있음.
|
||||
|
||||
@@ -44,7 +57,7 @@ last_updated: 2026-05-02
|
||||
- **과거 데이터와의 충돌:** 초기에는 '정답'을 찾는 알고리즘에 집중했으나, 복잡성 이론의 발달로 인해 완벽한 정답 대신 '근사해'를 찾는 휴리스틱의 정당성이 확보됨.
|
||||
- **정책 변화:** Antigravity 프로젝트는 에이전트의 작업 계획 수립 시, 해당 태스크가 NP-hard 수준의 복잡도를 가지는지 판단하여 전수 조사 대신 탐색 위주의 전략을 채택함.
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
## 🔗 지식 연결 (Graph)
|
||||
- [[Emergence|Emergence]], [[Systems Thinking|Systems Thinking]], [[Collective-Intelligence|Collective-Intelligence]], Chaos Theory, [[Analysis|Analysis]]
|
||||
- **Modern Tech/Tools**: Agent-based modeling (NetLogo), Network [[Analysis|Analysis]] software,[[_system|system]] dynamics tools.
|
||||
---
|
||||
@@ -53,3 +66,52 @@ last_updated: 2026-05-02
|
||||
|
||||
- [[Algorithm-Complexity-Big-O|Algorithm-Complexity-Big-O]], [[Combinatorial-Optimization|Combinatorial-Optimization]], Turing-Machine-Foundations, Cryptography
|
||||
- **Raw Source:** 10_Wiki/Topics/AI/Complexity-Theory.md
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,9 +1,29 @@
|
||||
---
|
||||
id: wiki-2026-0508-component-library-architecture
|
||||
title: Component Library Architecture
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [uncategorized]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Component Library Architecture|Component Library Architecture]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
컴포넌트 라이브러리 아키텍처는 확장 가능하고 유지보수가 용이한 프론트엔드 애플리케이션을 구축하기 위해 재사용 가능한 UI 컴포넌트를 설계하고 조직화하는 구조적 접근 방식입니다 [1, 2]. 이는 단순한 시각적 요소를 넘어, 컴포넌트 간의 상태 공유, 로직 분리, 아키텍처 패턴을 활용하여 일관성 있는 시스템을 구현하는 것을 목표로 합니다 [3-5]. 잘 설계된 아키텍처는 과도한 상태 전달([[Prop Drilling|Prop Drilling]])을 방지하고 높은 유연성을 제공하여 끊임없이 변화하는 제품 요구사항에 안전하게 대처할 수 있게 합니다 [1, 6-8].
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
* **아토믹 디자인([[Atomic Design|Atomic Design]]) 방법론:** UI를 원자(Atoms), 분자(Molecules), 유기체(Organisms), 템플릿(Templates), 페이지(Pages) 등 5단계의 계층으로 나누어 구조화하는 멘탈 모델입니다 [2, 9, 10]. 이는 디자인 시스템의 일관성을 촉진하지만, 복잡한 비즈니스 로직과 결합될 때는 UI 라이브러리에만 아토믹 구조를 적용하고 애플리케이션 코드는 기능(Feature) 기반으로 분리하여 비즈니스 로직을 캡슐화하는 하이브리드 방식이 주로 권장됩니다 [11, 12].
|
||||
* **복합 컴포넌트([[Compound Components|Compound Components]]) 패턴:** 탭(Tabs)이나 아코디언(Accordion)과 같이 밀접하게 연관된 하위 컴포넌트들이 [[React Context|React Context]]를 통해 암시적으로 상태를 공유하는 패턴입니다 [13-15]. 무수히 많은 Prop을 하위로 계속 넘겨주는 대신, 컴포넌트 소비자가 직접 하위 요소를 조합할 수 있게 하여 레이아웃의 유연성을 극대화하고 API를 깔끔하게 유지합니다 [3, 6, 16, 17].
|
||||
* **헤드리스 컴포넌트([[Headless Components|Headless Components]]):** 접근성, 상태 관리, 비즈니스 로직 등 핵심 기능만 제공하고 시각적인 마크업과 스타일링은 전적으로 개발자에게 위임하는 방식입니다 [18, 19]. 주로 [[Tailwind CSS|Tailwind CSS]]와 결합하여 특정 프레임워크나 디자인 시스템에 종속되지 않는 고도로 맞춤화된 UI 라이브러리를 구축하는 데 사용됩니다 [18, 20].
|
||||
@@ -11,10 +31,64 @@
|
||||
* **기능 분할 설계([[Feature-Sliced Design|Feature-Sliced Design]], FSD) 및 모노레포:** 거대한 컴포넌트 라이브러리와 다수의 애플리케이션이 공존할 때, 단방향 의존성 흐름을 강제하는 구조입니다 [25-28]. Shared(공유 UI 기본 요소, 디자인 토큰 등), Entities, Features, Widgets, Pages 등의 계층으로 명확히 나누어 모노레포([[Turborepo|Turborepo]], Nx 등) 내에서 안정적이고 격리된 아키텍처를 유지할 수 있게 합니다 [27, 29-31].
|
||||
* **디자인 토큰([[Design Tokens|Design Tokens]]) 계층화:** 색상, 타이포그래피, 간격 등의 원시 값을 추상화하여 기본 토큰(Primitives), 시맨틱 토큰(Semantic), 컴포넌트 토큰(Component Tokens)의 3단계 계층 구조로 관리합니다 [32-35]. 이는 테마(예: 다크 모드)의 동적 전환을 용이하게 하고 라이브러리 전반의 시각적 일관성과 안전한 리팩토링을 보장합니다 [5, 36-38].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
## 🔗 지식 연결 (Graph)
|
||||
- **Related Topics:** [[Atomic Design|Atomic Design]], Compound Components, Headless Components, [[Design Tokens|Design Tokens]], [[Feature-Sliced Design|Feature-Sliced Design]]
|
||||
- **Projects/Contexts:** [[Uber Base Web|Uber Base Web]], Shopify Polaris, React Server Components (RSC, Tailwind CSS vs [[Styled Components|Styled Components]]
|
||||
- **Contradictions/Notes:** 복합 컴포넌트 패턴은 높은 유연성을 주지만 과용하면 소비자에게 너무 많은 통제권을 주어 UX나 접근성 등 구조적 일관성이 깨질 위험이 있습니다. 따라서 레이아웃이 고정되어 있는 단순한 버튼이나 배지 같은 컴포넌트에는 일반적인 Prop 기반 방식이 훨씬 적합합니다 [39-41]. 또한, 컴포넌트 스타일링 구현 시 Styled Components처럼 런타임에 스타일을 주입하는 방식은 동적 스타일링에 강력하나 [[Next.js 15|Next.js 15]]의 App Router 및 RSC 환경에서는 Context 부재로 인한 구조적 제약과 번들 사이즈 등 성능 비용이 따릅니다 [42-45]. 이 때문에 최신 프론트엔드 아키텍처는 정적 CSS 생성이 가능한 Tailwind CSS 또는 Zero-runtime 방식([[vanilla-extract|vanilla-extract]] 등)을 컴포넌트 라이브러리 구축에 더 권장하는 추세입니다 [46-49].
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-26*
|
||||
*Last updated: 2026-04-26*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
|
||||
- **과거 데이터와의 충돌:** 없음
|
||||
- **정책 변화:** 없음
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,6 +1,26 @@
|
||||
---
|
||||
id: wiki-2026-0508-component-based-architecture-cba
|
||||
title: Component Based Architecture (CBA)
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [uncategorized]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Component-Based Architecture (CBA)|Component-Based Architecture (CBA]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
컴포넌트 기반 아키텍처([[Component-Based Architecture|Component-Based Architecture]], CBA)는 독립적이고 모듈화된, 재사용 가능한 소프트웨어 컴포넌트들을 조립하여 애플리케이션을 구축하는 최신 소프트웨어 설계 패러다임입니다[1-3]. 레고 블록을 맞추듯 각 컴포넌트가 특정 기능을 수행하며, 명확히 정의된 인터페이스(API)를 통해 서로 통신합니다[2, 4]. 이 접근 방식은 소프트웨어를 처음부터 개발하는 대신 표준화된 부품을 재사용함으로써 유지보수성을 높이고 개발 속도를 앞당기며 뛰어난 확장성을 제공합니다[4-6].
|
||||
|
||||
## 📖 Core 소스 Content
|
||||
@@ -21,10 +41,72 @@
|
||||
* **성능 저하 및 의존성 관리:** 네트워크 호출이나 프로세스 간 통신 등 컴포넌트 상호작용으로 인해 성능 오버헤드와 지연(Latency)이 발생할 수 있습니다[27, 30, 31]. 또한, 다수의 컴포넌트가 다양한 버전의 라이브러리에 의존할 경우 버전 충돌 및 관리가 매우 복잡해집니다[31, 32].
|
||||
* **보안 및 과잉 엔지니어링 위험:** 각 컴포넌트의 업데이트 주기가 달라 최신화되지 않은 컴포넌트가 전체 시스템의 보안 취약점이 될 수 있으며[33], 유연성만을 추구하다 보면 시스템을 너무 잘게 쪼개어 과잉 엔지니어링(Over-engineering)으로 이어질 위험도 존재합니다[34].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
## 🔗 지식 연결 (Graph)
|
||||
- **Related Topics:** Microservices Architecture, Service-Oriented Architecture (SOA), Monolithic Architecture, Object-Oriented Architecture
|
||||
- **Projects/Contexts:** React, Angular, Vue.js, PayPal, Spotify, Uber, Walmart
|
||||
- **Contradictions/Notes:** 소스에 따르면, 객체 지향 아키텍처(Object-Oriented Architecture)와 CBA는 원칙을 일부 공유하지만 차이가 있습니다. 객체 지향 아키텍처가 단일 애플리케이션 내에서 데이터와 동작을 캡슐화하는 데 중점을 둔다면, CBA는 여러 시스템 및 애플리케이션 전반에서 상호작용하고 재사용할 수 있는 독립적인 단위 생성을 강조합니다[35]. 또한 기존의 모놀리식 아키텍처(Monolithic Architecture)는 시스템 전체를 하나의 코드베이스로 묶어 확장 및 유지보수가 어렵지만, CBA는 느슨하게 결합된 모듈을 통해 독립적인 배포와 병렬 개발을 가능하게 합니다[36, 37].
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-25*
|
||||
*Last updated: 2026-04-25*
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
|
||||
**추출된 패턴:**
|
||||
> *(TODO)*
|
||||
|
||||
**세부 내용:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
|
||||
- **과거 데이터와의 충돌:** 없음
|
||||
- **정책 변화:** 없음
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,20 +1,33 @@
|
||||
---
|
||||
category: Unified
|
||||
id: wiki-2026-0508-component-based-architecture
|
||||
title: Component Based Architecture
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [auto-consolidated, technical-documentation]
|
||||
title: [[Component-Based Architecture|Component-Based Architecture]]
|
||||
last_updated: 2026-05-02
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Component-Based Architecture|Component-Based Architecture]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
컴포넌트 기반 아키텍처(Component-Based [[Architecture|Architecture]], CBA)는 소프트웨어 시스템을 모듈화되고 독립적이며 재사용 가능한 단위인 '컴포넌트(Component)'로 나누어 구축하는 설계 방법론입니다 [1, 2]. 레고 블록을 조립하듯 각 컴포넌트를 결합하여 크고 복잡한 애플리케이션을 완성할 수 있으며, 이로 인해 개발 속도와 시스템 확장성을 크게 향상시킵니다 [3, 4]. 각 컴포넌트는 내부 로직과 상태를 캡슐화하고 명확히 정의된 인터페이스를 통해서만 상호작용하도록 설계되어, 유지보수성과 팀 간의 협업 효율을 극대화합니다 [5, 6].
|
||||
|
||||
---
|
||||
|
||||
컴포넌트 기반 아키텍처는 사용자 인터페이스(UI)를 버튼, 카드, 모달과 같이 어디서나 재사용할 수 있는 독립적인 블록(컴포넌트)으로 나누어 구축하는 설계 방식이다 [1, 2]. 이 접근법은 코드를 한 번만 작성하여 여러 곳에서 사용하게 함으로써 코드 중복을 줄이고 애플리케이션 전체의 UI 일관성을 유지하게 한다 [1]. 모던 웹 개발에서는 디자인 시스템, 캡슐화된 CSS 스타일링, 그리고 반응형 동작을 페이지 단위가 아닌 컴포넌트 단위로 결합하여 대규모 프로젝트의 유지보수성과 확장성을 극대화하는 데 핵심적인 역할을 한다 [3-5].
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
- **핵심 원칙 및 특징:**
|
||||
- **모듈성 및 캡슐화 ([[Modularity|Modularity]] & Encapsulation):** 컴포넌트는 특정한 목적을 위해 기능과 데이터를 내부로 숨기고(캡슐화), 외부에 필요한 부분만 잘 정의된 인터페이스로 노출합니다 [5, 7].
|
||||
- **재사용성 및 독립성 (Reusability & Independence):** 한 번 개발된 컴포넌트는 수정 없이 여러 프로젝트에 재사용될 수 있으며, 전체 시스템을 파괴하지 않고 독립적으로 개발, 테스트, 배포 및 교체가 가능합니다 [8-10].
|
||||
@@ -51,10 +64,10 @@ last_updated: 2026-05-02
|
||||
* **디자인 시스템과의 통합 ([[Design Tokens|Design Tokens]])**
|
||||
디자인 토큰은 글로벌 토큰, 의미론적(Alias) 토큰, 그리고 **컴포넌트 토큰(Component Tokens)**의 계층으로 구성된다 [21]. `--button-bg: var(--color-primary)`와 같이 특정 컴포넌트 전용으로 스코핑된 토큰을 사용하면, 전역 시스템의 일관성을 해치지 않으면서도 개별 컴포넌트의 스타일을 세밀하게 제어하고 다크 모드나 테마 변경에 유연하게 대응할 수 있다 [21-23].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
No trade-offs available.
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
## 🔗 지식 연결 (Graph)
|
||||
- **Related Topics:** [[Modularity|Modularity]], Encapsulation, Monolithic Architecture, Microservices Architecture, Service-Oriented Architecture (SOA)
|
||||
- **Projects/Contexts:** React, Angular, Vue.js 기반 프론트엔드 UI 구축, 전자상거래 플랫폼 및 CRM 시스템 설계, Java EE 및 .NET 엔터프라이즈 애플리케이션
|
||||
- **Contradictions/Notes:** 컴포넌트 기반 아키텍처는 유연성과 재사용성을 극대화하지만, 모듈화를 극대화하려는 목적으로 시스템을 너무 잘게 쪼개는 것(Over-engineering)은 오히려 통합 비용과 통신 오버헤드를 발생시키고 디버깅을 어렵게 만들 수 있으므로 적절한 세분화(Granularity) 수준을 결정하는 것이 핵심입니다 [18, 22, 32].
|
||||
@@ -70,3 +83,52 @@ No trade-offs available.
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-26*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,16 +1,29 @@
|
||||
---
|
||||
category: Unified
|
||||
id: wiki-2026-0508-compound-components
|
||||
title: Compound Components
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [auto-consolidated, technical-documentation]
|
||||
title: [[Compound Components|Compound Components]]
|
||||
last_updated: 2026-05-02
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Compound Components|Compound Components]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
컴파운드 컴포넌트(Compound Components) 패턴은 React에서 부모 컴포넌트와 자식 컴포넌트들이 암묵적인 상태와 동작을 공유하며 하나의 응집된 단위로 함께 작동하도록 하는 설계 패턴이다.[1, 2] 이 패턴을 사용하면 수많은 prop을 전달해야 하는 문제를 피하고, 개발자가 네이티브 HTML 요소를 사용하듯 유연하게 UI를 구성(compose)할 수 있다.[1, 3] 마치 레고 블록처럼 부모 컴포넌트가 기본 구조와 규칙을 제공하고 자식 컴포넌트들을 자유롭게 조립하여 확장 가능한 사용자 인터페이스를 구축할 수 있게 해준다.[4]
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
* **설계 철학 및 멘탈 모델의 전환**
|
||||
* 기존의 Prop 기반(Prop-Driven) API는 요구사항(레이아웃 변경, 조건부 동작 등)이 추가될 때마다 Prop이 폭발적으로 증가하여 유지보수가 어렵고 컴포넌트 내부가 파악하기 힘든 '블랙박스'가 되는 문제가 있습니다 [5-7].
|
||||
* 합성 컴포넌트는 이를 '구성 중심(Composition-Driven)' 모델로 전환하여, 컴포넌트는 상태와 규칙만 관리하고 레이아웃과 구조의 결정권은 이를 사용하는 소비자(Consumer)에게 일임합니다 [7, 8].
|
||||
@@ -38,13 +51,13 @@ last_updated: 2026-05-02
|
||||
- **서브컴포넌트의 캡슐화와 종속성**: 이 패턴에서 생성되는 서브컴포넌트들은 오직 부모 컴포넌트의 컨텍스트 내부에서만 의미를 가진다.[7] 부모 컴포넌트의 범위를 벗어나 독립적으로 존재하거나 사용되지 않는 헬퍼(helper) 컴포넌트로 설계되어 우발적인 오용을 방지하고 코드의 발견성을 높인다.[7]
|
||||
- **주요 적용 대상**: 이 패턴은 드롭다운, 모달, 탭, 테이블 등 자식 컴포넌트가 부모 컴포넌트의 로직에 의존하면서도 다양한 형태의 렌더링이 필요한 복잡한 UI 요소를 개발할 때 빛을 발한다.[2, 8, 9] ShadCN, Material UI, Radix UI와 같은 유명한 디자인 시스템 및 컴포넌트 라이브러리들이 이 패턴을 채택하고 있다.[8]
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
컴파운드 컴포넌트 패턴은 직관적이고 커스터마이징하기 쉬운 복잡한 API를 구축하는 데 훌륭한 장점을 제공하지만, 몇 가지 명확한 단점과 제약 사항이 존재한다.[10]
|
||||
- **상태 관리의 복잡성 증가**: 여러 컴포넌트가 상태를 공유해야 하므로 내부적인 상태 처리 로직이 단일 컴포넌트 구조보다 다소 복잡해질 수 있다.[11]
|
||||
- **서브컴포넌트의 오용 위험**: 서브컴포넌트는 부모 컴포넌트와 의미론적(semantically)으로 연결되어야 하므로 무작위로 부착해서는 안 된다.[12] 특히 서브컴포넌트만을 개별적으로 재수출(re-export)하는 것을 피해야 한다.[12] 만약 부모 컴포넌트의 컨텍스트 내에서 변경 사항이 생겼을 때, 개별 서브컴포넌트만 사용하는 소비자(consumer)가 이를 인지하지 못하면 치명적인 오류가 발생할 수 있다.[12]
|
||||
- **과도한 패턴 적용(Over-engineering) 경계**: 애플리케이션의 모든 컴포넌트를 컴파운드 컴포넌트 패턴으로 만들려고 시도해서는 안 된다.[12] 자식 컴포넌트의 렌더링 구조가 중요하고 소비자에게 유연성을 제공해야 하는 상황에서만 선택적으로 적용하는 것이 권장된다.[12]
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
## 🔗 지식 연결 (Graph)
|
||||
- **Related Topics:** [[Render Props|Render Props]], Headless Components, Context API, [[Atomic Design|Atomic Design]]
|
||||
- **Projects/Contexts:** [[Radix UI|Radix UI]], Headless UI, [[MUI|MUI]]
|
||||
- **Contradictions/Notes:** 합성 컴포넌트는 매우 유연하고 강력한 패턴이지만, 하위 컴포넌트의 구성을 소비자가 자유롭게 바꿀 수 있기 때문에 의도치 않게 접근성이나 일관된 UX를 해칠 수 있습니다. 따라서 디자인 시스템에서는 안전한 조합의 경계(Safe composition [[Boundaries|Boundaries]])를 정의하고 문서화하는 것이 필수적입니다 [15, 17]. 또한 단순하고 고정된 레이아웃을 가진 컴포넌트에서는 일반적인 Prop 기반 접근법이 훨씬 간단하고 안전합니다 [16].
|
||||
@@ -95,4 +108,53 @@ last_updated: 2026-05-02
|
||||
|
||||
|
||||
## 📌Brief 단기 요약
|
||||
합성 컴포넌트(Compound Components)는 여러 개의 연관된 하위 컴포넌트들이 암시적으로 상태를 공유하며 하나의 응집력 있는 단위로 동작하도록 설계하는 React 컴포넌트 패턴입니다 [1, 2]. 단일 컴포넌트에 수십 개의 Prop을 밀어 넣어 비대해지는 것을 방지하고, 기능과 책임을 여러 컴포넌트에 분산시킵니다 [3, 4]. 이는 HTML의 `<select>`와 `<option>` 태그처럼 직관적이고 선언적인 API를 형성하여 뛰어난 유연성과 재사용성을 제공합니다 [1, 4].
|
||||
합성 컴포넌트(Compound Components)는 여러 개의 연관된 하위 컴포넌트들이 암시적으로 상태를 공유하며 하나의 응집력 있는 단위로 동작하도록 설계하는 React 컴포넌트 패턴입니다 [1, 2]. 단일 컴포넌트에 수십 개의 Prop을 밀어 넣어 비대해지는 것을 방지하고, 기능과 책임을 여러 컴포넌트에 분산시킵니다 [3, 4]. 이는 HTML의 `<select>`와 `<option>` 태그처럼 직관적이고 선언적인 API를 형성하여 뛰어난 유연성과 재사용성을 제공합니다 [1, 4].
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,20 +1,33 @@
|
||||
---
|
||||
category: Unified
|
||||
id: wiki-2026-0508-compute-shaders
|
||||
title: Compute Shaders
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [auto-consolidated, technical-documentation]
|
||||
title: [[Compute Shaders|Compute Shaders]]
|
||||
last_updated: 2026-05-02
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Compute Shaders|Compute Shaders]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
> 컴퓨트 셰이더(Compute Shaders)는 [[WebGPU|WebGPU]] 환경에서 지원되는 기능으로, CPU의 메인 스레드에서 수행되던 무거운 범용 연산 작업을 GPU로 오프로드하는 핵심 기술입니다 [1, 2]. GPU의 수천 개 코어를 활용한 병렬 처리를 통해 물리 시뮬레이션, 충돌 감지, 대규모 파티클 시스템 등의 작업 성능을 비약적으로 향상시킵니다 [2]. 또한 간접 그리기(Indirect Drawing) 기술과 결합하여 CPU의 개입 없이 가시성을 판별하고 화면을 그리는 완전한 GPU 주도 렌더링([[GPU-driven Rendering|GPU-driven Rendering]]) 파이프라인을 구축하는 데 사용됩니다 [3, 4].
|
||||
|
||||
---
|
||||
|
||||
> 컴퓨트 셰이더(Compute Shaders)는 [[JavaScript|JavaScript]] 메인 스레드에서 수행되던 무거운 작업을 수천 개의 GPU 코어에서 병렬로 처리하도록 오프로드하는 범용 GPU 연산(general-Purpose GPU computation) 기술입니다 [1]. 주로 [[WebGPU|WebGPU]] 환경에서 사용되며, 파티클 시스템, 물리 시뮬레이션, 대규모 데이터 필터링 등의 CPU 병목 현상을 획기적으로 해결하여 렌더링 성능을 극대화하는 데 필수적인 역할을 합니다 [2-4].
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
* **범용 GPU 연산 및 성능 향상:** 컴퓨트 셰이더는 물리 시뮬레이션, 충돌 감지, 유체 시뮬레이션, 이미지 처리, 대규모 데이터 필터링, 절차적 지형 생성 등 복잡한 연산을 CPU 대신 GPU에서 병렬로 처리합니다 [2, 5-8]. 기존 CPU 기반 파티클 업데이트는 약 5만 개 수준에서 병목이 발생하지만, WebGPU 컴퓨트 셰이더를 활용하면 10만 개의 파티클을 2ms 이내에 업데이트하여 최대 150배의 성능 향상을 내며 수백만 개의 유닛을 처리할 수 있습니다 [9-12].
|
||||
* **GPU 주도 렌더링 및 컬링 (GPU-driven Rendering & Culling):** 간접 그리기(Indirect Drawing) 명령과 결합하여 극도로 효율적인 렌더링 파이프라인을 구성합니다 [4, 13]. 컴퓨트 셰이더가 모든 인스턴스에 대해 시야 절두체(Frustum) 및 오클루전(Occlusion) 컬링 판별을 수행하고, 화면에 보이는 객체 정보만 원자적 카운터(Atomic Counter)를 통해 간접 그리기 버퍼에 추가합니다 [3, 4, 14]. 이를 통해 CPU와 GPU 간의 데이터 동기화 지연과 명령 발행 오버헤드가 사실상 0에 수렴하게 됩니다 [4, 15].
|
||||
* **데이터 공유 및 메모리 최적화:** 읽기와 쓰기가 모두 가능한 스토리지 텍스처([[Storage|Storage]] Textures)를 활용해 GPU 기반 렌더링과 효과 처리를 유연하게 수행합니다 [6, 16]. 또한 스레드 간 데이터 공유가 필요한 경우, 반복 접근 패턴에서 전역 메모리보다 10~100배 더 빠른 작업 그룹 공유 메모리(Workgroup Shared [[memory|memory]])를 활용할 수 있습니다 [7, 13].
|
||||
@@ -37,7 +50,7 @@ last_updated: 2026-05-02
|
||||
* **작업 그룹 공유 메모리(Workgroup shared [[memory|memory]]):** 스레드 간 데이터 공유가 필요할 때 전역 메모리보다 10~100배 빠른 접근 속도를 제공합니다 [6, 7].
|
||||
* **렌더링 동기화 및 이중 버퍼링:** 컴퓨트 셰이더가 포함된 씬은 GPU 작업이 종속된 렌더링 패스 이전에 완료되도록 `renderAsync`를 사용하여 비동기 렌더링을 수행해야 합니다 [10]. 또한 성능을 높이려면 스테이징 버퍼(Staging buffers)를 활용한 이중 버퍼링(Double-buffering) 기법을 사용해야 하며, 파이프라인 지연을 방지하기 위해 디스패치 간에 `await mapAsync()` 사용을 피해야 합니다 [11].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요.
|
||||
- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행.
|
||||
|
||||
@@ -46,7 +59,7 @@ last_updated: 2026-05-02
|
||||
- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요.
|
||||
- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행.
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
## 🔗 지식 연결 (Graph)
|
||||
- **Related Topics:** `[[WebGPU|WebGPU]]`, `GPU-driven Rendering`, `Indirect Drawing`, `Storage Textures`, `[[Frustum Culling|Frustum Culling]]`
|
||||
- **Projects/Contexts:** `Three.js`, `Segments.ai`, `BIM Datasets`
|
||||
- **Contradictions/Notes:** 컴퓨트 셰이더는 엄청난 성능 향상을 제공하지만 구형 API인 [[WebGL|WebGL]]이나 WebGL 2에서는 지원되지 않아 WebGPU 환경이 필수적입니다 [1]. 또한 GPU 최적화를 제대로 다루지 못해 동기화 대기(`await mapAsync()`)를 남용할 경우, 오히려 GPU가 최대 60%의 시간 동안 유휴 상태(Idle)에 빠지는 병목 현상을 유발할 수 있습니다 [18].
|
||||
@@ -66,3 +79,52 @@ last_updated: 2026-05-02
|
||||
*Last updated: 2026-04-19*
|
||||
|
||||
---
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,26 +1,37 @@
|
||||
---
|
||||
id: P-REINFORCE-WIKI-18536721
|
||||
category: Unified
|
||||
id: wiki-2026-0508-conceptual-integrity
|
||||
title: Conceptual Integrity
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: [P-REINFORCE-WIKI-18536721]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.95
|
||||
tags: ['conceptual-integrity', 'software-architecture', 'implementation-separation', 'keeper-of-the-vision', "conway's-law", 'cognitive-engineering']
|
||||
tags: [conceptual-integrity, software-architecture, implementation-separation, keeper-of-the-vision, "conway's-law", cognitive-engineering]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-02
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Conceptual Integrity]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
Conceptual Integrity(개념적 무결성)는 소프트웨어 시스템의 아키텍처가 해당 시스템이 '무엇을' 해야 하며 '어떻게' 수행해야 하는지에 대한 전반적인 비전(overall vision)을 나타내야 한다는 개념입니다 [1]. 이 용어는 1975년 Fred Brooks의 저서인 『The Mythical Man-Month(맨먼스 미신)』에서 처음 소개되었습니다 [1]. 아키텍트가 시스템의 비전을 지키는 수호자 역할을 수행하여 추가되는 기능들이 아키텍처와 일관성을 유지하도록 보장하는 것이 핵심입니다 [1].
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
* **개념의 기원 및 정의**: Conceptual Integrity는 Fred Brooks가 1975년에 출간한 책 『The Mythical Man-Month』에서 처음 도입된 용어로, 소프트웨어 아키텍처의 핵심 특성 중 하나로 꼽힙니다 [1]. 이는 시스템 설계 시 구조와 동작 방식에 있어 파편화되지 않은 하나의 일관된 비전을 가져야 함을 의미합니다 [1].
|
||||
* **비전과 구현의 엄격한 분리**: Conceptual Integrity를 달성하기 위해서는 아키텍처가 제시하는 시스템의 거시적인 비전이 실제 코드 수준의 세부 구현(implementation)과는 분리되어 다루어져야 합니다 [1].
|
||||
* **비전의 수호자로서의 아키텍트 역할**: 소프트웨어 아키텍트는 시스템 설계에서 '비전의 수호자(keeper of the vision)'라는 막중한 역할을 맡게 됩니다 [1]. 아키텍트는 시스템에 새로운 기능이 추가되거나 변경 사항이 발생할 때, 그것이 최초에 설정된 아키텍처의 비전과 동일한 선상에 있는지 철저히 확인하여 개념적 무결성을 보존해야 할 책임이 있습니다 [1].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
소스에 관련 정보가 부족합니다.
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
### Related Concepts
|
||||
|
||||
#### [아키텍처의 본질적 특성 (Architecture Characteristics)]
|
||||
@@ -59,4 +70,53 @@ Conceptual Integrity(개념적 무결성)는 소프트웨어 시스템의 아키
|
||||
- 확장 방향: 시간이 지남에 따라 아키텍처의 의도된 설계(비전)와 실제 구현 사이에 점진적인 격차가 발생하는 현상으로, Conceptual Integrity 유지가 실패했을 때 나타나는 증상 및 해결 방안(예: 리팩토링, 아키텍처 복구)으로 확장이 가능합니다 [4].
|
||||
|
||||
---
|
||||
*Last updated: 2026-05-02*
|
||||
*Last updated: 2026-05-02*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,20 +1,33 @@
|
||||
---
|
||||
category: Unified
|
||||
id: wiki-2026-0508-concurrent-rendering
|
||||
title: Concurrent Rendering
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [auto-consolidated, technical-documentation]
|
||||
title: [[Concurrent Rendering|Concurrent Rendering]]
|
||||
last_updated: 2026-05-02
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Concurrent Rendering|Concurrent Rendering]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
Concurrent Rendering(동시성 렌더링)은 메인 스레드를 블로킹하지 않고 UI의 여러 부분을 병렬로 렌더링할 수 있게 해주는 React의 핵심 아키텍처 기능입니다 [1]. 렌더링 작업을 '[[Time Slicing|Time Slicing]](시간 분할)'을 통해 작은 단위로 쪼개고 중요도에 따라 우선순위를 부여하여, 긴급한 사용자 입력에 반응하기 위해 렌더링을 일시 중지하거나 재개할 수 있습니다 [1, 2]. 이를 통해 무거운 연산 중에도 UI가 멈추지 않고 즉각적으로 반응하도록 하여 애플리케이션의 체감 성능을 극대화합니다 [3, 4].
|
||||
|
||||
---
|
||||
|
||||
동시성 렌더링(Concurrent Rendering)은 React의 Fiber 아키텍처를 기반으로 메인 스레드를 동기적으로 차단하지 않고 렌더링 작업을 중단 및 재개할 수 있도록 하는 렌더링 방식입니다 [1, 2]. 이 기술은 전체 렌더링 작업을 작은 단위로 쪼개어 처리하는 타임 슬라이싱([[Time-Slicing|Time-Slicing]])을 통해, 긴급한 사용자 상호작용을 우선적으로 처리할 수 있도록 브라우저에 제어권을 양보합니다 [2-4]. 이를 통해 무거운 연산이 백그라운드에서 진행되는 동안에도 UI의 반응성을 부드럽게 유지할 수 있습니다 [4, 5].
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
* **Fiber 아키텍처와 Work Loop**
|
||||
Concurrent Rendering은 React 16에서 처음 도입된 Fiber 아키텍처를 기반으로 작동합니다 [5, 6]. 기존의 단일 재귀 호출 기반 동기식 렌더링과 달리, 렌더링 작업을 'Fiber 노드'라는 작은 작업 단위(Unit of Work)로 분할합니다 [2, 7]. React는 Work Loop를 통해 이 트리를 점진적으로 순회하며, 각 작업 단위가 끝날 때마다 브라우저에 제어권을 양보(yield)하여 클릭과 같은 고우선순위 상호작용을 처리할 수 있는지 확인합니다 [8, 9].
|
||||
* **우선순위 기반 스케줄링 ([[Lane Model|Lane Model]])**
|
||||
@@ -38,10 +51,10 @@ Concurrent Rendering(동시성 렌더링)은 메인 스레드를 블로킹하지
|
||||
- **동시성 하이드레이션 (Concurrent [[Hydration|Hydration]])**
|
||||
React 18부터는 하이드레이션 과정에도 동시성 렌더링이 적용됩니다 [14]. 거대한 덩어리의 하이드레이션 작업을 작은 조각으로 나누어 브라우저의 상호작용 처리를 방해하지 않게 하며, Suspense와 결합할 경우 사용자가 상호작용하는 UI 컴포넌트부터 우선적으로 하이드레이션하여 초기 로딩 성능(Total [[Blocking|Blocking]] Time)을 크게 개선합니다 [14, 15].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
No trade-offs available.
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
## 🔗 지식 연결 (Graph)
|
||||
- **Related Topics:** `[[Fiber Architecture|Fiber Architecture]]`, `Time Slicing`, `Lane Model`, `[[useTransition|useTransition]]`, `[[useDeferredValue|useDeferredValue]]`
|
||||
- **Projects/Contexts:** `[[React 18 & 19 Performance Optimization|React 18 & 19 Performance Optimization]]`
|
||||
- **Contradictions/Notes:** 소스에 따르면 `useTransition` 및 `useDeferredValue`와 같은 동시성 훅은 코드 자체의 속도를 높여주지는 않지만, 무거운 연산이 사용자 피드백을 방해하지 않도록 스케줄링하여 앱의 "체감 성능"을 개선하는 방식으로 작동한다는 점을 명확히 하고 있습니다 [3].
|
||||
@@ -57,3 +70,52 @@ No trade-offs available.
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-25*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,20 +1,33 @@
|
||||
---
|
||||
category: Unified
|
||||
id: wiki-2026-0508-continuous-integration-ci
|
||||
title: Continuous Integration CI
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [auto-consolidated, technical-documentation]
|
||||
title: [[Continuous Integration (CI)|Continuous Integration (CI]]
|
||||
last_updated: 2026-05-02
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Continuous Integration (CI)|Continuous Integration (CI]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
> 지속적 통합(Continuous Integration, CI)은 소프트웨어 개발 수명 주기에서 코드 변경 사항이 발생할 때 이를 자동으로 검사하고 빌드하는 파이프라인입니다 [1, 2]. 개발자의 로컬 환경에서 우회될 수 있는 검사들을 강제하는 '안전망(Safety net)'이자 최종 권한(Final authority) 역할을 수행합니다 [2, 3]. CI 환경에서는 정적 애플리케이션 보안 테스트([[SAST|SAST]]), 린팅(Linting), 전체 테스트 스위트 실행 등을 통해 프로덕션 환경에 배포되기 전 코드의 품질과 보안을 엄격하게 관리합니다 [4, 5].
|
||||
|
||||
---
|
||||
|
||||
Continuous Integration (CI)은 새로운 코드가 푸시(push)될 때마다 자동으로 테스트와 빌드 워크플로우를 실행하여 메인 브랜치의 안정성을 유지하는 소프트웨어 개발 관행입니다 [1, 2]. 이를 통해 "내 컴퓨터에서는 되는데(it works on my machine)"와 같은 환경 의존적인 문제를 방지하고, 병합(merge) 전에 버그를 조기에 발견할 수 있습니다 [2, 3]. 또한 잘 갖춰진 CI/CD 파이프라인과 테스트 환경은 새로운 개발자가 크고 복잡한 코드베이스를 더 빠르고 명확하게 이해하는 데 핵심적인 도움을 줍니다 [4].
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
- **최종 검증 및 안전망(Safety Net) 역할:** 개발자가 로컬 환경에서 사용하는 Git 훅(예: [[Husky|Husky]], [[lint-staged|lint-staged]])은 `--no-verify` 명령어로 우회할 수 있으므로 코드 품질 정책에 대한 완벽한 강제성을 갖지 못합니다 [3]. 따라서 CI 파이프라인은 전체 코드에 대한 린팅(자동 수정 제외), 전체 테스트 스위트 실행, 타입 검사 및 빌드 검증을 우회 불가능하게 수행하는 안전망이자 최종 권한으로 작동합니다 [2, 4, 6].
|
||||
- **보안 및 품질 게이트(Quality [[Gates|Gates]]) 통합:** CI/CD 파이프라인에 SAST 도구(예: Snyk, [[SonarQube|SonarQube]], Qodana) 및 코드 품질 분석 도구를 통합하여 품질 검사를 빌드 프로세스의 자연스러운 일부로 만듭니다 [1, 7, 8]. 이를 통해 특정 심각도 임계값을 초과하는 보안 취약점이나 품질 기준에 미달하는 코드가 병합(Merge)되거나 배포되는 것을 자동으로 차단(Guardrail)할 수 있습니다 [1, 5, 9].
|
||||
- **병렬 검사 및 리뷰 파이프라인 설계:** Pull Request(PR)가 생성되면 CI 파이프라인은 린팅, 포맷팅 검증, 유닛 및 통합 테스트, 종속성 취약점 스캔 등의 사전 병합(Pre-Merge) 자동화 검사를 병렬로 실행합니다 [10]. 코드 변경 사항은 이러한 자동화 검사를 통과한 후에만 사람이 직접 수행하는 코드 리뷰로 라우팅되거나 병합이 활성화되도록 구성되어, 리뷰어의 인지적 부담을 줄이고 전체적인 소프트웨어 전송 속도를 높입니다 [8, 11, 12].
|
||||
@@ -27,7 +40,7 @@ Continuous Integration (CI)은 새로운 코드가 푸시(push)될 때마다 자
|
||||
* **마이크로서비스 아키텍처에서의 독립성 확보**: 마이크로서비스 아키텍처 환경에서는 각 서비스가 모놀리식 구조와 달리 자신만의 독립된 코드베이스와 CI/CD 파이프라인, 데이터 저장소를 가집니다 [10]. 이를 통해 특정 서비스에 대한 업데이트 및 배포가 다른 서비스에 영향을 미치지 않고 병렬적으로 신속하게 이루어질 수 있습니다 [10].
|
||||
* **코드베이스 이해 및 온보딩의 촉진**: 낯선 코드베이스를 파악해야 하는 상황에서, 양질의 테스트와 CI/CD 체계가 구축되어 있으면 개발자가 코드의 의도를 빠르게 이해할 수 있습니다 [4]. 코드의 기능이 테스트를 통해 CI 환경에서 지속적으로 검증되므로, 개발자는 코드가 어떻게 동작해야 하는지에 대한 명확한 기준을 얻을 수 있습니다 [4].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요.
|
||||
- **정책 변화:** Programming & Language 분야의 자동 자산화 수행.
|
||||
|
||||
@@ -37,7 +50,7 @@ Continuous Integration (CI)은 새로운 코드가 푸시(push)될 때마다 자
|
||||
* **오탐(False Positive)으로 인한 피로도**: CI/CD 파이프라인에서 실행되는 자동화된 분석 결과가 지나치게 많은 오탐을 발생시키면 개발자의 신뢰가 떨어지고 불필요한 리뷰 시간 낭비를 초래할 수 있습니다 [12].
|
||||
* **테스트 파일 구성의 복잡성**: 테스트 파일을 코드베이스 내에 모듈별로 뿔뿔이 흩어놓을 경우, CI/CD 파이프라인에서 모듈 간의 상호작용을 통합 테스트(Integration Testing)할 때 의존성 관리 및 실행 순서 보장 등에서 복잡성이 증가할 수 있습니다 [13, 14].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
## 🔗 지식 연결 (Graph)
|
||||
- **Related Topics:** [[Static Application Security Testing (SAST)|Static Application Security Testing (SAST]], Code Review, Git Hooks, [[Quality Gates|Quality Gates]], [[Pull Request (PR)|Pull Request (PR]]
|
||||
- **Projects/Contexts:** [[TeamCity|TeamCity]], GitHub Actions, GitLab CI, Jenkins, [[Azure DevOps|Azure DevOps]]와 같이 코드 통합과 자동화 빌드를 관장하는 인프라 환경 [1, 9, 14].
|
||||
- **Contradictions/Notes:** 로컬 Git 훅(pre-commit 등)은 로컬 환경에서 빠른 피드백을 제공하여 시간을 절약하게 해주지만, 우회가 가능하므로 CI를 완전히 대체할 수 없으며 반드시 CI 파이프라인을 통한 최종 검증이 병행되어야 합니다 [2, 4, 15].
|
||||
@@ -90,3 +103,52 @@ Continuous Integration (CI)은 새로운 코드가 푸시(push)될 때마다 자
|
||||
|
||||
---
|
||||
*Last updated: 2026-05-02*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,20 +1,33 @@
|
||||
---
|
||||
category: Unified
|
||||
id: wiki-2026-0508-control-points
|
||||
title: Control Points
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [auto-consolidated, technical-documentation]
|
||||
title: 통제점(Control Points)
|
||||
last_updated: 2026-05-02
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# 통제점(Control Points)
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
통제점(Control Points)은 최소 25명 이상의 플레이어로 구성된 동맹(Alliance)이 세계 지도 상의 경합 구역(Contestable Zones)에서 점령할 수 있는 거점입니다 [1]. 통제점을 성공적으로 점령하고 방어하면, 해당 동맹은 통제점의 레벨에 따라 다양한 수준의 석유 및 토륨 부스트 혜택을 얻게 됩니다 [2, 3]. 점령 과정은 NPC 기지 공격부터 시작하여 다른 동맹과의 제한된 전쟁(War) 및 서든 데스(Sudden Death) 단계에 이르는 치열한 전투로 구성됩니다 [3-5].
|
||||
|
||||
---
|
||||
|
||||
거점(Control Points)은 월드 맵의 분쟁 가능 구역(Contestable Zones) 내에 위치하며, 점령 시 동맹(Alliance)에게 오일과 토륨 부스트 혜택을 제공하는 주요 군사적 목표물입니다 [1, 2]. 최소 25명 이상의 플레이어로 구성된 동맹만이 점령전에 참여할 수 있으며, NPC 기지를 파괴하는 것으로 본격적인 전쟁이 시작됩니다 [1, 2]. 이후 일정 횟수의 거점 파괴, 동맹 간의 전쟁(War) 단계, 서든 데스(Sudden Death) 등 엄격한 룰에 기반한 페이즈를 거쳐 최종적으로 구역 내에 생존한 기지의 유무에 따라 점령 동맹이 결정됩니다 [2-4].
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
- **경합 구역과 통제점의 개념:** 통제점은 세계 지도의 특정 구역인 '경합 구역(Contestable Zones)' 내에 위치하는 NPC 기지입니다 [1, 3]. 모든 지도 구역에 전초기지나 요새가 있지만, 오직 경합 구역만이 통제점을 포함하고 있습니다 [1].
|
||||
- **점령을 위한 전투 및 진행 단계:** 통제점 점령은 여러 단계를 거쳐 이루어집니다.
|
||||
- **공격(Attacking) 및 공격받음(Under Attack) 단계:** 동맹이 경합 구역을 점령하기 위한 첫 번째 단계로, 통제점 자체인 NPC 기지를 공격해 물리쳐야 합니다 [3]. 이후 '공격받음' 상태로 전환되며, 제한된 시간 내에 통제점 레벨에 따라 요구되는 횟수만큼 기지를 격파해야 다음 단계로 넘어갈 수 있습니다 [3].
|
||||
@@ -37,11 +50,11 @@ last_updated: 2026-05-02
|
||||
* **서든 데스 (Sudden Death) 단계**: 전쟁 단계가 끝날 때까지 구역 내에 공격 동맹의 기지가 남아있을 경우 발동됩니다 [4]. 방어 동맹이 공격 기지를 구역 밖으로 밀어낼 수 있는 마지막 기회이며, 이 단계에서 밖으로 밀려난 기지는 절대 다시 구역으로 복귀할 수 없습니다 [4]. 하나의 공격 기지라도 살아남는다면 공격 동맹이 거점을 차지하게 됩니다 [4].
|
||||
* **안전 확보 (Secured) 단계**: 거점 점령전의 최종 단계입니다 [4]. 이 기간 동안에는 다른 어떤 동맹도 해당 거점을 공격하거나 분쟁 가능 구역을 빼앗기 위해 시도할 수 없으며, 승리한 동맹은 다음 전투를 준비하며 휴식을 취할 수 있습니다 [4].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
- 신규 지식 자산화 (2026-04-27).
|
||||
- War Commander 전투 생태계 데이터 통합.
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
## 🔗 지식 연결 (Graph)
|
||||
- **Related Topics:** [[동맹(Alliances)|동맹(Alliances]], 토륨(Thorium), [[세계 지도(World Map)|세계 지도(World Map]]
|
||||
- **Projects/Contexts:** War Commander 전투 시스템 및 동맹 간 영토 지배 전략
|
||||
- **Contradictions/Notes:** 통제점 확보는 단순히 개별 기지의 전투력뿐만 아니라, 외부 세력의 개입이 차단된 상태('cage match')에서 동맹원들이 구역 내에 기지를 유지하거나 밀어내는 지정학적 기동 전략을 요구합니다 [2, 4].
|
||||
@@ -57,3 +70,52 @@ last_updated: 2026-05-02
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-27*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,20 +1,33 @@
|
||||
---
|
||||
category: Unified
|
||||
id: wiki-2026-0508-control-systems-engineering
|
||||
title: Control Systems Engineering
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [auto-consolidated, technical-documentation]
|
||||
title: Control[[_system|system]]s Engineering (제어 시스템 공학)
|
||||
last_updated: 2026-05-02
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# Control[[_system|system]]s Engineering (제어 시스템 공학)
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
> "원하는 목표 상태에 도달하도록 시스템을 설계하고 동적으로 수정하라" — 물리적 장치나 가상 에이전트가 외부 교란([[Noise|Noise]])에도 불구하고 목표 수치(Set-point)를 안정적으로 유지하게 만드는 공학적 프레임워크.
|
||||
|
||||
---
|
||||
|
||||
> "의도한 대로의 상태 유지: 복잡한 외부의 방해 속에서도, 시스템의 현재 상태를 목표치(Set-point)로 일정하게 유지하거나 정확한 경로로 유도하기 위해 끊임없이 '수정 명령'을 내리는 기술적 중추."
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
- **추출된 패턴:** 시스템의 출력을 입력으로 다시 되먹여(Feedback) 오차를 줄여나가는 '폐쇄 루프 제어(Closed-loop Control)' 패턴.
|
||||
- **세부 내용:**
|
||||
- **Open-loop vs Closed-loop:** 피드백 존재 여부에 따라 단순 명령 실행과 상태 기반 자동 수정을 구분.
|
||||
@@ -34,7 +47,7 @@ last_updated: 2026-05-02
|
||||
2. **왜 중요한가?**:
|
||||
* 자율주행차의 조향부터 원자로의 온도 조절, 로봇의 균형 잡기까지 현대 문명의 모든 '자동화'가 이 이론 위에 서 있기 때문임. (Automation와 연결)
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
- **과거 데이터와의 충돌:** 전통적인 고전 제어(루프 베이스)에서 현대의 AI 기반 지능형 제어(강화학습 베이스)로 패러다임이 융합되고 있음.
|
||||
- **정책 변화:** Antigravity 에이전트의 '목표 추적 루프' 설계 시, PID 제어의 감쇠(Damping) 원리를 적용하여 급격한 상태 변화를 억제함.
|
||||
|
||||
@@ -43,7 +56,7 @@ last_updated: 2026-05-02
|
||||
- **과거 데이터와의 충돌**: 과거에는 시스템의 모든 수학적 모델 정책을 완벽히 알아야 한다는 고전 제어(Classic Control) 정책이 주류였으나, 현대 정책은 모델을 몰라도 데이터로 배우는 '모델 프리 강화학습 정책(Model-free RL)'과 결합하여 훨씬 복합적인 제어 정책을 수행함(RL Update). ([[Reinforcement Learning (RL)|Reinforcement Learning (RL)]]와 연결)
|
||||
- **정책 변화(RL Update)**: 이제는 단순 물리 시스템 제어 정책을 넘어, 거대 AI 모델의 답변 정책([[Alignment|Alignment]])을 제어하거나 사회적 시스템의 변동성 정책을 제어하는 광의의 제어 정책으로 확장 중임.
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
## 🔗 지식 연결 (Graph)
|
||||
- **Parent:** 10_Wiki/💡 Topics/AI
|
||||
- **Related:** [[Feedback-Control-Systems|Feedback-Control-Systems]], [[Robotics|Robotics]], System-Dynamics
|
||||
- **Raw Source:** 10_Wiki/Topics/AI/Control Systems Engineering.md
|
||||
@@ -53,3 +66,52 @@ last_updated: 2026-05-02
|
||||
- Automation, [[Reinforcement Learning (RL)|Reinforcement Learning (RL)]], [[System-Theory|System-Theory]], [[Robotics|Robotics]], [[Efficiency|Efficiency]]
|
||||
- **Key Algorithms**: PID Control, Kalman Filter, Model Predictive Control (MPC).
|
||||
---
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,20 +1,33 @@
|
||||
---
|
||||
category: Unified
|
||||
id: wiki-2026-0508-cosmos-플랫폼-netflix
|
||||
title: Cosmos 플랫폼 (Netflix)
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [auto-consolidated, technical-documentation]
|
||||
title: [[Cosmos 플랫폼 (Netflix)|Cosmos 플랫폼 (Netflix]]
|
||||
last_updated: 2026-05-02
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Cosmos 플랫폼 (Netflix)|Cosmos 플랫폼 (Netflix]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
> Cosmos는 넷플릭스(Netflix)가 마이크로서비스, 비동기 워크플로우, 서버리스 함수의 장점을 결합하여 구축한 컴퓨팅 플랫폼이다 [1]. 기존 모놀리식 아키텍처인 'Reloaded'의 한계를 극복하고 관측성, 모듈성, 생산성, 지속적 배포(Continuous Delivery)를 향상시키기 위해 개발되었다 [2, 3]. 수 분에서 수년에 걸쳐 실행되는 복잡한 계층적 워크플로우 및 리소스 집약적인 알고리즘을 조율하는 데 최적화되어 있으며, 대규모 처리량과 지연 시간에 민감한 작업 부하를 모두 지원한다 [1].
|
||||
|
||||
---
|
||||
|
||||
> 넷플릭스 코스모스 플랫폼(Netflix Cosmos)은 마이크로서비스의 장점과 비동기 워크플로우 및 서버리스 함수를 결합한 컴퓨팅 플랫폼이다 [1]. 이 플랫폼은 주로 수 분에서 수 년까지 지속될 수 있는 복잡하고 계층적인 워크플로우를 통해 조정되는 자원 집약적 알고리즘을 처리하는 데 사용된다 [1]. 기존의 모놀리식 아키텍처인 '리로디드(Reloaded)'의 한계를 극복하고 관찰성, 모듈성, 생산성, 자동화된 전송 능력을 향상시키기 위해 개발되었다 [2-4].
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
* **배경 및 점진적 전환:** 넷플릭스의 기존 미디어 처리 시스템인 'Reloaded'는 개발팀 규모가 커짐에 따라 인프라와 애플리케이션 코드가 뒤섞이고 새로운 기능 배포가 지연되는 모놀리식 아키텍처의 한계를 겪었다 [2]. 이를 해결하기 위해 워크플로우 기반 미디어 특화 마이크로서비스 플랫폼인 Cosmos가 구축되었으며, 시스템을 완전히 교체할 때까지 기존 시스템 주위를 감싸며 새로운 시스템을 성장시키는 '스트랭글러 피그(Str[[ANGLE|ANGLE]]r fig) 패턴'을 도입하여 위험을 줄이면서 마이그레이션을 진행했다 [3, 4].
|
||||
* **다차원적 관심사의 분리 ([[_뇌와 팔다리의 분리_ - 관심사의 분리 (Separation of Concerns)|Separation of Concerns]]):** Cosmos는 로직을 API, 워크플로우, 서버리스 함수로 나누는 한편, 도메인 특화 애플리케이션 로직과 분산 컴퓨팅을 처리하는 플랫폼으로 분리하는 양방향 관심사 분리 원칙을 적용했다 [5]. 분산 처리를 담당하는 플랫폼은 세 가지 주요 하위 시스템과 이를 연결하는 큐잉 시스템으로 구성된다 [6].
|
||||
* **Optimus:** 외부 요청을 내부 비즈니스 모델로 매핑하는 API 계층이다 [6].
|
||||
@@ -36,7 +49,7 @@ last_updated: 2026-05-02
|
||||
|
||||
* **지연 시간 및 처리량 관리:** 사용자 대면 서비스와 같은 지연 시간 민감(Latency-sensitive) 애플리케이션을 위해 스트라툼은 리소스 풀, 웜 커패시티(Warm capacity), 마이크로 배치(Micro-batches), 우선순위 설정을 통해 함수 실행 지연 시간을 관리한다 [12, 13]. 반면 리소스를 대량으로 소비하는 처리량 민감(Throughput-sensitive) 워크로드의 경우, 더 저렴한 '기회주의적(opportunistic)' 컴퓨팅 리소스를 활용할 수 있도록 유연하게 스케줄링한다 [11].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요.
|
||||
- **정책 변화:** Programming & Language 분야의 자동 자산화 수행.
|
||||
|
||||
@@ -45,7 +58,7 @@ last_updated: 2026-05-02
|
||||
- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요.
|
||||
- **정책 변화:** Programming & Language 분야의 자동 자산화 수행.
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
## 🔗 지식 연결 (Graph)
|
||||
- **Related Topics:** 마이크로서비스 (Microservices), 서버리스 컴퓨팅 (Serverless Computing), [[관심사의 분리 (Separation of Concerns)|관심사의 분리 (Separation of Concerns]]
|
||||
- **Projects/Contexts:** Reloaded, Optimus, Plato, Stratum, Timestone, Tapas, Sagan
|
||||
- **Contradictions/Notes:** "서버리스 함수를 조율하는 워크플로우를 트리거하는 마이크로서비스"라는 Cosmos의 프로그래밍 모델은 강력하지만, 단순한 애플리케이션에 적용하기에는 부가되는 복잡성이 이점보다 클 수 있다는 점이 지적된다 [14]. 또한, Cosmos 플랫폼 도입 당시 애플리케이션 개발자들은 일관성과 신뢰성을 획득하는 대신 일정한 유연성을 포기하는 방향으로 마인드셋을 전환해야 했다 [14].
|
||||
@@ -65,3 +78,52 @@ last_updated: 2026-05-02
|
||||
*Last updated: 2026-04-18*
|
||||
|
||||
---
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,10 +1,21 @@
|
||||
---
|
||||
id: P-REINFORCE-AUTO-C8FB6A
|
||||
category: "10_Wiki/💡 Topics/Software Engineering"
|
||||
id: wiki-2026-0508-cross-cutting-concerns
|
||||
title: Cross Cutting Concerns
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: [P-REINFORCE-AUTO-C8FB6A]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.95
|
||||
tags: [auto-reinforced]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-03
|
||||
github_commit: "[P-Reinforce] Continuous Worker - Cross-Cutting Concerns"
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Cross-Cutting Concerns|Cross-Cutting Concerns]]
|
||||
@@ -13,7 +24,6 @@ github_commit: "[P-Reinforce] Continuous Worker - Cross-Cutting Concerns"
|
||||
Cross-Cutting Concerns(횡단 관심사)는 로깅, 인증 및 인가, 예외 처리, 데이터 유효성 검사, 캐싱 등과 같이 애플리케이션의 여러 계층과 컴포넌트에 걸쳐 공통적으로 영향을 미치고 반복되는 보조적 요구사항을 의미한다 [1-4]. 핵심 비즈니스 로직(Core Concerns)으로부터 이러한 횡단 관심사를 효과적으로 분리하지 않으면 코드 중복(Scattering)과 강한 결합(Tangling)이 발생하여 시스템 유지보수성과 확장성이 크게 저하된다 [1, 5-7]. 따라서 현대 프레임워크와 아키텍처 설계에서는 관점 지향 프로그래밍(AOP)이나 미들웨어 패턴 등을 통해 이를 중앙 집중화하고 모듈화하는 것을 필수적인 원칙으로 삼는다 [2, 7-9].
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
|
||||
* **횡단 관심사의 본질과 문제점:**
|
||||
횡단 관심사는 특정 도메인 모듈에 국한되지 않고 시스템 전체에 걸쳐 광범위하게 적용되는 특성을 지닌다 [8]. 대표적인 예로 트랜잭션 관리, 분산 시스템에서의 동기화 처리, 에러 핸들링, 보안 및 모니터링 등이 있다 [5, 10-12]. 개발자가 시스템 초기 설계 단계에서 이를 명확히 분리할 수 있는 인프라적 지원을 고려하지 않으면, 애플리케이션의 거의 모든 함수에 `try-catch` 블록이나 로깅 코드가 반복적으로 삽입된다 [13-16]. 이는 단일 책임 원칙(SRP)과 DRY(Don't Repeat Yourself) 원칙을 심각하게 위반하는 결과를 낳는다 [14, 17, 18].
|
||||
|
||||
@@ -26,8 +36,7 @@ Cross-Cutting Concerns(횡단 관심사)는 로깅, 인증 및 인가, 예외
|
||||
* **아키텍처 레벨의 해결 접근법:**
|
||||
코드 내 분리를 넘어 아키텍처 수준에서도 이를 고립시키기 위한 설계 패턴이 적용된다 [2, 7]. 클린 아키텍처(Clean Architecture)에서는 횡단 관심사를 핵심 비즈니스 규칙과 철저히 분리하여 인프라스트럭처(Infrastructure) 계층에서 처리하도록 강제한다 [2, 28]. 이 밖에도 헬퍼 함수 활용, 성숙한 써드파티 라이브러리 채택, 공통 인터페이스 라이브러리 사용, 혹은 상속(Base Class)을 통해 횡단 로직을 재사용하는 기법들이 상황에 맞게 적용된다 [29-33].
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & RL Update)
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
* **AOP 및 데코레이터의 '마법'에 따른 디버깅 난이도 상승:**
|
||||
AOP 프레임워크나 데코레이터(Annotation)를 활용하면 비즈니스 로직이 매우 깔끔해진다는 장점이 있지만, 실행 흐름이 암시적이고 마법처럼 동작하기 때문에 새로 합류한 개발자가 시스템을 이해하기 어렵게 만든다 [20, 23, 34]. 로직이 의도치 않은 곳에서 실행될 때 그 원인을 추적하고 디버깅하는 난이도가 급격히 상승한다 [34].
|
||||
* **런타임 오버헤드 발생:**
|
||||
@@ -38,7 +47,6 @@ Cross-Cutting Concerns(횡단 관심사)는 로깅, 인증 및 인가, 예외
|
||||
Django 환경에서는 횡단 관심사 및 데이터 동기화 목적으로 시그널(Signals)이 자주 사용되나, 이는 코드 실행 흐름을 숨기고 파악하기 힘든 암시적 부수 효과(Side Effects)를 유발하여 대규모 프로젝트에서는 심각한 기술 부채를 초래하는 안티 패턴으로 꼽힌다 [27, 37].
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
|
||||
### Related Concepts
|
||||
|
||||
#### [아키텍처/기반 기술]
|
||||
@@ -86,3 +94,52 @@ Cross-Cutting Concerns(횡단 관심사)는 로깅, 인증 및 인가, 예외
|
||||
*Last updated: 2026-05-03*
|
||||
- Raw Source: 00_Raw/2026-05-03/Cross-Cutting Concerns.md
|
||||
---
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,20 +1,33 @@
|
||||
---
|
||||
category: Unified
|
||||
id: wiki-2026-0508-cumulative-layout-shift-cls
|
||||
title: Cumulative Layout Shift CLS
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [auto-consolidated, technical-documentation]
|
||||
title: [[Cumulative-Layout-Shift-CLS|Cumulative Layout Shift (CLS]]
|
||||
last_updated: 2026-05-02
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Cumulative-Layout-Shift-CLS|Cumulative Layout Shift (CLS]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
> Cumulative Layout Shift (CLS)는 웹 페이지가 로드되는 동안 레이아웃과 콘텐츠가 얼마나 예기치 않게 이동하는지를 측정하는 시각적 안정성(Visual Stability) 지표입니다 [1, 2]. 구글의 코어 웹 바이탈([[Core Web Vitals|Core Web Vitals]])을 구성하는 핵심 지표 중 하나로, 나중에 렌더링된 콘텐츠가 중요한 콘텐츠를 밀어내면서 발생하는 사용자 경험의 저하를 방지하기 위해 사용됩니다 [1, 2]. CLS 점수는 0.1 미만을 유지하는 것이 권장됩니다 [3].
|
||||
|
||||
---
|
||||
|
||||
> "사용자가 읽거나 클릭하려는 순간 콘텐츠가 춤추듯 이동하는 '시각적 불안정성'을 제거하고, 0.08초 이내의 고정된 안정감을 제공하여 인지적 마찰을 차단하라" — 페이지의 전체 수명 동안 발생하는 예기치 않은 레이아웃 이동을 측정하는 [[Core Web Vitals|Core Web Vitals]]의 핵심 사용자 경험 지표.
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
* **측정 기준 및 중요성:**
|
||||
CLS는 시각적 안정성을 측정하는 지표로, 페이지 로드 중 요소들의 위치가 변경되는 레이아웃 이동 현상을 수치화합니다 [1, 2]. 이상적이고 쾌적한 사용자 경험을 위해 CLS 점수는 0.1 미만이어야 하며, 0.25를 초과할 경우 상태가 매우 나쁜 것으로 간주되어 성능 개선이 필요합니다 [3]. LCP, INP와 함께 최적화되어야 하는 코어 웹 바이탈의 중요 요소입니다 [4].
|
||||
|
||||
@@ -43,7 +56,7 @@ last_updated: 2026-05-02
|
||||
- **Font Display:** `font-display: swap` 설정을 통해 텍스트 구조 변동 최소화.
|
||||
- **의의:** 시각적 안정성을 확보함으로써 오클릭(Misclick)을 방지하고, 검색 엔진 랭킹 점수를 높이며 사용자의 신뢰도를 향상시킴.
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요.
|
||||
- **정책 변화:** Programming & Language 분야의 자동 자산화 수행.
|
||||
|
||||
@@ -52,7 +65,7 @@ last_updated: 2026-05-02
|
||||
- **과거 데이터와의 충돌:** 과거에는 CLS 우수 기준이 0.1이었으나, 2025년 Google 정책 업데이트를 기점으로 0.08 미만(25% 강화)으로 더욱 엄격해짐.
|
||||
- **정책 변화:** Antigravity 프로젝트는 모든 UI 컴포넌트에 대해 'Zero Layout Shift' 정책을 강제하며, 빌드 타임에 이미지 크기 미지정 요소를 자동 검출하여 오류를 발생시키는 정책을 시행함.
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
## 🔗 지식 연결 (Graph)
|
||||
- **Related Topics:** [[Core Web Vitals|Core Web Vitals]], Largest Contentful Paint (LCP), [[Interaction to Next Paint (INP)|Interaction to Next Paint (INP]]
|
||||
- **Projects/Contexts:** [[Chrome DevTools|Chrome DevTools]], [[Interop 2026|Interop 2026]]
|
||||
- **Contradictions/Notes:** CLS 수치는 기기의 해상도에 크게 의존하기 때문에 실제 방문자 데이터를 나타내는 현장(Field) 데이터와 개발자의 로컬(Local) 데이터 간에 차이가 발생하기 쉽습니다. 이러한 이유로 코어 웹 바이탈 지표 중에서도 에뮬레이션하여 측정하기 가장 까다로운 지표로 평가받습니다 [8].
|
||||
@@ -66,3 +79,52 @@ last_updated: 2026-05-02
|
||||
|
||||
- [[Core-Web-Vitals|Core-Web-Vitals]], LCP-Largest-Contentful-Paint, INP-Interaction-to-Next-Paint, Web-Performance-Optimization, SEO-Foundations
|
||||
- **Raw Source:** 00_Raw/CLS (Cumulative Layout Shift).md
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,17 +1,93 @@
|
||||
---
|
||||
id: wiki-2026-0508-cyclomatic-complexity
|
||||
title: Cyclomatic Complexity
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [uncategorized]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Cyclomatic Complexity]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
Cyclomatic Complexity(순환 복잡도)는 소프트웨어 공학에서 코드의 복잡성을 평가하기 위해 사용되는 소프트웨어 측정 지표 중 하나입니다 [1]. 리팩토링의 결과와 품질을 평가하는 추상 구문 트리(AST) 기반 지표로 활용되며, 코드의 결합도 분석과 함께 사용됩니다 [2]. 성공적인 구조적 리팩토링을 거친 코드는 일반적으로 함수당 평균 순환 복잡도 수치가 감소하여 유지보수성이 향상되는 특징을 보입니다 [3, 4].
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
* **리팩토링을 통한 복잡도 감소**: AI를 활용한 리팩토링 사례 연구에 따르면, 비대한 라우팅 레이어의 로직을 여러 기능별 전용 레이어로 모듈화하여 재분배한 결과 전체 함수의 수는 늘어났음에도 함수당 평균 순환 복잡도는 2.24에서 2.13으로 낮아졌으며, 라우팅 레이어 자체의 평균 복잡도는 1.97까지 하락했습니다 [3, 4].
|
||||
* **실증적 연구에서의 검증**: 마이크로소프트의 대규모 시스템(Windows 7) 진화 기록 분석에서도, 리팩토링이 우선적으로 집중된 상위 5%의 모듈은 나머지 95%의 일반 모듈에 비해 순환 복잡도(Cyclomatic complexity)를 비롯한 여러 복잡성 지표(Fan-in, Fan-out 등)를 더 큰 폭으로 감소시키는 것으로 확인되었습니다 [5, 6].
|
||||
* **품질 측정의 객관적 척도**: 순환 복잡도는 아키텍처의 의존성 분석과 같은 AST 기반 메트릭과 함께 사용되어, 변경된 코드가 단순히 재배치된 것을 넘어 실제적인 구조적 개선(예: 응집도 높은 자기 완결적 모듈로의 전환)을 이루었는지 검증하는 도구로 쓰입니다 [2, 3].
|
||||
* *(참고: 제공된 소스 내에 순환 복잡도를 계산하는 정확한 수학적 공식이나 구체적인 이론적 산출 기준에 대한 관련 정보는 부족합니다.)*
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
* **구성 요소 및 코드 라인 수(LOC) 증가**: 순환 복잡도를 낮추기 위해 응집도 높은 여러 개의 작은 모듈이나 함수로 논리를 분리하는 최적화를 거치면, 필연적으로 시스템 내 전체 함수 및 컴포넌트의 수는 증가하게 됩니다(예: 806개에서 1,022개로 증가) [3]. 결과적으로 개별 함수의 복잡도는 감소하지만 전체 코드 라인 수(LOC)와 파일 수는 오히려 증가하는 반대 급부(Trade-off)가 발생합니다 [7-9].
|
||||
* **다차원적인 평가의 필요성**: 순환 복잡도와 같은 지표가 개선되었다고 해서 소프트웨어 수정 비용이 모든 측면에서 줄어드는 것은 아닙니다. 리팩토링된 모듈은 복잡도 수치가 낮아지더라도, 구조적 변경으로 인해 수정 사항이 시스템 여러 곳에 흩어지는 '교차 절단 변경(crosscutting changes)'을 유발할 수 있으므로 단일 지표가 아닌 다차원적인 영향 평가가 반드시 수반되어야 합니다 [8, 9].
|
||||
|
||||
---
|
||||
*Last updated: 2026-05-03*
|
||||
*Last updated: 2026-05-03*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
|
||||
- **Parent:** [[10_Wiki/Topics]]
|
||||
- **Related:** *(TODO: 최소 2개)*
|
||||
- **Opposite / Trade-off:** *(TODO)*
|
||||
- **Raw Source:** 직접 입력
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,20 +1,33 @@
|
||||
---
|
||||
category: Unified
|
||||
id: wiki-2026-0508-dom-document-object-model
|
||||
title: DOM(Document Object Model)
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [auto-consolidated, technical-documentation]
|
||||
title: [[DOM (Document Object Model)|DOM (Document Object Model]]
|
||||
last_updated: 2026-05-02
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[DOM (Document Object Model)|DOM (Document Object Model]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
[[DOM (Document Object Model)|DOM(Document Object Model]]은 브라우저가 수신한 HTML 문서 데이터를 파싱하여 생성하는 페이지 구조의 계층적 트리 표현입니다 [1-3]. 브라우저는 HTML 태그의 포함 관계를 바탕으로 부모 및 자식 노드의 트리를 형성하며, `<html>` 요소를 루트 노드로 갖습니다 [4, 5]. DOM은 페이지의 모든 콘텐츠 정보를 담고 있으며, 스타일 정보를 담은 CSSOM과 결합해 최종 화면 출력에 필요한 렌더 트리([[Render Tree|Render Tree]])를 형성하는 브라우저 렌더링 과정의 핵심 기반입니다 [6-8].
|
||||
|
||||
---
|
||||
|
||||
DOM(Document Object Model)은 브라우저가 HTML 마크업을 내부적으로 표현하기 위해 생성하는 계층적인 트리 구조의 객체 모델입니다 [1, 2]. 브라우저가 HTML 데이터를 수신하면서 점진적으로 생성하며, 웹 페이지의 모든 콘텐츠와 요소 간의 구조적 관계를 담고 있습니다 [1, 3, 4]. 자바스크립트([[JavaScript|JavaScript]]) 내의 다양한 API를 통해 DOM에 접근하고 이를 동적으로 조작할 수 있습니다 [2].
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
* **DOM 트리의 점진적 구축 (Incremental Construction)**
|
||||
브라우저는 네트워크를 통해 HTML 문서의 전체 데이터를 다 받기 전부터 점진적으로 DOM 트리를 구축할 수 있습니다 [1, 4]. 초기 14KB의 데이터 패킷이 수신되면 바이트를 문자로, 문자를 토큰(startTag 및 endTag 등)으로 변환한 뒤, 최종적으로 노드(Node)로 변환하여 트리를 조립합니다 [1, 4]. 이 점진적 생성 메커니즘 덕분에 네트워크 요청이 진행 중인 상태에서도 브라우저는 렌더링 준비를 시작할 수 있습니다 [9].
|
||||
|
||||
@@ -41,10 +54,10 @@ DOM(Document Object Model)은 브라우저가 HTML 마크업을 내부적으로
|
||||
- **직접적인 DOM 조작의 한계 (Limitations of Direct DOM Manipulation)**
|
||||
자바스크립트 등을 통해 DOM을 직접 변경하는 작업은 브라우저의 레이아웃(Reflow)과 페인트 단계를 지속적으로 트리거하기 때문에 본질적으로 속도가 느리고 비용이 많이 듭니다 [10]. 애플리케이션이 복잡해질 경우 여러 노드를 개별적으로 업데이트하면 중복 연산이 발생하며, 이는 React와 같은 프레임워크가 가상 DOM([[Virtual DOM|Virtual DOM]])을 도입하게 된 핵심 배경이 되었습니다 [10].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
No trade-offs available.
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
## 🔗 지식 연결 (Graph)
|
||||
- **Related Topics:** CSSOM (CSS Object Model), [[Render Tree|Render Tree]], Virtual DOM, [[Critical Rendering Path (CRP)|Critical Rendering Path (CRP]], Reflow (Layout), Repaint
|
||||
- **Projects/Contexts:** 프론트엔드 성능 최적화(DOM 접근 최소화 및 렌더링 파이프라인 관리), React의 렌더링 엔진 구조 및 재조정([[Reconciliation|Reconciliation]]) 과정 이해 [6, 17, 23, 24].
|
||||
- **Contradictions/Notes:** DOM 구축은 HTML을 파싱하면서 '점진적(incremental)'으로 이루어지지만, CSSOM 구축은 렌더링을 차단(render-[[Blocking|Blocking]])하며 점진적으로 처리되지 않는다는 구조적 차이가 있습니다 [1, 7, 9].
|
||||
@@ -60,3 +73,52 @@ No trade-offs available.
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-25*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,13 +1,26 @@
|
||||
---
|
||||
category: Unified
|
||||
id: wiki-2026-0508-dom
|
||||
title: DOM
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [auto-consolidated, technical-documentation]
|
||||
title: [[DOM 요소 조작 및 타입 좁히기|DOM 요소 조작 및 타입 좁히기]]
|
||||
last_updated: 2026-05-02
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[DOM 요소 조작 및 타입 좁히기|DOM 요소 조작 및 타입 좁히기]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
> DOM 요소 조작 시에는 타입스크립트의 타입 좁히기(Type Narrowing) 기술을 통해 타입 안정성을 확보하는 것이 중요합니다. 타입 좁히기란 코드 흐름 분석을 사용하여 포괄적인 타입(유니온 타입 등)을 구체적인 단일 타입으로 줄여나가는 과정입니다 [1-3]. DOM 요소를 다루거나 구조가 명확하지 않은 데이터를 처리할 때, 타입 단언(`as`), 사용자 정의 타입 가드, `typeof` 및 `instanceof` 연산자 등을 활용하여 안전하게 타입을 좁혀 조작할 수 있습니다 [4-6].
|
||||
|
||||
---
|
||||
@@ -18,7 +31,7 @@ last_updated: 2026-05-02
|
||||
|
||||
[[DOM (Document Object Model)|DOM(Document Object Model]]은 브라우저가 수신한 HTML 문서를 구문 분석하여 구성하는 문서의 구조와 콘텐츠를 나타내는 계층적 트리 구조입니다 [1-3]. 이는 브라우저의 렌더링 과정인 크리티컬 렌더링 패스(CRP)에서 CSSOM과 결합하여 화면에 그려질 렌더 트리(Render Tree)를 생성하는 핵심 기초가 됩니다 [4-6]. [[JavaScript|JavaScript]]를 통한 직접적인 DOM 조작은 레이아웃(Reflow)과 페인트 작업을 유발해 성능을 저하시키므로, 최신 프레임워크인 React는 이를 최적화하기 위해 [[Virtual DOM|Virtual DOM]]을 활용합니다 [7].
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
**DOM 요소 조작 시 타입 단언(`as`)의 활용**
|
||||
* DOM 요소로 작업하며 타입을 좁혀야 할 때, 타입 단언(`as`) 연산자가 주로 활용됩니다 [5].
|
||||
* 타입 단언은 런타임 검증을 마쳤거나 DOM 조작과 같이 불가피한 상황에서 컴파일러에게 특정 타입임을 강제할 때 사용합니다 [5, 7]. 하지만 개발자가 잘못 판단할 경우 컴파일러가 에러를 잡지 못해 런타임 오류로 이어질 수 있으므로 사용에 매우 주의해야 합니다 [7, 8].
|
||||
@@ -51,7 +64,7 @@ last_updated: 2026-05-02
|
||||
* **성능 최적화 및 접근 최소화 방법:** DOM 조작으로 인한 성능 저하를 막기 위해 DOM 노드나 속성값을 변수에 캐싱(Caching)하여 재사용하거나, 연산을 반복문 외부로 빼내어 DOM 상호작용 횟수를 최소화해야 합니다 [18, 19]. 특히, DOM 값을 읽는 작업(Phase 1)과 수정하는 작업(Phase 2)을 교차로 수행하는 레이아웃 스래싱([[Layout Thrashing|Layout Thrashing]])을 방지하도록 코드를 분리하는 것이 중요합니다 [19-21].
|
||||
* **React의 Virtual DOM 도입 배경:** 위와 같은 직접적인 DOM 조작의 비효율성을 극복하기 위해 React는 메모리상에 존재하는 가벼운 복사본인 Virtual DOM(VDOM)을 도입했습니다 [7, 22]. 상태가 변경되면 React는 새로운 Virtual DOM을 생성하고 이전과 비교(Diffing/[[Reconciliation|Reconciliation]])하여 변경된 최소한의 부분만을 실제 DOM에 반영함으로써 렌더링 성능을 극대화합니다 [7, 22, 23].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요.
|
||||
- **정책 변화:** Programming & Language 분야의 자동 자산화 수행.
|
||||
|
||||
@@ -60,7 +73,7 @@ last_updated: 2026-05-02
|
||||
- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요.
|
||||
- **정책 변화:** Programming & Language 분야의 자동 자산화 수행.
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
## 🔗 지식 연결 (Graph)
|
||||
- **Related Topics:** Type Narrowing, Type Assertions, [[Discriminated Unions|Discriminated Unions]], Branded Types
|
||||
- **Projects/Contexts:** 안전한 DOM 조작 및 데이터 정제, React 컴포넌트 Props 처리
|
||||
- **Contradictions/Notes:** 타입 단언(`as`)은 DOM 요소를 다루며 타입을 좁힐 때 유용하고 흔하게 사용되지만 [5], 런타임 동작에는 영향을 주지 않으므로 타입 에러를 우회하여 잘못된 코드를 통과시킬 위험이 있습니다. 따라서 가능한 한 `satisfies`나 사용자 정의 타입 가드 등 더 안전한 방식을 우선적으로 고려하는 것이 좋습니다 [7, 8, 15].
|
||||
@@ -89,3 +102,52 @@ last_updated: 2026-05-02
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-25*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,20 +1,33 @@
|
||||
---
|
||||
category: Unified
|
||||
id: wiki-2026-0508-dora-metrics
|
||||
title: DORA Metrics
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [auto-consolidated, technical-documentation]
|
||||
title: [[DORA Metrics (소프트웨어 전달 성과 지표)|DORA Metrics (소프트웨어 전달 성과 지표]]
|
||||
last_updated: 2026-05-02
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[DORA Metrics (소프트웨어 전달 성과 지표)|DORA Metrics (소프트웨어 전달 성과 지표]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
DORA(DevOps Research and Assessment) 지표는 소프트웨어 개발 조직의 전달(Delivery) 성능과 운영 효율성을 측정하는 글로벌 표준 기준입니다 [1]. 코드 리뷰의 속도와 효율성은 DORA 지표에 직결되며, 빠른 리뷰 주기를 유지하는 엘리트(Elite) 팀은 그렇지 않은 팀보다 50% 더 높은 딜리버리 성과를 보입니다 [2]. DORA 지표는 배포 빈도, 변경 리드 타임, 서비스 복구 시간, 변경 실패율의 4가지 핵심 지표를 통해 조직의 역량을 객관적으로 진단합니다 [3].
|
||||
|
||||
---
|
||||
|
||||
> "엘리트 개발 팀의 성적표: 단순히 '얼마나 많이 만드는가'가 아니라, '얼마나 빠르고 안전하게 사용자에게 가치를 전달하는가'를 4가지 핵심 숫자로 입증하여 조직의 생산성 격차를 시각화하는 강력한 리트머스 시험지."
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
* **4대 핵심 지표 (Four Key Metrics):**
|
||||
1. **배포 빈도 (Deployment Frequency):** 코드가 프로덕션에 얼마나 자주 배포되는가? (엘리트 팀: 하루에 수회 이상) [3]
|
||||
2. **변경 리드 타임 (Lead Time for Changes):** 코드가 커밋된 후 프로덕션에 배포되기까지 걸리는 시간 (엘리트 팀: 1시간 미만) [3]
|
||||
@@ -39,7 +52,7 @@ DORA Metrics는 Google의 DevOps [[Research|Research]] and [[Assessment|Assessme
|
||||
2. **왜 중요한가?**:
|
||||
* 속도와 안정성을 상충 관계(Trade-off)가 아닌, 상호 보완 관계로 정의하여 '엘리트 그룹'으로 가기 위한 정량적 목표 정책을 제시하기 때문임. ([[Efficiency|Efficiency]]와 연결)
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
* **속도 vs 철저함:** 엘리트 기준(6시간 이내 완료)을 무리하게 추구할 경우, 코드 리뷰가 피상적으로 흐르거나 보안 결함을 놓칠 위험이 있습니다 [6, 7].
|
||||
* **니트피킹(Nit-picking)의 함정:** 사소한 스타일 교정에 집착하여 리뷰 시간을 지연시키면 리드 타임이 악화됩니다 [8]. 스타일 검사는 자동화 도구에 위임하고, 리뷰어는 아키텍처 및 핵심 로직에 집중하여 속도와 철저함의 균형을 맞춰야 합니다 [10].
|
||||
* **데이터 오염:** 지표 달성 자체에만 매몰되면 개발자가 PR을 인위적으로 쪼개거나 품질을 희생하는 등 수치가 실제 생산성을 대변하지 못하게 될 수 있습니다.
|
||||
@@ -49,7 +62,7 @@ DORA Metrics는 Google의 DevOps [[Research|Research]] and [[Assessment|Assessme
|
||||
- **과거 데이터와의 충돌**: 과거에는 단순히 LOC(코드 라인 수)나 커밋 수 정책으로 개발자 성과를 측정했으나, DORA 정책은 '가치 전달의 흐름 정책(Flow)' 중심의 측정 정책이 조직의 성공과 직결됨을 증명함(RL Update).
|
||||
- **정책 변화(RL Update)**: 최근에는 4대 지표 정책에 '안정성 정책' 외에 '운영 효율성 정책'을 시각화하는 5번째 지표(Reliability)를 추가하여 서비스 가용성 정책을 더욱 정밀하게 관리하는 추세임. (Reliability와 연결)
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
## 🔗 지식 연결 (Graph)
|
||||
### Related Concepts
|
||||
* **Review-Speed Benchmarks**: DORA 데이터를 기반으로 리뷰 속도를 엘리트, 우수, 수용 가능 수준으로 구분하여 정량 평가하는 기준입니다.
|
||||
* **Pull Request Size Limits (PR 크기 제한**: 엘리트 등급의 리뷰 속도 달성을 위한 선제 조건으로, 리뷰어의 인지 부하를 최소화합니다.
|
||||
@@ -82,3 +95,52 @@ DORA Metrics는 Google의 DevOps [[Research|Research]] and [[Assessment|Assessme
|
||||
- [[Efficiency|Efficiency]], [[Reliability|Reliability]], [[Scalability|Scalability]], Standard-Operating-Procedure, [[Management|Management]], [[Strategic-Planning|Strategic-Planning]]
|
||||
- **Category**: Elite, High, Medium, Low performers.
|
||||
---
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
+93
@@ -1,3 +1,23 @@
|
||||
---
|
||||
id: wiki-2026-0508-adr-0001-나는-volumes-data-project
|
||||
title: ADR 0001 나는 volumes data project antigravity connectai 여기에서 사용자가 질문이나
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [uncategorized]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# ADR: 나는 /Volumes/Data/project/Antigravity/ConnectAI 여기에서 사용자가 질문이나,, ,보고서를 작성해달라고 했을때...
|
||||
|
||||
## Status
|
||||
@@ -17,3 +37,76 @@ Not captured yet.
|
||||
|
||||
## Consequences
|
||||
- Future prompts should treat this as project context unless the user changes direction.
|
||||
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
|
||||
> *(TODO: 한 문장으로 핵심 통찰을 작성. "X는 Y 조건에서 Z 효과를 낸다" 구조 권장.)*
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
|
||||
**추출된 패턴:**
|
||||
> *(TODO)*
|
||||
|
||||
**세부 내용:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
|
||||
- **과거 데이터와의 충돌:** 없음
|
||||
- **정책 변화:** 없음
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
|
||||
- **Parent:** [[10_Wiki/Topics]]
|
||||
- **Related:** *(TODO: 최소 2개)*
|
||||
- **Opposite / Trade-off:** *(TODO)*
|
||||
- **Raw Source:** 직접 입력
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
+67
@@ -1,3 +1,20 @@
|
||||
---
|
||||
id: wiki-2026-0508-adr-0002-어제-오늘-너에-대해서-기능-개선을-많이-
|
||||
title: ADR 0002 어제 오늘 너에 대해서 기능 개선을 많이 했어 이제 너를 통해 어떠한 것들을 할 수 있을지 너가 의견주면 좋
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [uncategorized]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
---
|
||||
|
||||
# ADR: 어제 , 오늘 너에 대해서 기능 개선을 많이 했어. 이제 너를 통해 어떠한 것들을 할 수 있을지 너가 의견주면 좋겠어.
|
||||
|
||||
## Status
|
||||
@@ -17,3 +34,53 @@ Not captured yet.
|
||||
|
||||
## Consequences
|
||||
- Future prompts should treat this as project context unless the user changes direction.
|
||||
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
|
||||
> *(TODO: 한 문장으로 핵심 통찰을 작성. "X는 Y 조건에서 Z 효과를 낸다" 구조 권장.)*
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
|
||||
**추출된 패턴:**
|
||||
> *(TODO)*
|
||||
|
||||
**세부 내용:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
|
||||
- **과거 데이터와의 충돌:** 없음
|
||||
- **정책 변화:** 없음
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
|
||||
- **Parent:** [[10_Wiki/Topics]]
|
||||
- **Related:** *(TODO: 최소 2개)*
|
||||
- **Opposite / Trade-off:** *(TODO)*
|
||||
- **Raw Source:** 직접 입력
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
+67
@@ -1,3 +1,20 @@
|
||||
---
|
||||
id: wiki-2026-0508-adr-0003-volumes-data-project-an
|
||||
title: ADR 0003 volumes data project antigravity skybound 이 프로젝트 설게와 구조 모듈화
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [uncategorized]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
---
|
||||
|
||||
# ADR: /Volumes/Data/project/Antigravity/Skybound 이 프로젝트 설게와 구조, 모듈화 , 코드 리뷰를 했을때 너가 코드...
|
||||
|
||||
## Status
|
||||
@@ -17,3 +34,53 @@ Not captured yet.
|
||||
|
||||
## Consequences
|
||||
- Future prompts should treat this as project context unless the user changes direction.
|
||||
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
|
||||
> *(TODO: 한 문장으로 핵심 통찰을 작성. "X는 Y 조건에서 Z 효과를 낸다" 구조 권장.)*
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
|
||||
**추출된 패턴:**
|
||||
> *(TODO)*
|
||||
|
||||
**세부 내용:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
|
||||
- **과거 데이터와의 충돌:** 없음
|
||||
- **정책 변화:** 없음
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
|
||||
- **Parent:** [[10_Wiki/Topics]]
|
||||
- **Related:** *(TODO: 최소 2개)*
|
||||
- **Opposite / Trade-off:** *(TODO)*
|
||||
- **Raw Source:** 직접 입력
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
+67
@@ -1,3 +1,20 @@
|
||||
---
|
||||
id: wiki-2026-0508-adr-0004-그래서-너의-생각은-어떄-이-프로젝트-코드
|
||||
title: ADR 0004 그래서 너의 생각은 어떄 이 프로젝트 코드 상태에 대한 너의 의견을 듣고 싶어
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [uncategorized]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
---
|
||||
|
||||
# ADR: 그래서 너의 생각은 어떄? 이 프로젝트 코드 상태에 대한 너의 의견을 듣고 싶어.
|
||||
|
||||
## Status
|
||||
@@ -17,3 +34,53 @@ Not captured yet.
|
||||
|
||||
## Consequences
|
||||
- Future prompts should treat this as project context unless the user changes direction.
|
||||
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
|
||||
> *(TODO: 한 문장으로 핵심 통찰을 작성. "X는 Y 조건에서 Z 효과를 낸다" 구조 권장.)*
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
|
||||
**추출된 패턴:**
|
||||
> *(TODO)*
|
||||
|
||||
**세부 내용:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
|
||||
- **과거 데이터와의 충돌:** 없음
|
||||
- **정책 변화:** 없음
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
|
||||
- **Parent:** [[10_Wiki/Topics]]
|
||||
- **Related:** *(TODO: 최소 2개)*
|
||||
- **Opposite / Trade-off:** *(TODO)*
|
||||
- **Raw Source:** 직접 입력
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
+67
@@ -1,3 +1,20 @@
|
||||
---
|
||||
id: wiki-2026-0508-adr-0005-skybound-프로젝트를-다시-한번-시작
|
||||
title: ADR 0005 skybound 프로젝트를 다시 한번 시작하려고 하는데 어떻게 해야할지 내가 방향을 잃었어
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [uncategorized]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
---
|
||||
|
||||
# ADR: skybound 프로젝트를 다시 한번 시작하려고 하는데 어떻게 해야할지 내가 방향을 잃었어.
|
||||
|
||||
## Status
|
||||
@@ -17,3 +34,53 @@ Not captured yet.
|
||||
|
||||
## Consequences
|
||||
- Future prompts should treat this as project context unless the user changes direction.
|
||||
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
|
||||
> *(TODO: 한 문장으로 핵심 통찰을 작성. "X는 Y 조건에서 Z 효과를 낸다" 구조 권장.)*
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
|
||||
**추출된 패턴:**
|
||||
> *(TODO)*
|
||||
|
||||
**세부 내용:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
|
||||
- **과거 데이터와의 충돌:** 없음
|
||||
- **정책 변화:** 없음
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
|
||||
- **Parent:** [[10_Wiki/Topics]]
|
||||
- **Related:** *(TODO: 최소 2개)*
|
||||
- **Opposite / Trade-off:** *(TODO)*
|
||||
- **Raw Source:** 직접 입력
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
+67
@@ -1,3 +1,20 @@
|
||||
---
|
||||
id: wiki-2026-0508-adr-0006-지금-우리는-guard-모드가-있고-ma-
|
||||
title: ADR 0006 지금 우리는 guard 모드가 있고 ma 모드가 있어 근대 구지 이렇게 모드를 분리해서 사용하는게 좋을까 라
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [uncategorized]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
---
|
||||
|
||||
# ADR: 지금 우리는 guard 모드가 있고 MA 모드가 있어. 근대 구지 이렇게 모드를 분리해서 사용하는게 좋을까? 라는 생각이 드네.
|
||||
|
||||
## Status
|
||||
@@ -17,3 +34,53 @@ Not captured yet.
|
||||
|
||||
## Consequences
|
||||
- Future prompts should treat this as project context unless the user changes direction.
|
||||
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
|
||||
> *(TODO: 한 문장으로 핵심 통찰을 작성. "X는 Y 조건에서 Z 효과를 낸다" 구조 권장.)*
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
|
||||
**추출된 패턴:**
|
||||
> *(TODO)*
|
||||
|
||||
**세부 내용:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
|
||||
- **과거 데이터와의 충돌:** 없음
|
||||
- **정책 변화:** 없음
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
|
||||
- **Parent:** [[10_Wiki/Topics]]
|
||||
- **Related:** *(TODO: 최소 2개)*
|
||||
- **Opposite / Trade-off:** *(TODO)*
|
||||
- **Raw Source:** 직접 입력
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
@@ -1,3 +1,20 @@
|
||||
---
|
||||
id: wiki-2026-0508-adr-0007-너는-어떠한-기능이-있고-나에게-어떠한-도
|
||||
title: ADR 0007 너는 어떠한 기능이 있고 나에게 어떠한 도움을 줄 수 있어
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [uncategorized]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
---
|
||||
|
||||
# ADR: 너는 어떠한 기능이 있고, 나에게 어떠한 도움을 줄 수 있어?
|
||||
|
||||
## Status
|
||||
@@ -17,3 +34,53 @@ Not captured yet.
|
||||
|
||||
## Consequences
|
||||
- Future prompts should treat this as project context unless the user changes direction.
|
||||
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
|
||||
> *(TODO: 한 문장으로 핵심 통찰을 작성. "X는 Y 조건에서 Z 효과를 낸다" 구조 권장.)*
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
|
||||
**추출된 패턴:**
|
||||
> *(TODO)*
|
||||
|
||||
**세부 내용:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
|
||||
- **과거 데이터와의 충돌:** 없음
|
||||
- **정책 변화:** 없음
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
|
||||
- **Parent:** [[10_Wiki/Topics]]
|
||||
- **Related:** *(TODO: 최소 2개)*
|
||||
- **Opposite / Trade-off:** *(TODO)*
|
||||
- **Raw Source:** 직접 입력
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
+67
@@ -1,3 +1,20 @@
|
||||
---
|
||||
id: wiki-2026-0508-adr-0008-내가-지금-개발-중인-datacollect
|
||||
title: ADR 0008 내가 지금 개발 중인 datacollector mac에 대해서 너의 의견을 듣고 싶어
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [uncategorized]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
---
|
||||
|
||||
# ADR: 내가 지금 개발 중인 datacollector_mac에 대해서 너의 의견을 듣고 싶어.
|
||||
|
||||
## Status
|
||||
@@ -17,3 +34,53 @@ Not captured yet.
|
||||
|
||||
## Consequences
|
||||
- Future prompts should treat this as project context unless the user changes direction.
|
||||
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
|
||||
> *(TODO: 한 문장으로 핵심 통찰을 작성. "X는 Y 조건에서 Z 효과를 낸다" 구조 권장.)*
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
|
||||
**추출된 패턴:**
|
||||
> *(TODO)*
|
||||
|
||||
**세부 내용:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
|
||||
- **과거 데이터와의 충돌:** 없음
|
||||
- **정책 변화:** 없음
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
|
||||
- **Parent:** [[10_Wiki/Topics]]
|
||||
- **Related:** *(TODO: 최소 2개)*
|
||||
- **Opposite / Trade-off:** *(TODO)*
|
||||
- **Raw Source:** 직접 입력
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
@@ -1,3 +1,20 @@
|
||||
---
|
||||
id: wiki-2026-0508-adr-0009-넌-회의록도-작성할-수-있어
|
||||
title: ADR 0009 넌 회의록도 작성할 수 있어
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [uncategorized]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
---
|
||||
|
||||
# ADR: 넌 회의록도 작성할 수 있어
|
||||
|
||||
## Status
|
||||
@@ -17,3 +34,53 @@ Not captured yet.
|
||||
|
||||
## Consequences
|
||||
- Future prompts should treat this as project context unless the user changes direction.
|
||||
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
|
||||
> *(TODO: 한 문장으로 핵심 통찰을 작성. "X는 Y 조건에서 Z 효과를 낸다" 구조 권장.)*
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
|
||||
**추출된 패턴:**
|
||||
> *(TODO)*
|
||||
|
||||
**세부 내용:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
|
||||
- **과거 데이터와의 충돌:** 없음
|
||||
- **정책 변화:** 없음
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
|
||||
- **Parent:** [[10_Wiki/Topics]]
|
||||
- **Related:** *(TODO: 최소 2개)*
|
||||
- **Opposite / Trade-off:** *(TODO)*
|
||||
- **Raw Source:** 직접 입력
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
+67
@@ -1,3 +1,20 @@
|
||||
---
|
||||
id: wiki-2026-0508-adr-0010-너의-역활은-뭐고-너가-부족한-것은-뭐가-
|
||||
title: ADR 0010 너의 역활은 뭐고 너가 부족한 것은 뭐가 있을까 지식 부분에 있어서 너가 부족한 것이 있다면 내게 말해줘 그
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [uncategorized]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
---
|
||||
|
||||
# ADR: 너의 역활은 뭐고 너가 부족한 것은 뭐가 있을까? 지식 부분에 있어서 너가 부족한 것이 있다면 내게 말해줘. 그럼 내가 체워 넣을께.
|
||||
|
||||
## Status
|
||||
@@ -17,3 +34,53 @@ Not captured yet.
|
||||
|
||||
## Consequences
|
||||
- Future prompts should treat this as project context unless the user changes direction.
|
||||
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
|
||||
> *(TODO: 한 문장으로 핵심 통찰을 작성. "X는 Y 조건에서 Z 효과를 낸다" 구조 권장.)*
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
|
||||
**추출된 패턴:**
|
||||
> *(TODO)*
|
||||
|
||||
**세부 내용:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
|
||||
- **과거 데이터와의 충돌:** 없음
|
||||
- **정책 변화:** 없음
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
|
||||
- **Parent:** [[10_Wiki/Topics]]
|
||||
- **Related:** *(TODO: 최소 2개)*
|
||||
- **Opposite / Trade-off:** *(TODO)*
|
||||
- **Raw Source:** 직접 입력
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
+67
@@ -1,3 +1,20 @@
|
||||
---
|
||||
id: wiki-2026-0508-adr-0011-나는-너를-아이언맨의-자비스처럼-만들고-싶
|
||||
title: ADR 0011 나는 너를 아이언맨의 자비스처럼 만들고 싶어 어떠한 구조를 더 공부를하고 너의 제2뇌에 어떤 지식과 너의 설
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [uncategorized]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
---
|
||||
|
||||
# ADR: 나는 너를 아이언맨의 자비스처럼 만들고 싶어. 어떠한 구조를 더 공부를하고 너의 제2뇌에 어떤 지식과 너의 설계에서 어떤 부분을 더 공부를 해야...
|
||||
|
||||
## Status
|
||||
@@ -17,3 +34,53 @@ Not captured yet.
|
||||
|
||||
## Consequences
|
||||
- Future prompts should treat this as project context unless the user changes direction.
|
||||
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
|
||||
> *(TODO: 한 문장으로 핵심 통찰을 작성. "X는 Y 조건에서 Z 효과를 낸다" 구조 권장.)*
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
|
||||
**추출된 패턴:**
|
||||
> *(TODO)*
|
||||
|
||||
**세부 내용:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
|
||||
- **과거 데이터와의 충돌:** 없음
|
||||
- **정책 변화:** 없음
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
|
||||
- **Parent:** [[10_Wiki/Topics]]
|
||||
- **Related:** *(TODO: 최소 2개)*
|
||||
- **Opposite / Trade-off:** *(TODO)*
|
||||
- **Raw Source:** 직접 입력
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
+67
@@ -1,3 +1,20 @@
|
||||
---
|
||||
id: wiki-2026-0508-adr-0012-안녕-너의-기능을-많은-부분-업그래에드-했
|
||||
title: ADR 0012 안녕 너의 기능을 많은 부분 업그래에드 했는데 확인할 방법이 없네
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [uncategorized]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
---
|
||||
|
||||
# ADR: 안녕 , 너의 기능을 많은 부분 업그래에드 했는데 확인할 방법이 없네? ㅎㅎ
|
||||
|
||||
## Status
|
||||
@@ -17,3 +34,53 @@ Not captured yet.
|
||||
|
||||
## Consequences
|
||||
- Future prompts should treat this as project context unless the user changes direction.
|
||||
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
|
||||
> *(TODO: 한 문장으로 핵심 통찰을 작성. "X는 Y 조건에서 Z 효과를 낸다" 구조 권장.)*
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
|
||||
**추출된 패턴:**
|
||||
> *(TODO)*
|
||||
|
||||
**세부 내용:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
|
||||
- **과거 데이터와의 충돌:** 없음
|
||||
- **정책 변화:** 없음
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
|
||||
- **Parent:** [[10_Wiki/Topics]]
|
||||
- **Related:** *(TODO: 최소 2개)*
|
||||
- **Opposite / Trade-off:** *(TODO)*
|
||||
- **Raw Source:** 직접 입력
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
@@ -1,3 +1,20 @@
|
||||
---
|
||||
id: wiki-2026-0508-adr-0013-접근-안되
|
||||
title: ADR 0013 접근 안되
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [uncategorized]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
---
|
||||
|
||||
# ADR: 접근 안되?
|
||||
|
||||
## Status
|
||||
@@ -17,3 +34,53 @@ Not captured yet.
|
||||
|
||||
## Consequences
|
||||
- Future prompts should treat this as project context unless the user changes direction.
|
||||
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
|
||||
> *(TODO: 한 문장으로 핵심 통찰을 작성. "X는 Y 조건에서 Z 효과를 낸다" 구조 권장.)*
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
|
||||
**추출된 패턴:**
|
||||
> *(TODO)*
|
||||
|
||||
**세부 내용:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
|
||||
- **과거 데이터와의 충돌:** 없음
|
||||
- **정책 변화:** 없음
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
|
||||
- **Parent:** [[10_Wiki/Topics]]
|
||||
- **Related:** *(TODO: 최소 2개)*
|
||||
- **Opposite / Trade-off:** *(TODO)*
|
||||
- **Raw Source:** 직접 입력
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
+67
@@ -1,3 +1,20 @@
|
||||
---
|
||||
id: wiki-2026-0508-adr-0016-지금-그러면-내가-제2뇌-지식을-추가-예로
|
||||
title: ADR 0016 지금 그러면 내가 제2뇌 지식을 추가 예로 주식 분석 관련 지식 를 하면 그 지식을 자동으로 인지하고 내가
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [uncategorized]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
---
|
||||
|
||||
# ADR: 지금 그러면 내가 제2뇌 지식을 추가 (예로, 주식 분석 관련 지식) 를 하면 그 지식을 자동으로 인지하고 내가 주식에 대한 질문을 하면 답을 ...
|
||||
|
||||
## Status
|
||||
@@ -17,3 +34,53 @@ Not captured yet.
|
||||
|
||||
## Consequences
|
||||
- Future prompts should treat this as project context unless the user changes direction.
|
||||
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
|
||||
> *(TODO: 한 문장으로 핵심 통찰을 작성. "X는 Y 조건에서 Z 효과를 낸다" 구조 권장.)*
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
|
||||
**추출된 패턴:**
|
||||
> *(TODO)*
|
||||
|
||||
**세부 내용:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
|
||||
- **과거 데이터와의 충돌:** 없음
|
||||
- **정책 변화:** 없음
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
|
||||
- **Parent:** [[10_Wiki/Topics]]
|
||||
- **Related:** *(TODO: 최소 2개)*
|
||||
- **Opposite / Trade-off:** *(TODO)*
|
||||
- **Raw Source:** 직접 입력
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
+67
@@ -1,3 +1,20 @@
|
||||
---
|
||||
id: wiki-2026-0508-adr-0017-마자-근대-너는-기본으로-내가-제2뇌-지식
|
||||
title: ADR 0017 마자 근대 너는 기본으로 내가 제2뇌 지식을 계속 추가해주고 있거든 그럼 내가 이런 행위하는게 너한테는 도움
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [uncategorized]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
---
|
||||
|
||||
# ADR: 마자. 근대 너는 기본으로 내가 제2뇌 지식을 계속 추가해주고 있거든. 그럼 내가 이런 행위하는게 너한테는 도움이 안되는거야?
|
||||
|
||||
## Status
|
||||
@@ -17,3 +34,53 @@ Not captured yet.
|
||||
|
||||
## Consequences
|
||||
- Future prompts should treat this as project context unless the user changes direction.
|
||||
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
|
||||
> *(TODO: 한 문장으로 핵심 통찰을 작성. "X는 Y 조건에서 Z 효과를 낸다" 구조 권장.)*
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
|
||||
**추출된 패턴:**
|
||||
> *(TODO)*
|
||||
|
||||
**세부 내용:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
|
||||
- **과거 데이터와의 충돌:** 없음
|
||||
- **정책 변화:** 없음
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
|
||||
- **Parent:** [[10_Wiki/Topics]]
|
||||
- **Related:** *(TODO: 최소 2개)*
|
||||
- **Opposite / Trade-off:** *(TODO)*
|
||||
- **Raw Source:** 직접 입력
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
+67
@@ -1,3 +1,20 @@
|
||||
---
|
||||
id: wiki-2026-0508-adr-0018-제2뇌에서-데이터를-읽는데-걸리는-시간은-
|
||||
title: ADR 0018 제2뇌에서 데이터를 읽는데 걸리는 시간은 얼만큼이야 수량은 많이 있지만 각문서 용량은 30kb 미만이라서 빠
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [uncategorized]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
---
|
||||
|
||||
# ADR: 제2뇌에서 데이터를 읽는데 걸리는 시간은 얼만큼이야? 수량은 많이 있지만 각문서 용량은 30kb 미만이라서 빠를것 같은데
|
||||
|
||||
## Status
|
||||
@@ -17,3 +34,53 @@ Not captured yet.
|
||||
|
||||
## Consequences
|
||||
- Future prompts should treat this as project context unless the user changes direction.
|
||||
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
|
||||
> *(TODO: 한 문장으로 핵심 통찰을 작성. "X는 Y 조건에서 Z 효과를 낸다" 구조 권장.)*
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
|
||||
**추출된 패턴:**
|
||||
> *(TODO)*
|
||||
|
||||
**세부 내용:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
|
||||
- **과거 데이터와의 충돌:** 없음
|
||||
- **정책 변화:** 없음
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
|
||||
- **Parent:** [[10_Wiki/Topics]]
|
||||
- **Related:** *(TODO: 최소 2개)*
|
||||
- **Opposite / Trade-off:** *(TODO)*
|
||||
- **Raw Source:** 직접 입력
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
+67
@@ -1,3 +1,20 @@
|
||||
---
|
||||
id: wiki-2026-0508-adr-0019-아-아니-내가-말하는것-저-내용에-대한-피
|
||||
title: ADR 0019 아 아니 내가 말하는것 저 내용에 대한 피드백이 아니라 결과값을 써줄때 사용되는 답변 템플렛 format이
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [uncategorized]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
---
|
||||
|
||||
# ADR: 아 아니 내가 말하는것 저 내용에 대한 피드백이 아니라 결과값을 써줄때 사용되는 답변 템플렛, format이 괜찮은가를 묻는거였어.
|
||||
|
||||
## Status
|
||||
@@ -17,3 +34,53 @@ Not captured yet.
|
||||
|
||||
## Consequences
|
||||
- Future prompts should treat this as project context unless the user changes direction.
|
||||
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
|
||||
> *(TODO: 한 문장으로 핵심 통찰을 작성. "X는 Y 조건에서 Z 효과를 낸다" 구조 권장.)*
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
|
||||
**추출된 패턴:**
|
||||
> *(TODO)*
|
||||
|
||||
**세부 내용:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
|
||||
- **과거 데이터와의 충돌:** 없음
|
||||
- **정책 변화:** 없음
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
|
||||
- **Parent:** [[10_Wiki/Topics]]
|
||||
- **Related:** *(TODO: 최소 2개)*
|
||||
- **Opposite / Trade-off:** *(TODO)*
|
||||
- **Raw Source:** 직접 입력
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
@@ -1,20 +1,33 @@
|
||||
---
|
||||
category: Unified
|
||||
id: wiki-2026-0508-deepreadonly
|
||||
title: DeepReadonly
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [auto-consolidated, technical-documentation]
|
||||
title: [[DeepReadonly|DeepReadonly]]
|
||||
last_updated: 2026-05-02
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[DeepReadonly|DeepReadonly]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
> DeepReadonly는 TypeScript에서 객체의 모든 중첩된 프로퍼티에 재귀적으로 `readonly`를 적용하여 데이터 구조 전체를 완전한 불변(immutable) 상태로 만드는 사용자 정의 유틸리티 타입이다 [1, 2]. 기본 내장된 `Readonly<T>` 유틸리티가 객체의 최상위 속성만 보호하는 얕은(shallow) 불변성만을 제공한다는 한계를 극복하기 위해 고안되었다 [1-3]. 상태 관리나 설정 객체와 같이, 객체 생성 이후 내부의 단 하나의 속성도 수정되지 않아야 함을 엄격하게 보장해야 할 때 주로 사용된다 [1, 4].
|
||||
|
||||
---
|
||||
|
||||
> 재귀적 불변성(DeepReadonly)은 TypeScript에서 최상위 속성뿐만 아니라 중첩된 내부 객체까지 모두 불변(immutable) 상태로 만드는 커스텀 유틸리티 타입 기법입니다 [1-3]. 내장 `Readonly<T>` 타입이나 `readonly` 수식어가 제공하는 얕은(shallow) 수준의 보호 한계를 극복하기 위해 매핑 타입과 조건부 타입을 결합하여 구현합니다 [1, 3-5]. 전체 데이터 구조의 변경을 방지하여 트리 구조나 복잡한 중첩 데이터를 다루는 상태 관리 및 설정 객체 등에서 데이터 무결성을 보장하는 강력한 방어책 역할을 합니다 [1, 3].
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
- **얕은 불변성의 한계 극복:** TypeScript가 기본으로 제공하는 `Readonly<T>` 타입은 객체의 최상위 수준(top-level) 프로퍼티만 읽기 전용으로 제어한다 [1, 2]. 따라서 내부의 중첩된 객체는 여전히 수정 가능한 상태로 남게 되어 데이터 오염의 위험이 존재하는데, 깊은 수준의 불변성을 강제하기 위해서는 `DeepReadonly` 타입이 필요하다 [1-3].
|
||||
- **재귀적 구현 방식:** `DeepReadonly`는 매핑 타입(Mapped Types)과 조건부 타입(Conditional Types)을 결합하여 재귀적으로 정의된다 [4]. 일반적으로 `type DeepReadonly<T> = { readonly [P in keyof T]: DeepReadonly<T[P]> };`와 같은 형태로 작성되어, 중첩된 데이터 트리 구조의 모든 하위 속성에 `readonly` 수식어가 빠짐없이 적용되도록 만든다 [1, 2, 4].
|
||||
- **적용 및 가용성:** 이 타입은 데이터 무결성을 최우선으로 하는 프론트엔드 아키텍처나 복잡한 시스템에서 예기치 않은 데이터 변경을 차단하는 강력한 방패 역할을 수행한다 [4]. 하지만 `DeepReadonly`는 현재 TypeScript 언어 자체에 내장되어 있지 않다 [5]. 따라서 개발자가 프로젝트 내에서 직접 재귀적 유틸리티 타입을 선언하거나, `ts-essentials`와 같이 이를 제공하는 서드파티 라이브러리를 가져와 사용해야 한다 [5].
|
||||
@@ -26,7 +39,7 @@ last_updated: 2026-05-02
|
||||
- **구현 및 라이브러리 의존성:** `DeepReadonly`는 현재 TypeScript 언어에 기본적으로 내장된 유틸리티 타입이 아니다 [6]. 따라서 시스템 무결성을 위해 개발자가 직접 재귀적 헬퍼 타입을 정의하거나, `ts-essentials`와 같이 이를 제공하는 외부 라이브러리에 의존해야 한다 [6]. 반대로 불변성을 해제해야 하는 경우에는 `Mutable` 헬퍼 타입을 만들어 모든 속성의 `readonly`를 제거할 수도 있다 [2, 7].
|
||||
- **핵심 활용 사례:** 트리 구조나 복잡한 중첩 데이터를 다룰 때 단 하나의 속성도 변경되지 않도록 보장한다 [1, 3]. 생성 후 구조가 수정되어서는 안 되는 설정 객체(Configuration objects), 상태 관리 아키텍처, 그리고 데이터 무결성이 치명적으로 중요한 금융 시스템 등에서 필수적인 보호 요소로 자리 잡고 있다 [1, 3, 8].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요.
|
||||
- **정책 변화:** Programming & Language 분야의 자동 자산화 수행.
|
||||
|
||||
@@ -35,7 +48,7 @@ last_updated: 2026-05-02
|
||||
- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요.
|
||||
- **정책 변화:** Programming & Language 분야의 자동 자산화 수행.
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
## 🔗 지식 연결 (Graph)
|
||||
- **Related Topics:** [[readonly|readonly]], Readonly<T>, Mapped Types, Conditional Types
|
||||
- **Projects/Contexts:** [[상태 관리(State Management)|상태 관리(State Management]], 설정 객체(Configuration Objects), ts-essentials
|
||||
- **Contradictions/Notes:** 깊은 수준의 불변성을 보장하는 기능이 실무적으로 널리 요구되었음에도 불구하고 `DeepReadonly`는 TypeScript에 공식적으로 기본 내장되어 있지 않다는 점이 특징적이다 [5]. 이로 인해 추가적인 구현이나 외부 라이브러리 의존성이 요구된다 [5].
|
||||
@@ -55,3 +68,52 @@ last_updated: 2026-05-02
|
||||
*Last updated: 2026-04-18*
|
||||
|
||||
---
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,6 +1,26 @@
|
||||
---
|
||||
id: wiki-2026-0508-dependencies-의존성
|
||||
title: Dependencies (의존성)
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [uncategorized]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Dependencies (의존성)]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
의존성(Dependencies)은 하나의 코드 조각(모듈, 클래스, 메서드 등)이 기능하기 위해 다른 코드 조각이나 외부 리소스에 의존하는 관계를 의미합니다 [1-3]. 테스트가 누락된 레거시 코드 등에서 강하게 결합된 의존성은 코드를 이해하고 수정하며 테스트하기 어렵게 만드는 주요 원인이 됩니다 [3, 4]. 성공적이고 안전한 리팩토링과 시스템 아키텍처의 지속 가능성을 확보하기 위해서는 이러한 불필요한 의존성을 식별하고 끊어내는 작업이 필수적입니다 [4-6].
|
||||
|
||||
## 📖 Core 대Content
|
||||
@@ -8,13 +28,12 @@
|
||||
* **의존성 분리 전략 - 접점(Seams)의 활용:** 기존 레거시 코드에 테스트를 추가하고 의존성을 제거하기 위해 '접점(Seam)'이라는 개념이 활용됩니다 [4, 8]. 접점이란 소스 코드를 직접 편집하지 않고도 프로그램의 동작을 변경할 수 있는 지점을 뜻합니다 [4, 9]. 이를 통해 프로덕션 코드의 변경 없이 테스트 시에만 가짜 객체(Mock)를 주입하여 외부 의존성을 우회하고 독립적인 단위 테스트를 수행할 수 있습니다 [4, 10].
|
||||
* **모듈 간 의존성 관리와 아키텍처 개선:** 대규모 소프트웨어 시스템에서 리팩토링의 핵심 목표는 모듈 간의 바람직하지 않은 의존성을 줄이는 것입니다 [5, 11]. 마이크로소프트 윈도우 7(Windows 7)의 리팩토링 사례 연구에 따르면, 집중적인 리팩토링을 거친 모듈들은 모듈 간 의존성 수가 유의미하게 감소하였으며, 이는 전체적인 시스템 복잡도를 낮추고 병렬 개발의 효율성을 극대화하는 결과를 가져왔습니다 [5, 12].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
* **'객체 통째로 넘기기(Preserve Whole Object)' 리팩토링의 부작용:** 긴 매개변수 목록을 줄이기 위해 여러 데이터 값을 넘기는 대신 해당 데이터가 포함된 전체 객체를 넘기는 리팩토링을 수행할 수 있습니다 [13]. 하지만 이 방식을 사용하면 호출되는 메서드가 원래는 몰라도 되었을 '전체 객체'에 대해 새로운 의존성을 가지게 됩니다 [14]. 이러한 새로운 의존성이 전체 의존성 구조를 망가뜨리거나 복잡하게 만든다면, 해당 리팩토링 기법은 피해야 합니다 [14].
|
||||
* **의존성 분리의 높은 비용:** 소프트웨어의 설계가 얼마나 훌륭한지와 무관하게, 기존 프로젝트에서 클래스를 분리하고 의존성을 끊어내어 테스트 가능한 상태로 만드는 작업은 상당한 시간과 노력을 필요로 합니다 [15].
|
||||
* **잘못된 추상화의 위험:** 중복을 피하고자 성급하게 리팩토링하여 잘못된 추상화를 도입할 경우, 새로운 요구사항이 등장함에 따라 코드를 맞추기 위해 오히려 의존성이 더 꼬이게 되고 결과적으로 유지보수 비용이 증가할 수 있습니다 [16].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
### Related Concepts
|
||||
|
||||
#### [아키텍처/기반 기술]
|
||||
@@ -54,4 +73,61 @@
|
||||
- 확장 방향: 무분별한 의존성 방치 및 더러운 코드(Dirty Code)의 축적이 향후 유지보수와 기능 확장 시 비용을 얼마나 기하급수적으로 증가시키는지 그 경제적 영향을 연구할 수 있습니다. [6, 30]
|
||||
|
||||
---
|
||||
*Last updated: 2026-05-03*
|
||||
*Last updated: 2026-05-03*
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
|
||||
**추출된 패턴:**
|
||||
> *(TODO)*
|
||||
|
||||
**세부 내용:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,15 +1,91 @@
|
||||
---
|
||||
id: wiki-2026-0508-dependency-injection-의존성-주입
|
||||
title: Dependency Injection (의존성 주입)
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [uncategorized]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Dependency Injection (의존성 주입)]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
의존성 주입(Dependency Injection)은 프로그램의 규모가 커짐에 따라 모듈 간의 의존성을 리팩토링할 때 서비스 로케이터(Service Locator)와 함께 도입할 수 있는 설계 패턴입니다 [1]. 이 패턴은 여러 팀에서 제공하는 모듈들을 동적으로 결합할 수 있게 해주어, 개발자가 전체 시스템을 다 이해하지 않고도 작은 부분을 수정할 수 있도록 돕습니다 [1]. 그 외 구체적인 개념에 대해서는 소스에 관련 정보가 부족합니다.
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
* **모듈 의존성 리팩토링의 일환:** 프로그램이 성장함에 따라 모듈을 분리하는 것은 필수적이며, 프레젠테이션-도메인-데이터(Presentation-Domain-Data) 계층화를 활용해 프로그램을 나눈 뒤 모듈 간의 의존성을 해결하는 과정에서 의존성 주입 패턴이 활용될 수 있습니다 [1].
|
||||
* **다양한 언어에서의 적용:** 이 패턴은 자바(Java)나 클래스 개념이 없는 자바스크립트(JavaScript) 스타일 등 각기 다른 프로그래밍 언어 환경에 모두 적용될 수 있으나, 언어의 특성에 따라 그 구현 형태는 다르게 나타납니다 [1].
|
||||
* 그 외 상세한 동작 원리나 구체적 구현 사례에 대해서는 소스에 관련 정보가 부족합니다.
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
소스에 관련 정보가 부족합니다.
|
||||
|
||||
---
|
||||
*Last updated: 2026-05-03*
|
||||
*Last updated: 2026-05-03*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
|
||||
- **Parent:** [[10_Wiki/Topics]]
|
||||
- **Related:** *(TODO: 최소 2개)*
|
||||
- **Opposite / Trade-off:** *(TODO)*
|
||||
- **Raw Source:** 직접 입력
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,13 +1,26 @@
|
||||
---
|
||||
category: Unified
|
||||
id: wiki-2026-0508-dependency-injection
|
||||
title: Dependency Injection
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [auto-consolidated, technical-documentation]
|
||||
title: [[Dependency-Injection|Dependency-Injection]] (의존성 주입)
|
||||
last_updated: 2026-05-02
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Dependency-Injection|Dependency-Injection]] (의존성 주입)
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
> "직접 사러 가지 말고, 배달받아 써라." 객체가 필요한 의존 객체를 스스로 생성하지 않고, 외부에서 주입받음으로써 코드 간의 결합도를 낮추고 테스트 용이성을 극대화하는 디자인 패턴이다.
|
||||
|
||||
---
|
||||
@@ -24,7 +37,7 @@ last_updated: 2026-05-02
|
||||
|
||||
의존성 주입(Dependency Injection, DI)은 상위 계층이 하위 계층의 인스턴스를 직접 생성하는 대신, 외부에서 의존성을 "주입"하여 구성 요소 간의 결합도를 낮추는 소프트웨어 엔지니어링 기법이다 [1]. 핵심 비즈니스 로직을 변경하지 않고도 종속성을 관리하거나 특정 구현체를 쉽게 교체할 수 있게 해준다 [2]. 의존성 역전 원칙(DIP)을 달성하기 위한 대표적인 구현 방법으로 사용되며, 애플리케이션의 테스트 용이성과 유지보수성을 크게 향상시킨다 [2, 3].
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
- **The Core Concept**:
|
||||
- 클래스 내부에서 `new Service()`를 호출하는 순간, 그 클래스는 해당 서비스에 강하게 결합(Coupled)된다.
|
||||
- DI는 생성자(Constructor)나 메서드 인자를 통해 외부에서 구현체를 전달받는다.
|
||||
@@ -70,7 +83,7 @@ DI는 **제어의 역전(Inversion of Control)**을 실현하는 구체적인
|
||||
* **계층형 아키텍처(Layered Architecture) 내에서의 역할**: 계층 간의 엄격한 통신을 강제하고 종속성을 관리하기 위해 DI를 구현한다 [1]. 상위 계층이 하위 계층의 객체를 직접 생성하는 방식 대신, 외부 소스로부터 의존성이 주입되게 함으로써 결합도를 느슨하게 만든다 [1].
|
||||
* **클린 아키텍처(Clean Architecture)와의 결합**: 비즈니스 로직을 외부의 데이터베이스나 웹 프레임워크로부터 격리시키는 클린 아키텍처에서 DI는 필수적으로 사용된다 [5, 6]. 내부 계층에서 인터페이스(포트)를 정의하고 외부 계층이 구체적인 구현체(어댑터)를 제공하도록 설계한 뒤, 런타임 시점에 의존성 주입을 사용해 이 구성 요소들을 연결한다 [6].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
- DI 프레임워크(Spring, NestJS 등)를 과도하게 사용하면 의존성 그래프가 너무 복잡해져 런타임 성능에 영향을 주거나 디버깅이 어려워지는 'DI 지옥'에 빠질 수 있다. 객체 간의 관계가 명확할 때는 과도한 추상화보다 직관적인 구성을 고려해야 한다.
|
||||
|
||||
---
|
||||
@@ -101,7 +114,7 @@ DI 메커니즘 자체로 인해 발생하는 런타임 오버헤드, 디버깅
|
||||
* **선행 설계 작업의 증가**: 핵심 구현 코드를 작성하기 전에 컴포넌트가 무엇을 해야 하는지 정의하는 '인터페이스 설계'를 먼저 수행해야 하는 설계 규율(design discipline)이 강제된다 [4, 7].
|
||||
* **구현 복잡도(Implementation Complexity)**: 컴포넌트의 책임을 분리하고 추상화하는 과정은 초기 설계 및 리팩토링 단계에서 중간에서 높음(Medium-High) 수준의 작업 복잡도와 설계 훈련을 요구한다 [7].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
## 🔗 지식 연결 (Graph)
|
||||
- Related: [[의존성 역전 (Dependency Inversion)|Dependency-[[Inversion]]-Principle]] , Inversion-of-Control (IoC)
|
||||
- Pattern: Factory-Method-Pattern
|
||||
|
||||
@@ -180,4 +193,53 @@ DI 메커니즘 자체로 인해 발생하는 런타임 오버헤드, 디버깅
|
||||
* [[Service_Locator_Pattern]]: DI와 유사하지만 객체가 직접 저장소를 호출하여 의존성을 찾는, 지양해야 할 안티패턴입니다.
|
||||
|
||||
---
|
||||
*Last updated: 2026-05-02*
|
||||
*Last updated: 2026-05-02*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,16 +1,29 @@
|
||||
---
|
||||
category: Unified
|
||||
id: wiki-2026-0508-dependency-analysis
|
||||
title: Dependency Analysis
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [auto-consolidated, technical-documentation]
|
||||
title: [[시스템 의존성 분석과 모듈 간 결합도 관리 (Dependency Analysis)]]
|
||||
last_updated: 2026-05-02
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[시스템 의존성 분석과 모듈 간 결합도 관리 (Dependency Analysis)]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
의존성 분석은 소프트웨어 시스템 내의 다양한 컴포넌트, 모듈, 서비스 또는 패키지 간의 상호작용과 결합 관계를 식별하고 매핑하는 과정입니다 [1-3]. 이는 대규모 코드베이스에서 단일 변경 사항이 다른 시스템에 미치는 파급 효과(Impact)를 이해하고, 아키텍처의 경계를 파악하는 데 필수적입니다 [4, 5]. 개발자는 의존성 분석을 통해 순환 참조를 방지하고, 구조적 결함을 리팩토링하며, 신규 개발자의 온보딩과 코드 독해 속도를 가속화할 수 있습니다 [6-9].
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
* **시스템 영향도 및 파급 효과 분석**
|
||||
복잡한 시스템에서 특정 컴포넌트의 변경은 의존성을 가진 다른 서비스에 예기치 않은 오류를 유발할 수 있습니다 [4, 5]. 의존성 분석은 모듈이나 서비스 간의 데이터 흐름과 호출 스택을 추적하여 이러한 통합 위험(Integration risks)과 파괴적 변경(Breaking changes)을 사전에 식별합니다 [1, 2, 4]. 특히 마이크로서비스 환경에서는 크로스 리포지토리(Cross-repository) 수준의 의존성 추적이 시스템의 안정성을 유지하는 핵심이 됩니다 [1, 10].
|
||||
|
||||
@@ -23,12 +36,12 @@ last_updated: 2026-05-02
|
||||
* **시각화 도구 및 AI 자동화 도입**
|
||||
코드베이스 맵(Codebase Maps)이나 시스템 아키텍처 다이어그램(예: C4 모델의 컨테이너/컴포넌트 다이어그램)은 코드의 의존성을 색상과 화살표로 시각화하여 파악을 돕습니다 [2, 8, 15, 16]. 최근에는 Augment Code, Cody, Greptile과 같은 AI 기반 도구가 도입되어 수십만 개의 파일을 인덱싱하고 크로스 리포지토리 간의 아키텍처 의존성을 자동으로 매핑하고 추적합니다 [1, 10, 17].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
* **과도한 추상화의 복잡성 비용:** 의존성을 분리하기 위해 의존성 주입(Dependency Injection)과 인터페이스를 적극 도입하면 모듈 간 결합도는 낮아지지만, 추상화의 깊이가 깊어져 코드의 직관적인 독해를 방해할 수 있습니다 [18, 19]. 때로는 약간의 중복이 과도한 추상화보다 가독성 면에서 유리할 수 있습니다 [20].
|
||||
* **분석 도구의 성능 한계:** C++과 같이 규모가 크고 헤더 파일의 중첩 및 재귀적 포함(Recursive Includes)이 심한 레거시 시스템에서는 의존성이 폭발적으로 증가하여 IDE나 분석 도구(예: Intellisense)의 인덱싱 속도를 저하시키고 마비시킬 수 있습니다 [21-23]. 대형 코드베이스를 AI로 초기 인덱싱할 때도 수 시간이 소요되는 제약이 있습니다 [24].
|
||||
* **아키텍처 표류(Architectural Drift):** 수동으로 작성된 의존성 맵이나 아키텍처 다이어그램은 코드가 진화함에 따라 실제 구현과 멀어지는 현상을 겪게 됩니다 [25]. 의존성 정보를 실시간 코드로 동기화하는 도구를 사용하지 않으면, 오히려 잘못된 의존성 정보를 기반으로 개발을 진행할 위험이 있습니다 [25-27].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
## 🔗 지식 연결 (Graph)
|
||||
- [[Software_Supply_Chain_Security]]: 프로젝트 내부 의존성을 넘어 외부 라이브러리의 보안 의존성을 관리하는 영역.
|
||||
- [[Clean_Architecture]]: 의존성 방향을 통제하여 비즈니스 로직을 보호하는 대표적 아키텍처.
|
||||
- [[Refactoring]]: 의존성 분석 결과를 바탕으로 수행되는 구조 개선 활동.
|
||||
@@ -106,4 +119,47 @@ last_updated: 2026-05-02
|
||||
## 🧪 검증 상태 (Validation)
|
||||
- **정보 상태**: 검증 완료 (Verified)
|
||||
- **출처 신뢰도**: A
|
||||
- **검토 이유**: 소프트웨어의 모듈성과 확장성을 확보하기 위해 복잡하게 얽힌 시스템 구조를 객관적으로 분석하고 결합도를 관리하기 위한 아키텍처적 기반 정립.
|
||||
- **검토 이유**: 소프트웨어의 모듈성과 확장성을 확보하기 위해 복잡하게 얽힌 시스템 구조를 객관적으로 분석하고 결합도를 관리하기 위한 아키텍처적 기반 정립.
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,20 +1,33 @@
|
||||
---
|
||||
category: Unified
|
||||
id: wiki-2026-0508-digital-twin
|
||||
title: Digital Twin
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [auto-consolidated, technical-documentation]
|
||||
title: [[Digital_Twin|Digital Twin]] Interfaces
|
||||
last_updated: 2026-05-02
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Digital_Twin|Digital Twin]] Interfaces
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
> 물리적 실체와 디지털 가상물을 실시간 데이터 혈류로 연결하여 예측 가능한 미래를 설계하는 인터페이스 기술.
|
||||
|
||||
---
|
||||
|
||||
게임 산업과 경제 설계에서 디지털 트윈은 복잡한 시스템, 개념 및 아이디어를 쉽게 검증하고 소통할 수 있도록 돕는 '플레이 가능한 시뮬레이션 모델'을 의미한다 [1]. 출시 후 실제 게임에서 발생하는 텔레메트리 데이터(JSON)를 시뮬레이션 모델에 입력하여 현실과 모델 사이의 간극을 좁히는 방식으로 작동한다 [2]. 이를 통해 개발자는 시간의 흐름에 따른 게임 시스템의 동작을 관찰하고 플레이어의 미래 행동을 효과적으로 예측할 수 있다 [1, 2].
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
- **추출된 패턴:** IoT 센서 데이터의 가상화 매핑 및 실시간 렌더링을 통한 물리-가상 동기화 패턴.
|
||||
- **세부 내용:**
|
||||
- 고해상도 3D 모델링과 실시간 텔레메트리의 결합.
|
||||
@@ -27,11 +40,11 @@ last_updated: 2026-05-02
|
||||
* **가시성과 동적 분석 제공**: 정적인 스프레드시트나 솔버 기반의 분석과 달리, 디지털 트윈은 버튼 클릭 한 번으로 시간에 따른 게임 시스템의 동작을 모든 세부 수준에서 관찰할 수 있게 해준다 [1].
|
||||
* **개발 효율성 증대 및 리스크 회피**: 게임의 디지털 트윈이 한 번 구축되면, 실제 코드를 작성하거나 새로운 빌드를 배포하지 않고도 즉각적으로 변경 사항을 적용할 수 있다 [1]. 또한, 라이브 서버의 실제 플레이어를 대상으로 경제 실험을 진행하는 위험을 감수할 필요 없이 다양한 '만약의 시나리오(What-if scenarios)'를 안전하게 탐색하고 단 몇 분 만에 귀중한 데이터 인사이트를 도출할 수 있다 [1].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
- **과거 데이터와의 충돌:** 정적인 3D 모델에서 살아 움직이는 '데이터 기반 생명체'로의 개념 진화.
|
||||
- **정책 변화:** 구조적 연결성(w2) 관점에서 [[3D_Web_HMI|3D_Web_HMI]]와의 기술적 통합 시너지 분석.
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
## 🔗 지식 연결 (Graph)
|
||||
- **Parent:** 10_Wiki/💡 Topics/Graphics
|
||||
- **Related:** [[3D_Web_HMI|3D_Web_HMI]], [[IoT|IoT]], Predictive-Maintenance
|
||||
- **Raw Source:** 00_Raw/2026-04-20/Digital Twin Interfaces.md
|
||||
@@ -44,3 +57,52 @@ last_updated: 2026-05-02
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-28*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,20 +1,33 @@
|
||||
---
|
||||
category: Unified
|
||||
id: wiki-2026-0508-discriminated-unions
|
||||
title: Discriminated Unions
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [auto-consolidated, technical-documentation]
|
||||
title: [[Discriminated Unions|Discriminated Unions]]
|
||||
last_updated: 2026-05-02
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Discriminated Unions|Discriminated Unions]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
> Discriminated Unions(또는 식별 가능한 유니온, 태그된 유니온)은 서로 다른 데이터 형태를 구분하기 위해 공통된 리터럴 속성(판별자, Discriminant)을 사용하는 TypeScript의 패턴입니다 [1-3]. 일반적인 유니온 타입과 달리, 컴파일러가 판별자 속성을 확인하여 타입을 자동으로 안전하게 좁힐 수(Narrowing) 있게 해줍니다 [4-6]. 이를 통해 유효하지 않은 상태의 표현을 원천적으로 차단하고, 모든 가능한 경우를 처리하도록 강제하는 완전성 검사(Exhaustiveness checking)를 구현할 수 있습니다 [3, 7, 8].
|
||||
|
||||
---
|
||||
|
||||
> "타입의 확실한 이름표: 여러 가능한 데이터 형태 중 '현재 어떤 형태인지'를 명확한 구분자(Tag)로 박제하여, 조건문 안에서 컴파일러가 타입을 완벽하게 추론하게 만들고 런타임 에러의 가능성을 원천 봉쇄하는 견고한 방패."
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
* **작동 원리 및 특징**
|
||||
Discriminated Union은 객체들이 공통으로 가지는 식별자 필드(주로 `kind`, `type`, `status` 같은 문자열 리터럴)를 활용하여 구성됩니다 [2-4]. 이 공통 속성을 기반으로 TypeScript의 코드 흐름 분석이 진행되며, 특정 브랜치에서 타입을 명확하게 좁혀줍니다 [3, 4, 9]. 이는 런타임 오버헤드가 전혀 추가되지 않는 컴파일 타임 전용 구조입니다 [10].
|
||||
|
||||
@@ -38,7 +51,7 @@ last_updated: 2026-05-02
|
||||
2. **왜 중요한가?**:
|
||||
* 에러 핸들링 시 `status` 값에 따라 `data`가 있을지 `error`가 있을지 컴파일러가 정확히 알게 하여, 정의되지 않은 속성 접근 정책(Undefined errors)을 막기 때문임. ([[Reliability|Reliability]]와 연결)
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요.
|
||||
- **정책 변화:** Programming & Language 분야의 자동 자산화 수행.
|
||||
|
||||
@@ -47,7 +60,7 @@ last_updated: 2026-05-02
|
||||
- **과거 데이터와의 충돌**: 과거 자바스크립트 정책은 'duck typing'에 의존하여 런타임에 일일이 `if(data)` 등을 체크해야 했으나, TS 정책은 구별된 공용체 정책을 통해 '컴파일 타임'에 모든 경로 정책을 검증함(RL Update).
|
||||
- **정책 변화(RL Update)**: 이제는 단순 에러 처리를 넘어, 복잡한 상태 머신 정책(FSM)이나 Redux 액션 타입 정책 등을 정의하는 표준 아키텍처 패턴 정책으로 자리 잡음. ([[State-Space|State-Space]]와 연결)
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
## 🔗 지식 연결 (Graph)
|
||||
- **Related Topics:** [[Union Types|Union Types]], Type Narrowing, Exhaustiveness Checking, Literal Types, never type
|
||||
- **Projects/Contexts:** React State [[Management|Management]], State Machine Pattern, API Response Handling, Redux Reducers
|
||||
- **Contradictions/Notes:** Discriminated Union 패턴은 타입 안정성과 예측 가능성을 크게 높여주지만, 유니온 타입이 지나치게 복잡해지거나 깊은 중첩 구조를 가지게 되면 오히려 TypeScript의 컴파일 성능을 저하시키고 에러 메시지의 가독성을 떨어뜨리는 부작용(단점)을 유발할 수 있습니다 [10].
|
||||
@@ -62,3 +75,52 @@ last_updated: 2026-05-02
|
||||
- [[Reliability|Reliability]], [[State-Space|State-Space]], [[Technical-Architecture|Technical-Architecture]], [[Logic|Logic]], [[Complexity-Theory|Complexity-Theory]]
|
||||
- **Key Concept**: Algebraic Data Types (ADT).
|
||||
---
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,26 +1,37 @@
|
||||
---
|
||||
id: P-REINFORCE-WIKI-3031BBF7
|
||||
category: Unified
|
||||
id: wiki-2026-0508-distributed-systems-fallacies
|
||||
title: Distributed Systems Fallacies
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: [P-REINFORCE-WIKI-3031BBF7]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.95
|
||||
tags: ['distributed-systems-fallacies', 'event-driven-architecture', 'microservices-architecture', 'peer-to-peer-(p2p)-architecture', 'event-driven-architecture', 'architecture-principles']
|
||||
tags: [distributed-systems-fallacies, event-driven-architecture, microservices-architecture, peer-to-peer-(p2p)-architecture, event-driven-architecture, architecture-principles]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-02
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Distributed Systems Fallacies]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
분산 컴퓨팅의 오류(Distributed Systems Fallacies)는 **소프트웨어 개발 및 배포에 있어 심각한 문제를 야기할 수 있는 일련의 오해나 잘못된 가정들**을 의미합니다 [1]. 제공된 소스에 따르면, 이벤트 기반 아키텍처(Event-Driven Architecture)와 같은 분산 시스템 패턴이 특히 이러한 분산 컴퓨팅의 오류에 취약한 것으로 나타납니다 [1]. (추가적인 상세 정의에 대해서는 소스에 관련 정보가 부족합니다.)
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
**소스에 관련 정보가 부족합니다.**
|
||||
|
||||
(제공된 소스에서는 이벤트 기반 아키텍처가 "분산 컴퓨팅의 오류(fallacies of distributed computing)"에 취약하며, 이것이 소프트웨어 개발과 배포에 중대한 문제를 일으킬 수 있는 오해들이라는 단일 문장의 사실만 간략히 언급되어 있습니다 [1]. 구체적으로 어떤 오류들이 존재하는지, 원리는 무엇인지에 대한 상세한 설명은 포함되어 있지 않습니다.)
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
**소스에 관련 정보가 부족합니다.**
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
### Related Concepts
|
||||
분산 컴퓨팅의 오류에 대한 직접적인 세부 정보는 부족하지만, 소스에 명시된 내용과 분산 시스템 구조의 특성을 바탕으로 연결되는 개념은 다음과 같습니다.
|
||||
|
||||
@@ -58,4 +69,53 @@ last_reinforced: 2026-05-02
|
||||
- 확장 방향: 분산된 컴포넌트 간의 상호작용에서 발생하는 네트워크 복잡성과 분산 트랜잭션 오류(Fallacies)가 미치는 운영상 한계 및 보완책 연구.
|
||||
|
||||
---
|
||||
*Last updated: 2026-05-02*
|
||||
*Last updated: 2026-05-02*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
@@ -1,28 +1,39 @@
|
||||
---
|
||||
id: P-REINFORCE-WIKI-8AEC7FF0
|
||||
category: Unified
|
||||
id: wiki-2026-0508-distributed-tracing
|
||||
title: Distributed Tracing
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
canonical_id: self
|
||||
aliases: [P-REINFORCE-WIKI-8AEC7FF0]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.95
|
||||
tags: ['distributed-tracing', 'microservices-architecture', 'serverless-architecture', 'event-driven-architecture', 'observability', 'devops-environment']
|
||||
tags: [distributed-tracing, microservices-architecture, serverless-architecture, event-driven-architecture, observability, devops-environment]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-02
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
---
|
||||
|
||||
# [[Distributed Tracing]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
분산 추적(Distributed Tracing)은 마이크로서비스, 서버리스, 사이드카, 이벤트 기반 아키텍처와 같은 분산 시스템에서 여러 컴포넌트나 서비스를 거쳐 전파되는 요청과 트랜잭션의 흐름을 모니터링, 추적 및 디버깅하기 위한 핵심 관측성(Observability) 패턴입니다 [1-4]. 이 패턴은 공유된 호출 콜스택(Call context)이 없는 탈동조화된 환경에서 특정 오류의 근본 원인이나 성능 병목 지점을 명확히 파악할 수 있도록 돕습니다 [5, 6].
|
||||
|
||||
## 📖 Core Content
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
- **분산 시스템의 디버깅 한계 극복**: 마이크로서비스, 서버리스, 이벤트 기반 아키텍처 등에서는 단일 비즈니스 트랜잭션이 여러 독립적인 생산자(Producers)와 소비자(Consumers) 또는 수많은 함수 파편들로 나뉘어 비동기적으로 실행됩니다 [4, 5]. 컴포넌트 간 호출 컨텍스트가 공유되지 않기 때문에 기존의 로컬 디버깅 방식으로는 에러나 예기치 않은 동작의 원인을 찾기 매우 어렵습니다 [4, 5]. 예를 들어 50개 이상의 서비스나 여러 사이드카(Sidecar) 간에 얽힌 요청 흐름을 쫓기 위해서는 분산 추적이 필수적으로 요구됩니다 [1, 2].
|
||||
- **관측성(Observability) 확보의 수단**: 분산 추적은 로그 집계(Log aggregation), 애플리케이션 메트릭, 헬스 체크 API 등과 함께 분산 환경의 가시성을 확보하는 핵심 관측성 패턴 중 하나입니다 [3]. 시스템이 주로 API 중심으로 구동되는 점을 활용해 API 호출을 추적함으로써 성능 문제를 식별하고, 문제가 발생한 트랜잭션 내에서 특정 마이크로서비스가 수행한 역할을 정확히 파악할 수 있습니다 [6].
|
||||
- **상관관계 ID(Correlation ID) 활용**: 분산 추적을 구현하기 위해서는 시스템 내의 모든 이벤트 및 API 페이로드에 '상관관계 ID(Correlation ID)'를 포함하여 전달해야 합니다 [5]. 이를 통해 다운스트림(Downstream) 소비자와 로깅 시스템이 서로 개별적으로 실행된 연관 작업들을 단일 추적 경로(Trace)로 연결할 수 있습니다 [5].
|
||||
- **초기 설계의 중요성**: 이미 컴포넌트가 분리되어 운영 중인 분산 시스템에 관측성을 사후에 끼워 넣는(Retrofitting) 작업은 구조적으로 매우 어렵습니다 [5]. 따라서 분산 추적을 위한 계측(Instrumentation)은 시스템 설계 초기 단계부터 반드시 계획되어야 합니다 [5].
|
||||
|
||||
## ⚖️ Trade-offs & Caveats
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
분산 추적을 시스템에 도입하고 유지하는 것은 추가적인 인지적 부하(Cognitive load)와 인프라 오버헤드를 발생시킵니다 [4]. 이를 효과적으로 관리하려면 강력한 관측성 도구와 에러 모니터링 플랫폼을 별도로 구축하고 운영해야 합니다 [4].
|
||||
또한, 시스템의 모든 구성 요소가 연결성을 잃지 않도록 '상관관계 ID(Correlation ID)'를 지속적으로 전달해야 하므로 각 서비스 개발 시 추가적인 계측(Instrumentation) 노력이 요구됩니다 [5]. 만약 이러한 추적 기능과 가시성을 시스템 설계 초기부터 반영하지 않고 개발 후반부에 사후 도입(Retrofitting)하려고 시도할 경우, 그 복잡성과 어려움은 기하급수적으로 증가합니다 [5].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
### Related Concepts
|
||||
|
||||
#### [분산 아키텍처 패턴 (Distributed Architecture Patterns)]
|
||||
@@ -62,4 +73,53 @@ last_reinforced: 2026-05-02
|
||||
- 확장 방향: 마이크로서비스 통신 사이에서 분산 추적 정보 생성 및 전달(텔레메트리 데이터 수집 등)을 돕는 메커니즘을 제공하는 서비스 메시(Service Mesh) 및 사이드카 패턴의 역할 조사 [2, 7].
|
||||
|
||||
---
|
||||
*Last updated: 2026-05-02*
|
||||
*Last updated: 2026-05-02*
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user