Day 5: Fetch & Digest β μ½ν
μΈ λ₯Ό λ΄ κ²μΌλ‘ λ§λλ μ€ν¬
μ΄ μ€ν¬μ΄ νΈμΆλλ©΄ μλ STOP PROTOCOLμ λ°λμ λ°λ₯Έλ€.
μ©μ΄ μ 리
μ΄ μ€ν¬μμ μ¬μ©νλ ν΅μ¬ μ©μ΄:
| μ©μ΄ |
μ€λͺ
|
| fetch |
μΈλΆμμ λ°μ΄ν°λ₯Ό κ°μ Έμ€λ κ². "λ°°λ¬ μ£Όλ¬Έμ²λΌ URLλ§ μ£Όλ©΄ λ΄μ©μ΄ λμ°©" |
| digest |
κ°μ Έμ¨ λ΄μ©μ μν(μμ½Β·ν΄μ¦Β·νμ΅)νλ κ². "μ½κ³ λμ΄ μλλΌ μΉμ΄μ λ΄ κ²μΌλ‘ λ§λ€κΈ°" |
| API |
νλ‘κ·Έλ¨λΌλ¦¬ λννλ 창ꡬ. "μλΉ λ©λ΄νμ²λΌ μμ² νμμ΄ μ ν΄μ Έ μλ€" |
| JSON |
μ»΄ν¨ν°κ° μ½κΈ° μ’μ λ°μ΄ν° νμ. μ¬λμ΄ λ³΄λ©΄ μ€κ΄νΈ ν¬μ±μ΄μ§λ§ Claudeλ μλ²½ν μ΄ν΄νλ€ |
| yt-dlp |
YouTubeμμ μλ§Β·λ©νλ°μ΄ν°λ₯Ό μΆμΆνλ λ¬΄λ£ λꡬ |
| μλ μλ§ |
YouTubeκ° AIλ‘ λ§λ μλ§. μ λ¬Έ μ©μ΄λ μ΄λ¦μ΄ ν릴 μ μλ€ |
| Web Search 보μ |
μλ μλ§μ μ€λ₯λ₯Ό μΉ κ²μμΌλ‘ λ°λ‘μ‘λ κΈ°λ² |
| Quiz-First |
μμ½μ λ¨Όμ λ³΄μ§ μκ³ ν΄μ¦λΆν° νΈλ νμ΅λ². 9-12% κΈ°μ΅λ ₯ ν₯μ ν¨κ³Ό |
| μ€ν¬ 체μ΄λ |
νλμ μ€ν¬ κ²°κ³Όλ₯Ό λ€λ₯Έ μ€ν¬μ μ
λ ₯μΌλ‘ μ°κ²°νλ κ². "fetch β digest νμ΄νλΌμΈ" |
STOP PROTOCOL β μ λ μλ° κΈμ§
μ΄ νλ‘ν μ½μ μ΄ μ€ν¬μ μ΅μ°μ κ·μΉμ΄λ€.
μλ κ·μΉμ μλ°νλ©΄ μμ
μ΄ λ§κ°μ§λ€.
κ° λΈλ‘μ λ°λμ 2ν΄μ κ±Έμ³ μ§ννλ€
ββ Phase A (첫 λ²μ§Έ ν΄) βββββββββββββββββββββββββββββββ
β 1. references/μμ ν΄λΉ λΈλ‘ νμΌμ EXPLAIN μΉμ
μ μ½λλ€ β
β 2. κΈ°λ₯μ μ€λͺ
νλ€ β
β 3. references/μμ ν΄λΉ λΈλ‘ νμΌμ EXECUTE μΉμ
μ μ½λλ€ β
β 4. "μ§κΈ μ§μ μ€νν΄λ³΄μΈμ"λΌκ³ μλ΄νλ€ β
β 5. β μ¬κΈ°μ λ°λμ STOP. ν΄μ μ’
λ£νλ€. β
β β
β β μ λ νμ§ μλ κ²: ν΄μ¦ μΆμ , QUIZ μΉμ
μ½κΈ° β
β β μ λ νμ§ μλ κ²: AskUserQuestion νΈμΆ β
β β μ λ νμ§ μλ κ²: "μ€νν΄λ΄€λμ?" μ§λ¬Έ β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β¬οΈ μ¬μ©μκ° λμμμ "νμ΄", "μλ£", "λ€μ" λ±μ μ
λ ₯νλ€
ββ Phase B (λ λ²μ§Έ ν΄) βββββββββββββββββββββββββββββββ
β 1. references/μμ ν΄λΉ λΈλ‘ νμΌμ QUIZ μΉμ
μ μ½λλ€ β
β 2. AskUserQuestionμΌλ‘ ν΄μ¦λ₯Ό μΆμ νλ€ β
β 3. μ λ΅/μ€λ΅ νΌλλ°±μ μ€λ€ β
β 4. λ€μ λΈλ‘μΌλ‘ μ΄λν μ§ AskUserQuestionμΌλ‘ 묻λλ€ β
β 5. β λ€μ λΈλ‘μ μμνλ©΄ λ€μ Phase AλΆν°. β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ν΅μ¬ κΈμ§ μ¬ν (μ λ μλ° κΈμ§)
- Phase Aμμ AskUserQuestionμ νΈμΆνμ§ μλλ€ β μ€λͺ
+ μ€ν μλ΄ ν λ°λ‘ Stop
- Phase Aμμ ν΄μ¦λ₯Ό λ΄μ§ μλλ€ β QUIZ μΉμ
μ Phase Bμμλ§ μ½λλ€
- Phase Aμμ "μ€νν΄λ΄€λμ?"λ₯Ό λ¬»μ§ μλλ€ β μ¬μ©μκ° λ¨Όμ λ§ν λκΉμ§ κΈ°λ€λ¦°λ€
- ν ν΄μ EXPLAIN + QUIZλ₯Ό λμμ νμ§ μλλ€ β λ°λμ 2ν΄μΌλ‘ λλλ€
곡μ λ¬Έμ URL μΆλ ₯ (μ λ λλ½ κΈμ§)
λͺ¨λ λΈλ‘μ Phase A μμ μ, ν΄λΉ reference νμΌ μλ¨μ > 곡μ λ¬Έμ: URLμ λ°λμ κ·Έλλ‘ μΆλ ₯νλ€.
π 곡μ λ¬Έμ: [URL]
- reference νμΌμ URLμ΄ μ¬λ¬ κ° μμΌλ©΄ μ λΆ μΆλ ₯νλ€
- URLμ μμ½νκ±°λ μλ΅νμ§ μλλ€
Phase A μ’
λ£ μ νμ 문ꡬ
Phase Aμ λ§μ§λ§μλ λ°λμ μλ ννμ 문ꡬλ₯Ό μΆλ ₯νκ³ Stopνλ€:
---
π μ λ΄μ©μ μ§μ μ€νν΄λ³΄μΈμ.
μ€νμ΄ λλλ©΄ "μλ£" λλ "λ€μ"μ΄λΌκ³ μ
λ ₯ν΄μ£ΌμΈμ.
μ΄ λ¬Έκ΅¬ μ΄νμ μ΄λ€ λꡬ νΈμΆ(AskUserQuestion ν¬ν¨)μ΄λ μΆκ° ν
μ€νΈλ μΆλ ₯νμ§ μλλ€.
μμ μκ° κ°μ΄λ
| Block |
μ£Όμ |
μμ μκ° |
| 0 |
κ°λ
μ΄ν΄ |
~10λΆ |
| 1 |
fetch-tweet μ€ν¬ λ§λ€κΈ° |
~20λΆ |
| 2 |
fetch-youtube μ€ν¬ λ§λ€κΈ° |
~30λΆ |
| 3 |
content-digest μ€ν¬ λ§λ€κΈ° |
~20λΆ |
| 4 |
ν΅ν© μ€μ΅ + λ§λ¬΄λ¦¬ |
~15λΆ |
| ν©κ³ |
|
~95λΆ |
Block 2κ° κ°μ₯ μκ°μ΄ λ§μ΄ 걸리λ ν΅μ¬ λΈλ‘μ
λλ€. yt-dlp μ€μ κ³Ό Web Search 보μ μ΄ ν¬ν¨λμ΄ μμ΅λλ€.
μ¬μ μ€λΉ κΆμ₯: yt-dlp μ€μΉλ₯Ό 미리 ν΄μ€λ©΄ Block 2 μκ°μ 10λΆ μ΄μ λ¨μΆν μ μμ΅λλ€. (brew install yt-dlp λλ pip install yt-dlp)
Fast Track: μκ°μ΄ λΆμ‘±νλ©΄ Block 1~3μ κ°κ° νλμ ν둬ννΈλ‘ ν λ²μ λ§λ€ μ μμ΅λλ€.
ν΅μ¬ μ λ΅: μ€μ μ€ν¬μ ν΄μ²΄νλ©° λ°°μ°κΈ°
μλ λ°©μμΌλ‘ μ§ννλ€:
- Block 0μμ μ½ν
μΈ μν νμ΄νλΌμΈ(fetch β digest) κ°λ
μ μ΄ν΄νλ€
- Block 1μμ fetch-tweet μ€ν¬μ μ§μ λ§λ λ€ (API νμ© + λ²μ νμ΄νλΌμΈ)
- Block 2μμ fetch-youtube μ€ν¬μ μ§μ λ§λ λ€ (μλ§ μΆμΆ + Web Search 보μ )
- Block 3μμ content-digest μ€ν¬μ μ§μ λ§λ λ€ (Quiz-First νμ΅)
- Block 4μμ 3κ° μ€ν¬μ μ°κ²°νμ¬ μ€μ μ½ν
μΈ λ‘ μ€μ΅νλ€
μ΄μμ§μ΄ μ€μ λ‘ μ¬μ©νλ μ€ν¬(fetch-tweet, content-digest)μ μ°Έκ³ νλ©° μκΈ°λ§μ λ²μ μ λ§λ λ€.
λΈλ‘ νΉμ κ·μΉ
- Block 0 (κ°λ
μ΄ν΄): Phase Aμμ μ½ν
μΈ νμ΄νλΌμΈ κ°λ
μ€λͺ
+ μλ³Έ μ€ν¬ ꡬ쑰 λΆμ μλ΄ β Stop. Phase Bμμ ν΄μ¦.
- Block 1 (fetch-tweet): Phase Aμμ fetch-tweet μ€ν¬μ Step-by-StepμΌλ‘ λ§λλ λ°©λ² μλ΄ β μ°Έκ°μκ° μ§μ μμ± β Stop. Phase Bμμ ν΄μ¦.
- Block 2 (fetch-youtube): Phase Aμμ fetch-youtube μ€ν¬ λ§λ€κΈ° μλ΄ (yt-dlp + Web Search 보μ ) β μ°Έκ°μκ° μ§μ μμ± β Stop. Phase Bμμ ν΄μ¦. (κ°μ₯ κΈ΄ λΈλ‘ β μλ£ ν "μ¬κΈ°κΉμ§ μ λ°λΌμ€μ
¨μ΅λλ€!" κ²©λ €)
- Block 3 (content-digest): Phase Aμμ content-digest μ€ν¬ λ§λ€κΈ° μλ΄ (Quiz-First νμ΅) β μ°Έκ°μκ° μ§μ μμ± β Stop. Phase Bμμ ν΄μ¦.
- Block 4 (ν΅ν© μ€μ΅): Phase Aμμ 3κ° μ€ν¬ μ°κ²° μ€μ΅ μλ΄ β μ€μ μ½ν
μΈ λ‘ μ€μ΅ β Stop. Phase Bμμ μ’
ν© ν΄μ¦ + λ§λ¬΄λ¦¬.
References νμΌ λ§΅
| λΈλ‘ |
νμΌ |
μ£Όμ |
| Block 0 |
references/block0-concept.md |
μ½ν
μΈ μν νμ΄νλΌμΈ + μ€ν¬ 체μ΄λ |
| Block 1 |
references/block1-fetch-tweet.md |
fetch-tweet μ€ν¬ λ§λ€κΈ° |
| Block 2 |
references/block2-fetch-youtube.md |
fetch-youtube μ€ν¬ λ§λ€κΈ° |
| Block 3 |
references/block3-content-digest.md |
content-digest μ€ν¬ λ§λ€κΈ° |
| Block 4 |
references/block4-integration.md |
ν΅ν© μ€μ΅ + λ§λ¬΄λ¦¬ |
νμΌ κ²½λ‘λ μ΄ SKILL.md κΈ°μ€ μλκ²½λ‘λ€.
κ° reference νμΌμ ## EXPLAIN, ## EXECUTE, ## QUIZ μΉμ
μΌλ‘ ꡬμ±λλ€.
μ§ν κ·μΉ
- ν λ²μ ν λΈλ‘μ© μ§ννλ€
- "λ€μ", "skip", λΈλ‘ λ²νΈ/μ΄λ¦μΌλ‘ μ΄λνλ€
- κ° λΈλ‘μμ μμ±ν μ€ν¬ νμΌμ λ€μ λΈλ‘μμ μ΄μ΄μ νμ©νλ€
- μ°Έκ°μμ νλ‘μ νΈμ
.claude/skills/ μλμ μ€ν¬μ μμ±νλ€
- Claude Code κ΄λ ¨ μ§λ¬Έμ΄ μ€λ©΄ claude-code-guide μμ΄μ νΈ(λ΄μ₯ λꡬ)λ‘ λ΅λ³νλ€. λ΅λ³ ν μ¬μ©μκ° μ§μ λ°λΌν μ μκ² λ¨κ³λ³λ‘ μλ΄νκ³ , μ§λ¬Έν λλ AskUserQuestionμ μ¬μ©νλ€. λ΄μ₯ μμ΄μ νΈ λ΅λ³μ΄ λΆμ ννλ€κ³ νλ¨λλ©΄, 곡μ λ¬Έμλ₯Ό
curlλ‘ νμΌμ μ μ₯ν λ€ Read ν΄λ‘ κΌΌκΌΌν μ½κ³ μ νν μ λ³΄λ‘ λ€μ λ΅νλ€ (WebFetchλ μμ½/μμ€ μνμ΄ μμΌλ―λ‘ μ¬μ©νμ§ μλλ€)
μμ
μ€ν¬ μμ μ λ¨Όμ μ΅μ 컀리νλΌμ μ€μΉν λ€ λΈλ‘μ μ ννλ€.
Step 1: μ΅μ μ€ν¬ μ€μΉ
μλ λͺ
λ Ήμ΄λ₯Ό μΆλ ₯νκ³ Bashλ‘ μ€ννλ€:
npx skills add ai-native-camp/camp-1 --agent claude-code --yes
μ€ν κ²°κ³Όλ₯Ό κ°λ΅ν μλ΄νλ€ (μ: "μ€ν¬μ΄ μ΅μ λ²μ μΌλ‘ μ€μΉλμμ΅λλ€").
Step 2: λΈλ‘ μ ν
μλ ν
μ΄λΈμ 보μ¬μ£Όκ³ AskUserQuestionμΌλ‘ μ΄λμ μμν μ§ λ¬Όμ΄λ³Έλ€.
| Block |
μ£Όμ |
λ΄μ© |
| 0 |
κ°λ
μ΄ν΄ |
μ½ν
μΈ μν νμ΄νλΌμΈ, μ€ν¬ 체μ΄λμ΄λ? |
| 1 |
fetch-tweet |
X/Twitter νΈμμ κ°μ Έμμ λ²μνλ μ€ν¬ λ§λ€κΈ° |
| 2 |
fetch-youtube |
YouTube μλ§μ κ°μ Έμμ λ²μνλ μ€ν¬ λ§λ€κΈ° |
| 3 |
content-digest |
κ°μ Έμ¨ μ½ν
μΈ λ‘ ν΄μ¦-νμ΅νλ μ€ν¬ λ§λ€κΈ° |
| 4 |
ν΅ν© μ€μ΅ |
3κ° μ€ν¬μ μ°κ²°ν΄μ μ€μ μ½ν
μΈ λ‘ μ€μ΅ |
AskUserQuestion({
"questions": [{
"question": "Day 5: Fetch & Digest\n\nμ΄λμλΆν° μμν κΉμ?",
"header": "μμ λΈλ‘",
"options": [
{"label": "μ²μλΆν° (Block 0)", "description": "μ½ν
μΈ νμ΄νλΌμΈ κ°λ
λΆν° μ°¨κ·Όμ°¨κ·Ό"},
{"label": "fetch-tweet (Block 1)", "description": "λ°λ‘ νΈμ μ€ν¬ λ§λ€κΈ°λΆν°"},
{"label": "fetch-youtube (Block 2)", "description": "YouTube μ€ν¬ λ§λ€κΈ°λΆν°"},
{"label": "content-digest (Block 3~4)", "description": "ν΄μ¦-νμ΅ μ€ν¬ λ§λ€κΈ°λΆν°"}
],
"multiSelect": false
}]
})
μμ λΈλ‘ μ ν ν β ν΄λΉ λΈλ‘μ Phase AλΆν° μ§ννλ€.