Lesson 09 — 자동화 Hooks (심화 트랙 2)
학습자가 끝나면 hook 1개를 만들어 반복 작업을 자동 트리거하고, 안전성까지 점검한다.
0. 시작하기 전에
| 문서 | 언제 |
|---|---|
_shared/teaching-protocol.md |
이론 청크 |
_shared/guided-practice-protocol.md |
가이드 실습 |
_shared/learner-profile-schema.md |
진도·draft |
_shared/style-guide.md |
톤·분기·예시 |
_shared/menu-template.md |
메뉴 |
1. 진입 시 행동
1·8강과 동일 패턴. progress["09-hooks"]. 헤더 📘 [Lesson 9 · 청크 X/Y].
2. 진도 갱신 + draft 키 명세
| 시점 | 갱신 |
|---|---|
| 9강 첫 진입 | status = "in_progress", current_chunk = 1 |
| 청크 통과 | current_chunk += 1 |
| 청크 3 답변 | draft.trigger_event = <학습자가 고른 트리거> |
| 청크 4 답변 | draft.action = <트리거 시 실행할 액션> |
| 청크 5 답변 | draft.edge_cases = [<엣지 케이스 메모>] |
| 실습 통과 | practice_status = "done", status = "completed" |
9강이 사용하는 draft 키
| 키 | 시점 | 형식 |
|---|---|---|
trigger_event |
청크 3 | string |
action |
청크 4 | string |
edge_cases |
청크 5 | array |
3. 이론 lesson 흐름
청크 8개.
9강에서 왜 한 청크씩 가는가
hook은 자동으로 발사되는 코드라 잘못 만들면 무한 루프나 의도치 않은 부작용을 만듭니다. 한 청크씩 트리거 → 액션 → 안전 점검 → 다음으로 가야 학습자가 어떤 위험이 있을지 의식하면서 만들 수 있습니다.
4. 가이드 실습 — 3개 옵션 (practice/options/)
4-0. 진입 시 draft 정리
🎉 이론 끝! 이제 진짜 hook을 만들어볼 시간이에요.
📝 트리거 이벤트: <draft.trigger_event>
📝 액션: <draft.action>
📝 엣지 케이스:
- <draft.edge_cases[0]>
- <draft.edge_cases[1]>
이걸 토대로 진짜 hook을 만들어볼게요.
4-1. 옵션 제시 (3개)
어떤 hook을 만들어보시겠어요?
(1) 파일 저장 시 — 예: 저장하면 자동 포맷팅
(2) 커밋 전 — 예: 커밋하기 전에 검사 실행
(3) 다른 트리거 — {{name}}님이 직접 선택
번호로 답해주세요.
각 옵션 → practice/options/<id>.md 로드.
4-2. 가이드 실습 7단계
사전 점검(도구별 hook 지원) → 안전 패턴 안내 → 정의 → 등록 → 시연 → 검증.
4-3. 검증 기준
| 항목 | 통과 기준 |
|---|---|
| 트리거가 실제로 발사됨 | ✅ |
| 액션이 예상대로 동작 | ✅ |
| 엣지 케이스(예: 무한 루프 방지)가 적어도 1개 처리됨 | ✅ |
3개 중 2개 이상 ✅.
5~7. (1·8강 동일 패턴)
자리표시자 / 도구 비종속 / 종료 시 행동.
다음 강의: 10-work-decomposition.
8. 강의 작성자 메타
- 트랙: 심화 2강
- 선행: 기초 1~7강 + 심화 8강 (권장)
- 분량: 약 30분
- 외부 자료: 도구별 hook 기능 (Claude Code 우선, 다른 도구는 가능한 만큼)
- 비용: 부분적
- 학습 목표:
- hook의 트리거-액션 모델을 이해
- 본인 환경에 hook 1개를 만들고 시연
- 안전한 hook 작성 패턴 (무한 루프 방지 등) 적용
- 다음 강의: 10-work-decomposition
9. 빠른 자기 점검
- 학습자 프로필 읽음
-
📘 [Lesson 9 · 청크 X/Y] - 한 청크만, 끝에 ❓/🛠/🔀
- 자리표시자 채움
- 도구명 노출 X
- 시도 전 답 X
-
progress["09-hooks"]갱신 - 9강 추가: hook의 부작용 가능성을 학습자에게 안내했는가