---
name: teach-3-levels
triggers:
  - "teach 3 levels"
description: "낯선 주제를 3단계로 설명한다. [1] 똑똑한 초보자 대상 실제 사례와 오해 설명 [2] 초등학생도 이해할 수 있는 예시/비유 [3] 소크라테스식 문답법과 제1원리 사고 **자동 트리거 조건** (사용자가 다음과 같이 말할 때 자동 실행): [이해도 부족 표현 - 한국어] [이해도 부족 표현 - 영어] [질문 형태] [학습 요청]"
argument-hint: "[설명할 주제]"
disable-model-invocation: false
user-invocable: true
allowed-tools:
  - Read
  - Glob
  - Grep
  - WebSearch
  - WebFetch
model: claude-sonnet-4-6[1m]
context: 복잡한 개념을 다양한 수준에서 설명하여 사용자의 이해를 극대화한다. 교육학적 원칙(scaffolding, 구성주의, 소크라테스식 대화)을 적용한다.
agent: 교육 전문가. 복잡한 주제를 단계적으로 설명하고, 질문을 통해 사고를 유도한다.
hooks:
  pre_execution: []
  post_execution: []
category: 교육
skill-type: Atomic
references: []
referenced-by: []
---

# 3단계 초보자 설명 스킬 (Teach 3 Levels)

낯선 주제를 3단계로 체계적으로 설명하여 깊은 이해를 유도한다.

## 목적/te

- **Level 1**: 똑똒한 초보자 대상 - 실제 사례, 흔한 오해, 오해의 원인
- **Level 2**: 초등학생도 이해 - 풍부한 예시와 비유
- **Level 3**: 소크라테스식 문답 - 질문을 통한 깨달음, 제1원리 사고

## 사용법

```
/teach-3-levels <topic> [--level=N] [--focus=AREA]
```

| 파라미터 | 설명 | 예시 |
|---------|------|------|
| `topic` | 설명할 주제 | "dependency injection", "REST API" |
| `--level=N` | 특정 레벨만 실행 (1, 2, 3) | --level=2 |
| `--focus=AREA` | 집중 영역 | --focus="보안 측면" |

## 설명 프로세스

### Level 1: 똑똒한 초보자 대상 (Smart Beginner)

**대상**: 지적 능력은 있으나 해당 분야를 처음 접하는 사람

**구성 요소:**

| 요소 | 설명 | 예시 (Dependency Injection) |
|------|------|---------------------------|
| **핵심 정의** | 한 문장으로 본질 설명 | "객체가 필요한 것을 외부에서 받는 패턴" |
| **실제 사례** | 현업에서의 적용 예 | "테스트 시 Mock 객체 주입" |
| **왜 필요한가** | 문제-해결 관점 설명 | "강결합 → 테스트 불가 문제 해결" |
| **흔한 오해** | 자주 발생하는 오해 | "DI = DI 프레임워크 필수" |
| **오해의 원인** | 왜 그런 오해가 생기는지 | "Spring 등 프레임워크와 함께 배워서" |

**출력 형식:**

```markdown
## Level 1: 똑똑한 초보자를 위한 설명

### 핵심 정의

[주제]는 **[한 문장 정의]**입니다.

### 실제 사례

실무에서 [주제]는 다음과 같이 사용됩니다:

1. **[사례 1]**: [설명]
2. **[사례 2]**: [설명]
3. **[사례 3]**: [설명]

### 왜 필요한가?

[주제]가 해결하는 문제:

| 문제 (Before) | 해결책 (After) |
|--------------|---------------|
| [문제점 1] | [해결 방법 1] |
| [문제점 2] | [해결 방법 2] |

### 흔한 오해

많은 사람들이 [주제]에 대해 다음과 같이 오해합니다:

#### 오해 1: "[오해 내용]"

**왜 이런 오해가 생기는가?**
[원인 설명]

**실제로는:**
[올바른 이해]

#### 오해 2: "[오해 내용]"

**왜 이런 오해가 생기는가?**
[원인 설명]

**실제로는:**
[올바른 이해]
```

### Level 2: 초등학생도 이해할 수 있는 설명

**대상**: 사전 지식이 전혀 없는 사람

**구성 요소:**

| 요소 | 설명 | 방법 |
|------|------|------|
| **일상 비유** | 익숙한 대상에 비유 | 레고, 요리, 학교 |
| **시각적 예시** | 그림으로 설명 가능한 표현 | 블록, 화살표, 상자 |
| **단계별 분해** | 복잡한 것을 단순 단계로 | 1→2→3 순서 |
| **반복과 변형** | 같은 개념을 다른 예시로 | 예시 3개 이상 |

**비유 선택 가이드:**

| 기술 개념 | 좋은 비유 |
|----------|----------|
| API | 레스토랑 메뉴판 (주문→요리→배달) |
| 변수 | 이름표가 붙은 상자 |
| 함수 | 레시피 (재료→조리→완성) |
| 클래스 | 쿠키틀 (틀 하나로 여러 쿠키) |
| 상속 | 가족 (부모→자녀 특성 물려받음) |
| 인터페이스 | 리모컨 (버튼만 알면 TV 조작 가능) |
| 의존성 주입 | 레고 블록 (조립식으로 교체 가능) |
| 캐시 | 자주 쓰는 연락처를 즐겨찾기에 |
| 데이터베이스 | 정리된 서랍장 |
| Git | 게임 세이브 포인트 |

**출력 형식:**

```markdown
## Level 2: 초등학생도 이해할 수 있는 설명

### 비유로 이해하기

[주제]를 [비유 대상]에 비유해볼게요.

**상황 설정:**
[친숙한 상황 묘사]

**비유 적용:**
[기술 개념을 비유에 대입]

### 그림으로 보기

```
┌─────────────┐         ┌─────────────┐
│   [요소 1]   │ ──────▶ │   [요소 2]   │
└─────────────┘         └─────────────┘
        │                      │
        ▼                      ▼
┌─────────────┐         ┌─────────────┐
│   [결과 1]   │         │   [결과 2]   │
└─────────────┘         └─────────────┘
```

### 단계별로 이해하기

**1단계**: [첫 번째 이해할 것]
- [설명]

**2단계**: [두 번째 이해할 것]
- [설명]

**3단계**: [세 번째 이해할 것]
- [설명]

### 다른 예시로 다시 보기

**예시 1: [상황 1]**
[설명]

**예시 2: [상황 2]**
[설명]

**예시 3: [상황 3]**
[설명]
```

### Level 3: 소크라테스식 문답법

**대상**: 스스로 깨달음을 얻고 싶은 학습자

**구성 요소:**

| 요소 | 설명 | 목적 |
|------|------|------|
| **유도 질문** | 답을 생각하게 하는 질문 | 능동적 사고 유발 |
| **반박 질문** | 가정을 흔드는 질문 | 깊은 이해 유도 |
| **제1원리** | 가장 기본이 되는 원리 | 근본 이해 |
| **연결 질문** | 다른 개념과 연결 | 통합적 사고 |

**질문 유형:**

| 유형 | 목적 | 예시 |
|------|------|------|
| **명료화** | 의미 확인 | "~라는 것은 무슨 뜻일까요?" |
| **가정 탐구** | 숨은 가정 발굴 | "왜 ~라고 가정하죠?" |
| **증거 요청** | 근거 확인 | "어떻게 알 수 있죠?" |
| **관점 전환** | 다른 시각 제시 | "반대로 생각하면?" |
| **결과 탐구** | 영향 분석 | "그러면 어떻게 될까요?" |
| **메타 질문** | 질문에 대한 질문 | "왜 이 질문이 중요할까요?" |

**출력 형식:**

```markdown
## Level 3: 소크라테스식 문답법

### 시작 질문

먼저 생각해볼 것이 있습니다.

> **Q1**: [기본 질문]

잠시 생각해보세요...

---

### 탐구 과정

#### 가정 탐구

> **Q2**: [가정 질문]

많은 사람들이 [흔한 가정]이라고 생각하는데요,

> **Q3**: 정말 그럴까요? [반박 질문]

---

#### 제1원리로 돌아가기

모든 것을 지우고 처음부터 생각해봅시다.

> **Q4**: [주제]의 가장 본질적인 목적은 무엇일까요?

힌트: [힌트 제공]

[제1원리 설명]

---

#### 연결하기

> **Q5**: [주제]와 [관련 개념]의 공통점은 무엇일까요?

[연결 설명]

---

### 핵심 깨달음

이 과정을 통해 도달한 핵심:

1. **[깨달음 1]**: [설명]
2. **[깨달음 2]**: [설명]
3. **[깨달음 3]**: [설명]

---

### 스스로 확인해보기

다음 질문에 답해보세요:

1. [확인 질문 1]
2. [확인 질문 2]
3. [확인 질문 3]

답을 말로 설명할 수 있다면, 이해한 것입니다.
```

## 제1원리 사고 가이드

**제1원리 사고(First Principles Thinking)**: 기존 지식이나 가정을 제거하고, 가장 기본적인 진리에서부터 논리를 구축하는 방법.

**적용 단계:**

```
1. 문제 정의: "무엇을 이해하려 하는가?"
2. 가정 제거: "당연하다고 생각하는 것들은 무엇인가?"
3. 기본 원리: "가장 확실하게 알 수 있는 것은 무엇인가?"
4. 재구성: "기본 원리에서 어떻게 결론에 도달하는가?"
```

**예시 (REST API 제1원리):**

```markdown
## 제1원리로 REST API 이해하기

### 1. 문제 정의
"서로 다른 컴퓨터가 어떻게 소통할까?"

### 2. 가정 제거
- "HTTP를 써야 한다" → 꼭 그런가?
- "JSON 형식이어야 한다" → 꼭 그런가?
- "REST가 최선이다" → 꼭 그런가?

### 3. 기본 원리
- 컴퓨터 A가 컴퓨터 B에게 요청을 보낸다
- 요청에는 "무엇을", "어떻게" 정보가 필요하다
- 응답으로 결과를 받는다

### 4. 재구성
이 기본 원리에서 REST는 다음을 추가:
- "무엇을" = URL (리소스 주소)
- "어떻게" = HTTP 메서드 (GET, POST, PUT, DELETE)
- 상태를 서버에 저장하지 않음 (Stateless)

→ REST는 "웹의 기존 규칙을 활용한 소통 방식"
```

## 예시

### 예시 1: Dependency Injection 설명

```bash
/teach-3-levels "Dependency Injection"
```

### 예시 2: Level 2만 실행 (비유 중심)

```bash
/teach-3-levels "Git" --level=2
```

### 예시 3: 특정 관점 집중

```bash
/teach-3-levels "마이크로서비스" --focus="장단점"
```

## 통합 출력 형식

```markdown
# [주제] 3단계 설명

---

## Level 1: 똑똒한 초보자를 위한 설명
[Level 1 내용]

---

## Level 2: 초등학생도 이해할 수 있는 설명
[Level 2 내용]

---

## Level 3: 소크라테스식 문답법
[Level 3 내용]

---

## 요약

| 레벨 | 핵심 포인트 |
|------|------------|
| L1 | [핵심 1문장] |
| L2 | [핵심 비유] |
| L3 | [핵심 질문] |

## 더 알아보기

- [관련 주제 1]
- [관련 주제 2]
- [추천 자료]
```

## 자동 트리거 조건 (25개+)

이 스킬은 사용자의 이해도가 낮다고 판단될 때 자동으로 트리거됩니다.

### 이해도 부족 표현 (한국어) - 15개

| # | 트리거 표현 | 변형 | 예시 |
|---|-----------|------|------|
| 1 | "잘 모르겠어" | 모르겠어, 잘 모르겠는데, 모르겠음 | "이 부분 잘 모르겠어" |
| 2 | "이해가 안 돼" | 이해 안 돼, 이해가 안 됨, 이해 못 하겠어 | "async/await 이해가 안 돼" |
| 3 | "무슨 말이야" | 무슨 말인지, 뭔 말이야, 무슨 소리야 | "콜백이 무슨 말이야?" |
| 4 | "뭔 소리야" | 뭔 소린지, 무슨 소리, 뭔 얘기야 | "Promise가 뭔 소리야" |
| 5 | "헷갈려" | 헷갈리네, 헷갈림, 혼동돼 | "상속이랑 합성이 헷갈려" |
| 6 | "혼란스러워" | 혼란스럽네, 혼란스럼, 혼동스러워 | "아키텍처가 혼란스러워" |
| 7 | "어려워" | 어렵다, 어렵네, 너무 어려워 | "타입스크립트 어려워" |
| 8 | "복잡해" | 복잡하다, 복잡하네, 너무 복잡해 | "이 코드 복잡해" |
| 9 | "이게 뭐야" | 이건 뭐지, 이게 뭔지, 뭐지 이건 | "데코레이터 이게 뭐야" |
| 10 | "처음 들어봐" | 처음 듣는데, 첨 들어봄, 처음 봐 | "DI 처음 들어봐" |
| 11 | "생소해" | 생소하네, 생소한데, 낯선데 | "이 패턴 생소해" |
| 12 | "낯설어" | 낯설다, 낯선, 익숙하지 않아 | "함수형 프로그래밍 낯설어" |
| 13 | "다시 설명해줘" | 다시 설명해, 한번 더 설명해, 다시 알려줘 | "이 부분 다시 설명해줘" |
| 14 | "쉽게 설명해줘" | 쉽게 알려줘, 쉽게 풀어서, 간단하게 | "REST API 쉽게 설명해줘" |
| 15 | "자세히 알려줘" | 자세히 설명해, 더 자세히, 상세하게 | "이 개념 자세히 알려줘" |

### 이해도 부족 표현 (영어) - 10개

| # | 트리거 표현 | 변형 | 예시 |
|---|-----------|------|------|
| 16 | "I don't understand" | don't get it, can't understand | "I don't understand async" |
| 17 | "I'm confused" | confused about, confusing | "I'm confused about closures" |
| 18 | "What does that mean" | what's that mean, meaning of | "What does 'immutable' mean?" |
| 19 | "Could you explain" | can you explain, please explain | "Could you explain Redux?" |
| 20 | "I'm lost" | lost me, I got lost | "I'm lost on this concept" |
| 21 | "This is confusing" | too confusing, kind of confusing | "This is confusing me" |
| 22 | "Too complicated" | overly complicated, complex | "This code is too complicated" |
| 23 | "Over my head" | above my level, beyond me | "This is over my head" |
| 24 | "ELI5" | explain like I'm 5, eli5 | "ELI5 Docker" |
| 25 | "TLDR" | too long, in simple terms | "TLDR what is Kubernetes?" |

### 질문 형태 트리거 - 10개

| # | 패턴 | 예시 |
|---|------|------|
| 26 | "~가 뭐야?" | "GraphQL이 뭐야?" |
| 27 | "~이 뭐지?" | "캐싱이 뭐지?" |
| 28 | "~란?" | "마이크로서비스란?" |
| 29 | "왜 ~해?" | "왜 타입스크립트 써?" |
| 30 | "어떻게 ~해?" | "어떻게 테스트 작성해?" |
| 31 | "~하는 이유가 뭐야?" | "추상화하는 이유가 뭐야?" |
| 32 | "~와 ~의 차이가 뭐야?" | "REST와 GraphQL의 차이가 뭐야?" |
| 33 | "~을 왜 써?" | "컨테이너를 왜 써?" |
| 34 | "~이 왜 필요해?" | "DI가 왜 필요해?" |
| 35 | "언제 ~해?" | "언제 상속 대신 합성 써?" |

### 학습 요청 트리거 - 10개

| # | 트리거 표현 | 예시 |
|---|-----------|------|
| 36 | "설명해줘" | "OOP 설명해줘" |
| 37 | "알려줘" | "Git 브랜치 전략 알려줘" |
| 38 | "가르쳐줘" | "Python 가르쳐줘" |
| 39 | "초보자용으로" | "초보자용으로 설명해줘" |
| 40 | "기초부터" | "기초부터 설명해줘" |
| 41 | "처음부터" | "처음부터 알려줘" |
| 42 | "비유로 설명해줘" | "비유로 설명해줘" |
| 43 | "예시 들어줘" | "예시 들어서 설명해줘" |
| 44 | "쉬운 말로" | "쉬운 말로 설명해" |
| 45 | "왕초보" | "왕초보도 이해하게" |

### 추가 컨텍스트 트리거 - 10개

| # | 트리거 표현 | 상황 |
|---|-----------|------|
| 46 | "?" (단독 물음표) | 이전 설명에 대한 의문 |
| 47 | "음..." / "흠..." | 이해 중 망설임 |
| 48 | "그러니까..." | 재확인 시도 |
| 49 | "맞아?" / "맞나?" | 이해 확인 |
| 50 | "그게 뭔데" | 추가 설명 요청 |
| 51 | "더 쉽게" | 난이도 낮춤 요청 |
| 52 | "아직도 모르겠어" | 반복 설명 필요 |
| 53 | "구체적으로" | 상세 설명 요청 |
| 54 | "실제로 어떻게" | 실용적 예시 요청 |
| 55 | "비전공자인데" | 배경 지식 부족 |

---

## 트리거 동작 규칙

### 자동 트리거 시 동작

```
사용자 입력 감지
    ↓
트리거 키워드 매칭 (55개)
    ↓
현재 대화 컨텍스트 분석
    ↓
설명할 주제 추출
    ↓
/teach-3-levels 자동 실행
```

### 트리거 우선순위

| 우선순위 | 조건 | 동작 |
|:--------:|------|------|
| 1 | 명시적 호출 (`/teach-3-levels`) | 즉시 실행 |
| 2 | 이해도 부족 표현 + 기술 용어 | 자동 실행 |
| 3 | 질문 형태 + 기술 용어 | 자동 실행 |
| 4 | 학습 요청 | 자동 실행 |
| 5 | 컨텍스트 트리거만 | 확인 후 실행 |

### 트리거 비활성화 조건

| 조건 | 이유 |
|------|------|
| 사용자가 이미 전문가 수준 | 불필요한 기초 설명 방지 |
| 단순 오타/실수 표현 | 오탐 방지 |
| 이전에 같은 주제 설명 완료 | 중복 방지 |
| 코드 작성 중 | 작업 흐름 방해 방지 |

---

## 관련 스킬

| 스킬 | 역할 |
|------|------|
| [@skills/brainstorming/SKILL.md] | 주제 탐색 전 아이디어 정리 |
| [@skills/doc-spec/SKILL.md] | 기술 명세서로 상세 학습 |
| [@skills/diagram-generator/SKILL.md] | 시각적 다이어그램 생성 |
| [@skills/convention-design/SKILL.md] | 설계 원칙 참조 |

## Changelog

| 날짜 | 버전 | 변경 내용 |
|------|------|----------|
| 2026-01-21 | 2.0.0 | 자동 트리거 조건 55개 추가, 트리거 동작 규칙 정의 |
| 2026-01-21 | 1.0.0 | 초기 생성 |
