130 lines
7.8 KiB
Markdown
130 lines
7.8 KiB
Markdown
---
|
|
title: (강사 설명) {{무엇을, 한 줄로}}
|
|
source_type: explainer
|
|
status: draft
|
|
confidence: medium
|
|
tags: []
|
|
related_projects: []
|
|
last_reviewed:
|
|
---
|
|
|
|
# (강사 설명) {{제목 — 정의가 아니라 "무엇을 할 수 있게 되는가" 로}}
|
|
|
|
> Layer: `wiki/explainer/` — **derived(파생) 교육 문서.** "나의 진짜 이해" 를 위한 1타강사 칠판이다.
|
|
> 정확한 사실·근거·검증 등급은 여기서 만들지 않는다. 전부 canonical 에서 가져온다:
|
|
> - 개념·대안·근거: `[[wiki/concepts/{{concept-slug}}]]`
|
|
> - 내 프로젝트 실제 구현·검증 범위: `[[wiki/projects/{{project}}/{{slug}}]]` (있을 때만)
|
|
>
|
|
> 이 문서의 **비유는 의도적으로 부정확**하다 (이해를 위한 단순화). 비유를 사실로 인용하지 마라. 면접에서 말할 땐 canonical 의 표현을 써라.
|
|
|
|
<!--
|
|
작성 원칙 (HARD RULE — 지우지 말고 작성 후 검토):
|
|
1. derived 다. 새 claim 을 만들지 않는다. 전부 canonical 의 재구성이다. (코드 인용은 ground-truth repo 에서, file:line 캡션과 함께.)
|
|
2. **학습 계약 먼저(§0).** "무엇을 알고 와서(선행지식), 끝나면 무엇을 어디까지 설명할 수 있나(수료역량)"를 표로 못박는다. 이게 이 템플릿의 1급 시민이다 — 학습자가 진입↔도달을 스스로 측정하게 한다.
|
|
3. 정의로 시작하지 않는다. §1 은 고통/문제 장면.
|
|
4. **하나의 관통 줄기(through-line).** 처음부터 끝까지 한 예시("요청 1건의 생애" 등)를 따라간다. 큰 그림(§3)에서 정상 경로를 깔고, §4 에서 그 1건이 각 안전장치를 *통과 순서대로* 만나게 한다.
|
|
5. **난이도 레인.** 각 본문 모듈 제목 끝에 `[신입 필수]` / `[심화]` / `[참조]` 라벨. §0 에 "신입 최소 완주 경로"를 명시(어디까지 읽으면 수료역량 달성).
|
|
6. **just-in-time 용어.** 용어는 *처음 쓰는 모듈 시작*에 "새 용어" 미니 박스로 정의한다. 전체 용어집(§참조)은 *복습 치트시트*이지 처음 배우는 곳이 아니다.
|
|
7. **모듈마다 형성 평가.** 각 본문 모듈 끝에 `<details>` 자가 점검 1~3문항(정답은 본문 위치/메서드명을 가리킴). 끝에 몰지 말 것.
|
|
8. 톤: 존댓말 아님. 크리스프 평서문 + 직접 호명. 단정 과장 금지(canonical 의 과장 금지 준수). 비유가 사실을 왜곡할 지점은 "강사의 한마디"로 명시 보정.
|
|
9. **## 백बोन 헤딩(§0~§3 · 정의 · 자가 점검 · Sources)은 글자 그대로 유지**한다. structure-lint(`wiki_structure_lint.py`)가 헤딩을 거의-정확매칭하므로, 백본 헤딩을 바꾸거나 인스턴스값(프로젝트명/주제)을 백본 헤딩에 끼우면 MISSING_SECTION 오탐이 난다. **인스턴스값·난이도 라벨은 백본 헤딩이 아니라 그 아래 첫 줄(부제, bold)에 쓴다.** 본문 모듈은 `###` 으로 자유롭게(린트는 `##` 만 검사).
|
|
-->
|
|
|
|
---
|
|
|
|
## §0. 학습 계약 — 시작 전에 꼭 읽기
|
|
|
|
> 이 수업이 가르치는 것을 한 문장으로. 그 다음 네 블록을 *표로* 채운다.
|
|
|
|
**이 수업을 마치면 — 수료 역량** (이 질문들에 *이 깊이로* 답하게 된다):
|
|
|
|
| # | 질문 | 답에 반드시 들어가야 할 키워드 |
|
|
|---|---|---|
|
|
| E1 | {{핵심 질문 1}} | {{기대 답변 깊이}} |
|
|
| E2 | {{...}} | {{...}} |
|
|
|
|
**시작 전 알아야 할 것 — 선행 지식** (self-check 통과하면 OK):
|
|
|
|
| 알아야 할 것 | self-check (한 줄로 답되면 통과) | 모르면 |
|
|
|---|---|---|
|
|
| {{선행 1}} | "{{스스로 던질 질문}}" | {{보충 링크/섹션}} |
|
|
|
|
**난이도 레인 & 최소 완주 경로:** 본문 제목의 `[신입 필수]` / `[심화]` / `[참조]` 를 읽는 법. "신입은 {{§N}} 까지만 읽어도 E1~E{{k}} 달성. [심화]는 1회독 후."
|
|
|
|
**관통 줄기 🧵:** 이 수업은 처음부터 끝까지 **"{{예시 1건}}의 생애"** 를 따라간다. ({{가상/실제}} 여부 명시.)
|
|
|
|
---
|
|
|
|
## §1. 한 장면 — 5초 만에 고통 느끼기
|
|
|
|
> 정의 금지. 이 주제가 없으면 무엇이 *터지는지* 구체적 장면. 코드/숫자/실패가 보이게.
|
|
> 마지막은 "그래서 진짜 고민은 이 한 줄" 로 §2 에 넘긴다.
|
|
|
|
---
|
|
|
|
## §2. 단 하나의 축
|
|
|
|
> **부제(첫 줄, bold)에 인스턴스 축 이름**: 예) "정합성 ↔ 가용성". (백본 헤딩엔 넣지 말 것 — 원칙 9.)
|
|
> 모든 선택이 답하려는 *공통 질문* 을 한 축(axis)으로 압축. 양 끝 신념을 ASCII 한 줄로 대비.
|
|
> 메시지: "누가 맞고 틀린 게 아니라, 무엇을 더 두려워하는지가 다르다."
|
|
|
|
```text
|
|
{{왼쪽 끝 신념}} ◄───────────────────────────────► {{오른쪽 끝 신념}}
|
|
{{선택지 위치들}}
|
|
```
|
|
|
|
---
|
|
|
|
## §3. 큰 그림
|
|
|
|
> **부제(첫 줄, bold)에 인스턴스 제목**: 예) "{{요청 1건}}의 정상 항해".
|
|
> 관통 줄기의 *정상 경로* 1회를 깐다. 레이어 경계(누가 누구를 부르나) + 입·출력(구체 값/JSON) 을 보인다.
|
|
> 아직 안 본 영역은 🌫️(미지의 영역)로 표시하되, 경계를 *넘는 값* 은 보여준다. 마스터 시퀀스 다이어그램 1장은 여기.
|
|
|
|
<!--
|
|
─────────────────────────────────────────────────────────────────────
|
|
본문 (코드로 따라가기) — 백본 아니라 ### 모듈로 자유롭게. 주제별 가변.
|
|
관통 줄기의 1건이 *통과하는 순서대로* 안전장치/메커니즘을 한 모듈씩.
|
|
각 모듈은 아래 패턴을 반복한다 (### 이므로 structure-lint 가 강제하지 않음):
|
|
|
|
### {{모듈 제목}} [신입 필수|심화|참조]
|
|
> **새 용어:** {{이 모듈에서 처음 쓰는 용어 2~3개 just-in-time 정의}}
|
|
{{실제 코드 블록 + 📄 file:line 캡션 + 한 줄씩 풀이}}
|
|
{{필요시 mermaid: sequence/state/class diagram}}
|
|
<details><summary>✅ 이해 점검</summary>
|
|
1. {{질문}} (정답: {{본문 위치/메서드명}})
|
|
</details>
|
|
─────────────────────────────────────────────────────────────────────
|
|
-->
|
|
|
|
---
|
|
|
|
## 그래서 어떤 문제로 "정의" 했나
|
|
|
|
> **부제(첫 줄, bold)에 인스턴스**: "{{프로젝트}} 가 {{이 조합}}을 고른 이유". (백본 헤딩엔 넣지 말 것.)
|
|
> 메시지: "그게 우월해서" 가 아니라 "내가 문제를 그렇게 정의했기 때문". 내가 세운 규칙/제약이 답을 결정했음을 보인다.
|
|
> 그 다음 *검증된 사실만* (project 문서에서) 간략히. 검증 범위(로컬/dev/prod) 와 "말하면 안 되는 범위" 를 분명히.
|
|
|
|
- 내가 세운 규칙 / 문제 정의: {{...}} → 이 규칙이 답을 어떻게 좁혔는가
|
|
- 실제로 한 것 (`actually-implemented` / `locally-verified` 등급만): {{...}} — 자세히는 `[[wiki/projects/{{project}}/{{slug}}]]`
|
|
- 검증은 어디까지 / 무엇을 말하면 안 되는가: {{...}}
|
|
|
|
---
|
|
|
|
## 자가 점검 — 다시 처음 장면으로
|
|
|
|
> §1 장면으로 복귀. 답을 *외운 게 아니라 재구성할 수 있는지* 확인하는 질문 5~6개.
|
|
> 최소 1개는 "문제 정의를 바꾸면 답이 어떻게 바뀌는가", 1개는 "흔한 과장을 반박하라", 1개는 "한 단계 더 깊은 메커니즘".
|
|
> (모듈별 형성 평가와 별개로, 전체를 관통 줄기로 다시 엮는 종합 점검.)
|
|
|
|
1. {{문제 정의를 바꾸면?}}
|
|
2. {{흔한 단정/과장을 반박하라}}
|
|
3. {{한 단계 더 깊은 메커니즘/비용}}
|
|
|
|
---
|
|
|
|
## 근거 자료 (이 설명의 출처 — 모두 canonical)
|
|
|
|
- `[[wiki/concepts/{{concept-slug}}]]` — 개념 정의 / Claim-backed 근거 / 과장 금지 (사실의 금고)
|
|
- `[[wiki/projects/{{project}}/{{slug}}]]` — 내 프로젝트 실제 구현 · 검증 범위 (있을 때만)
|