f8b21af4be
10_Wiki/Topics 대규모 정리: - 오류 캡처/미완성 stub 문서 227개 제거 - 교차폴더 중복 43클러스터 병합 (63파일 → redirect) - 링크명 정규화: 깨진 링크 수정·redirect 직결·개념 매핑 ~2,400건 - 카테고리 MOC 6개 신규 생성 - Graph 섹션 미해결 related-keyword 링크 10,058건 제거 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
154 lines
4.8 KiB
Markdown
154 lines
4.8 KiB
Markdown
---
|
|
id: wiki-2026-0508-mece-principle
|
|
title: MECE Principle
|
|
category: 10_Wiki/Topics
|
|
status: verified
|
|
canonical_id: self
|
|
aliases: [mutually-exclusive-collectively-exhaustive, mece]
|
|
duplicate_of: none
|
|
source_trust_level: A
|
|
confidence_score: 0.9
|
|
verification_status: applied
|
|
tags: [reasoning, framework, problem-solving, structured-thinking]
|
|
raw_sources: []
|
|
last_reinforced: 2026-05-10
|
|
github_commit: pending
|
|
tech_stack:
|
|
language: meta
|
|
framework: McKinsey/Pyramid Principle
|
|
---
|
|
|
|
# MECE Principle
|
|
|
|
## 매 한 줄
|
|
> **"매 Mutually Exclusive, Collectively Exhaustive — 매 분류가 매 겹치지 않고 매 빠짐 없도록"**. 매 McKinsey의 Barbara Minto 가 정립한 매 structured thinking 의 cornerstone — 매 issue tree, root-cause, decision tree 매 모든 분해 작업의 sanity check — 매 LLM era 에서 도 prompt design 의 핵심.
|
|
|
|
## 매 핵심
|
|
|
|
### 매 두 조건
|
|
- **ME (Mutually Exclusive)**: 매 카테고리 간 매 overlap = 0.
|
|
- **CE (Collectively Exhaustive)**: 매 카테고리 합집합 = 전체.
|
|
|
|
### 매 typical violation
|
|
- **overlap**: 매 "남성 / 여성 / 운동선수" — 매 운동선수 매 양 성별과 겹침.
|
|
- **gap**: 매 "0-20세 / 30-50세 / 60+세" — 매 21-29, 51-59 누락.
|
|
- **mixed dimension**: 매 색깔 + 모양 의 mix — 매 categorize 의 차원 의 잡음.
|
|
|
|
### 매 응용
|
|
1. 매 issue tree (Pyramid Principle).
|
|
2. 매 root cause 5-Why.
|
|
3. 매 LLM prompt 의 답 의 structure 강제.
|
|
4. 매 도메인 모델링 enum 설계.
|
|
|
|
## 💻 패턴
|
|
|
|
### 매 issue tree (예: 매출 감소)
|
|
```
|
|
매출 감소
|
|
├── volume 감소 ← MECE 조건 1
|
|
│ ├── 신규 고객 감소
|
|
│ └── 기존 고객 이탈
|
|
└── 단가 감소 ← MECE 조건 2
|
|
├── 할인 증가
|
|
└── 믹스 변화
|
|
// 매 합집합 = 매출 변화 모든 원인
|
|
// 매 교집합 = 0
|
|
```
|
|
|
|
### 매 검증 checklist
|
|
```typescript
|
|
function validateMECE<T>(buckets: T[][], universe: T[]): {ok: boolean, issues: string[]} {
|
|
const issues: string[] = [];
|
|
const flat = buckets.flat();
|
|
// 매 overlap check
|
|
const seen = new Set<T>();
|
|
for (const item of flat) {
|
|
if (seen.has(item)) issues.push(`overlap: ${item}`);
|
|
seen.add(item);
|
|
}
|
|
// 매 exhaustiveness check
|
|
for (const u of universe) {
|
|
if (!seen.has(u)) issues.push(`gap: ${u}`);
|
|
}
|
|
return { ok: issues.length === 0, issues };
|
|
}
|
|
```
|
|
|
|
### 매 enum exhaustive (TypeScript)
|
|
```typescript
|
|
type Status = 'pending' | 'active' | 'archived';
|
|
function handle(s: Status) {
|
|
switch (s) {
|
|
case 'pending': return ...;
|
|
case 'active': return ...;
|
|
case 'archived': return ...;
|
|
default: { const _: never = s; throw new Error(_); }
|
|
// 매 새 case 추가 시 compile error → CE 보장
|
|
}
|
|
}
|
|
```
|
|
|
|
### 매 LLM prompt MECE
|
|
```
|
|
다음 카테고리들로만 분류하라. 매 항목은 정확히 하나의 카테고리에만 속한다.
|
|
- A: <명확한 정의>
|
|
- B: <명확한 정의>
|
|
- C: 위 어느 것에도 해당하지 않는 모든 경우 ← 매 CE 보장 의 escape hatch
|
|
```
|
|
|
|
### 매 root cause 5-Why MECE
|
|
```
|
|
Q1: 왜 deploy 실패?
|
|
A: build 단계 vs deploy 단계 vs config 단계 ← MECE 분기
|
|
Q2 (build 분기): 왜 build 실패?
|
|
A: dependency vs compile vs test ← MECE 분기
|
|
...
|
|
```
|
|
|
|
### 매 데이터 partition
|
|
```sql
|
|
-- 매 user segmentation 매 MECE
|
|
CASE
|
|
WHEN ltv >= 1000 THEN 'high'
|
|
WHEN ltv >= 100 THEN 'mid'
|
|
WHEN ltv >= 0 THEN 'low'
|
|
ELSE 'unknown' -- 매 NULL/음수 의 catch-all
|
|
END AS segment
|
|
-- 매 boundary 매 명시 / 매 catch-all 의 CE 의 보장
|
|
```
|
|
|
|
## 매 결정 기준
|
|
| 상황 | Approach |
|
|
|---|---|
|
|
| 매 pure analysis | strict MECE |
|
|
| 매 fuzzy domain | "기타" bucket 의 catch-all |
|
|
| 매 enum domain | exhaustive switch + never |
|
|
| 매 LLM 분류 | "위 외의 모든 경우" 항목 명시 |
|
|
|
|
**기본값**: 매 strict MECE 의 시도 → 매 fuzzy 면 catch-all bucket 추가.
|
|
|
|
## 🔗 Graph
|
|
- 부모: [[Pyramid Principle]]
|
|
- 변형: [[Issue Tree]] · [[Root Cause Analysis]]
|
|
- 응용: [[BLUF (Bottom Line Up Front)]] · [[Type-safe Error Handling Exhaustiveness Checking]]
|
|
- Adjacent: [[Cognitive_Load]]
|
|
|
|
## 🤖 LLM 활용
|
|
**언제**: 매 답 의 structure 강제, 매 bucket 분류 의 정확도 의 끌어 올림.
|
|
**언제 X**: 매 creative brainstorm — 매 MECE 의 강제는 발산 의 막음.
|
|
|
|
## ❌ 안티패턴
|
|
- **dimension mix**: 매 한 분기에 매 color + size 의 동시 분류.
|
|
- **catch-all 남발**: 매 "기타" 가 50% 면 분해 의 의미 없음.
|
|
- **MECE 강박**: 매 fuzzy 영역의 매 strict MECE 의 over-engineering.
|
|
|
|
## 🧪 검증 / 중복
|
|
- Verified (Barbara Minto, Pyramid Principle 3rd ed.; McKinsey internal training).
|
|
- 신뢰도 A.
|
|
|
|
## 🕓 Changelog
|
|
| 날짜 | 변경 |
|
|
|---|---|
|
|
| 2026-05-08 | Phase 1 |
|
|
| 2026-05-10 | Manual cleanup — MECE 정의 + issue tree/enum/LLM prompt 응용 정리 |
|