--- 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(buckets: T[][], universe: T[]): {ok: boolean, issues: string[]} { const issues: string[] = []; const flat = buckets.flat(); // 매 overlap check const seen = new Set(); 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 응용 정리 |