---
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 |
