"매 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 의 차원 의 잡음.
매 응용
매 issue tree (Pyramid Principle).
매 root cause 5-Why.
매 LLM prompt 의 답 의 structure 강제.
매 도메인 모델링 enum 설계.
💻 패턴
매 issue tree (예: 매출 감소)
매출 감소
├── volume 감소 ← MECE 조건 1
│ ├── 신규 고객 감소
│ └── 기존 고객 이탈
└── 단가 감소 ← MECE 조건 2
├── 할인 증가
└── 믹스 변화
// 매 합집합 = 매출 변화 모든 원인
// 매 교집합 = 0
매 검증 checklist
functionvalidateMECE<T>(buckets: T[][],universe: T[]):{ok: boolean,issues: string[]}{constissues: string[]=[];constflat=buckets.flat();// 매 overlap check
constseen=newSet<T>();for(constitemofflat){if(seen.has(item))issues.push(`overlap: ${item}`);seen.add(item);}// 매 exhaustiveness check
for(constuofuniverse){if(!seen.has(u))issues.push(`gap: ${u}`);}return{ok: issues.length===0,issues};}
매 enum exhaustive (TypeScript)
typeStatus='pending'|'active'|'archived';functionhandle(s: Status){switch(s){case'pending':return...;case'active':return...;case'archived':return...;default:{const_: never=s;thrownewError(_);}// 매 새 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
-- 매 user segmentation 매 MECE
CASEWHENltv>=1000THEN'high'WHENltv>=100THEN'mid'WHENltv>=0THEN'low'ELSE'unknown'-- 매 NULL/음수 의 catch-all
ENDASsegment-- 매 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 추가.