--- id: wiki-2026-0508-mutually-exclusive-and-collectiv title: Mutually Exclusive and Collectively Exhaustive (MECE) category: 10_Wiki/Topics status: verified canonical_id: self aliases: [MECE, ME-CE, 상호배타-전체포괄] duplicate_of: none source_trust_level: A confidence_score: 0.95 verification_status: applied tags: [reasoning, problem-solving, consulting, structured-thinking, taxonomy] raw_sources: [] last_reinforced: 2026-05-10 github_commit: pending tech_stack: language: markdown framework: unspecified --- # Mutually Exclusive and Collectively Exhaustive (MECE) ## 매 한 줄 > **"매 항목 겹치지 않고 매 합쳐 전체"**. Barbara Minto가 McKinsey에서 정형화한 매 categorization 원칙으로, 매 합리적 의사소통과 매 logical decomposition의 매 backbone이다. 2026 LLM agent의 task partitioning에서도 매 동일 원칙이 적용된다. ## 매 핵심 ### 매 두 조건 - **Mutually Exclusive (ME)**: 매 두 카테고리의 교집합 = ∅. - **Collectively Exhaustive (CE)**: 매 카테고리들의 합집합 = 전체. ### 매 typical partition 패턴 - Binary split: A vs Not-A. - Process steps: Before / During / After. - Stakeholders: Internal / External. - Time: Past / Present / Future. - Quantitative axes: Price × Volume = Revenue. ### 매 응용 1. Issue tree / logic tree decomposition. 2. Market sizing (top-down vs bottom-up). 3. SQL GROUP BY 카테고리 설계. 4. LLM agent subtask split (no overlap, no gap). ## 💻 패턴 ### MECE check (Python) ```python def is_mece(categories, universe): union = set().union(*categories) if union != universe: return False, "not exhaustive", universe - union for i, a in enumerate(categories): for b in categories[i+1:]: if a & b: return False, "overlap", a & b return True, "MECE", None ``` ### Decision-tree style decomposition ```markdown - 매출 감소 원인 - 가격 (P) - 수량 (Q) [P와 ME — 가격 효과 통제 후] - 믹스 (M) [구성 변화] → P + Q + M ≈ ΔRevenue (CE check) ``` ### Pandas group MECE validation ```python def validate_mece_groups(df, group_col, total_col): grouped = df.groupby(group_col)[total_col].sum() return abs(grouped.sum() - df[total_col].sum()) < 1e-6 ``` ### Set cover (greedy CE construction) ```python def greedy_cover(universe, sets): chosen, remaining = [], set(universe) while remaining: best = max(sets, key=lambda s: len(s & remaining)) chosen.append(best) remaining -= best return chosen ``` ### LLM prompt for MECE plan ```python prompt = """ Decompose the task into MECE subtasks: - Subtasks must NOT overlap (ME). - Subtasks must cover the full task (CE). - Output JSON list. Verify by sketching the union set. Task: {task} """ ``` ### MECE + Pareto (80/20 prioritization) ```python def mece_pareto(buckets, values, top=0.8): sorted_buckets = sorted(zip(buckets, values), key=lambda x: -x[1]) cum, picked = 0, [] for b, v in sorted_buckets: picked.append(b); cum += v if cum >= top * sum(values): break return picked ``` ## 매 결정 기준 | 상황 | Decomposition axis | |---|---| | Revenue analysis | P × Q × M | | Cost analysis | Fixed vs Variable | | Customer | New vs Existing | | Process | Stage gates | | Bug triage | Severity × Component | **기본값**: Quantitative MECE (numerical sum-check 가능). ## 🔗 Graph - 부모: [[Mental Models]] · [[Pyramid-Principle]] - 변형: [[Logic Trees]] · [[Issue Tree]] - 응용: [[Consulting-Frameworks]] · [[LLM-Agent-Planning]] · [[Root-Cause-Analysis]] - Adjacent: [[Decision Theory]] · [[Set-Theory]] ## 🤖 LLM 활용 **언제**: Task decomposition, structured analysis, taxonomy design, agent planning. **언제 X**: Highly entangled / coupled systems where clean partition is impossible. ## ❌ 안티패턴 - **Pseudo-MECE**: 매 표면 MECE이나 매 실제 overlap. - **Forced exhaustiveness**: "Other" 버킷으로 매 모든 잔여 처리. - **Wrong axis**: 매 분석 목적과 무관한 축. ## 🧪 검증 / 중복 - Verified (Minto "The Pyramid Principle"; Rasiel "The McKinsey Way"). - 신뢰도 A. ## 🕓 Changelog | 날짜 | 변경 | |---|---| | 2026-05-08 | Phase 1 | | 2026-05-10 | Manual cleanup — MECE conditions + validators |