--- id: wiki-2026-0508-logic-trees title: Logic Trees category: 10_Wiki/Topics status: verified canonical_id: self aliases: [Logic-Tree, Issue-Tree, Decision-Tree-Reasoning] duplicate_of: none source_trust_level: A confidence_score: 0.9 verification_status: applied tags: [reasoning, problem-solving, mece, consulting, structured-thinking] raw_sources: [] last_reinforced: 2026-05-10 github_commit: pending tech_stack: language: markdown framework: unspecified --- # Logic Trees ## 매 한 줄 > **"매 문제를 MECE 가지로 쪼개라"**. McKinsey식 hypothesis-driven problem solving의 매 핵심 도구로, 매 root question을 mutually exclusive·collectively exhaustive subquestions으로 분할한다. 2026 LLM agent의 chain-of-thought planner와 매 동형(同形). ## 매 핵심 ### 매 종류 - **Why-tree (diagnostic)**: 매 root cause 분석 — "왜?"를 5번 반복. - **How-tree (solution)**: 매 목표 달성 방법 분해. - **What-tree (descriptive)**: 매 system component 분류. ### 매 구성 원칙 - **MECE**: 매 가지가 서로 겹치지 않고 (ME) 매 합쳐서 전체 (CE). - **Same-level abstraction**: 매 형제 노드는 same granularity. - **Hypothesis-driven**: 매 leaf에 매 testable hypothesis. ### 매 응용 1. Consulting case interview (McKinsey, BCG, Bain). 2. Root cause analysis (5 Whys, Fishbone). 3. Product strategy (revenue tree: price × volume). 4. LLM agent task decomposition. ## 💻 패턴 ### Markdown logic tree ```markdown - Root: 왜 매출이 감소했나? - 가격 하락? (Hypothesis 1) - 평균 단가 추이 확인 - 할인율 변화 확인 - 거래량 감소? (Hypothesis 2) - 신규 고객 수 - 재구매율 - 믹스 변화? (Hypothesis 3) - 카테고리별 비중 ``` ### Revenue tree (Python dataclass) ```python from dataclasses import dataclass @dataclass class RevenueTree: revenue: float price: float volume: int @classmethod def decompose(cls, rev, p, v): assert abs(rev - p * v) < 1e-6 return cls(rev, p, v) ``` ### LLM agent decomposition prompt ```python prompt = """ Decompose this problem into a MECE logic tree (depth=3). Each leaf must be a testable hypothesis. Problem: {problem} Output: nested JSON with {hypothesis, subnodes, test_method}. """ ``` ### Tree validator (MECE check) ```python def is_mece(children, total): coverage = sum(c.share for c in children) overlap = any(set(a.scope) & set(b.scope) for a, b in itertools.combinations(children, 2)) return abs(coverage - 1.0) < 0.01 and not overlap ``` ### Issue tree → Gantt ```python def tree_to_tasks(node, owner=None): tasks = [] if not node.children: tasks.append({"task": node.q, "owner": owner}) for c in node.children: tasks.extend(tree_to_tasks(c, owner=c.owner)) return tasks ``` ## 매 결정 기준 | 상황 | Tree type | |---|---| | 문제 진단 | Why-tree | | 해결책 설계 | How-tree | | 시스템 이해 | What-tree | | LLM agent plan | How-tree (with tools) | **기본값**: Hypothesis-driven Why-tree (depth 3-4). ## 🔗 Graph - 부모: [[Mental_Models|Mental Models]] · [[Mutually Exclusive and Collectively Exhaustive (MECE)]] - 변형: [[Issue Tree]] · [[Decision Theory]] - 응용: [[Root-Cause-Analysis]] · [[5-Whys]] - Adjacent: [[Pyramid-Principle]] ## 🤖 LLM 활용 **언제**: Open-ended problem decomposition, agent task planning, structured analysis. **언제 X**: Tightly coupled problems with no clean partition (use system dynamics). ## ❌ 안티패턴 - **Non-MECE branches**: 매 overlap 또는 gap. - **Symptom tree**: 매 root cause 도달 전에 멈춤. - **Boil-the-ocean**: 매 prioritization 없이 매 leaf 다 조사. ## 🧪 검증 / 중복 - Verified (Minto "The Pyramid Principle"; Rasiel "The McKinsey Way"). - 신뢰도 A. ## 🕓 Changelog | 날짜 | 변경 | |---|---| | 2026-05-08 | Phase 1 | | 2026-05-10 | Manual cleanup — Logic tree taxonomy + agent integration |