6.7 KiB
6.7 KiB
7·8교시 · 바이브 코딩 (tcrew)
8교시 순서: 발표 10분 → 4단계 정리 35분 → 다음 일차 예고 5분. 아래의 강사 정리 · 강사 바이브 코딩 · 팁은 4단계 정리 안에서 짧게 다루거나 시간이 남으면 합니다.
- 교시: 7교시 16:00
16:50 (각자 만들기), 8교시 17:0017:50 (발표 · 정리 · 강사 바이브 코딩 · 팁 · 예고) - 과제: VIBE-REQ-TCREW(요청서) → 학생이 직접 쓰는
SPEC.md→ VIBE-Q-TCREW(요구 · 단계)와 비교 → 만들기 → 수업 뒤VIBE-A-TCREW.md공개 - 68일차와 같은 흐름입니다: 사람의 말(요청서)을 확인할 수 있는 요구로 바꾸는 일을 학생이 먼저 하고, VIBE-Q는 그 다음 단계(비교 대상)로 씁니다.
- 오늘은
tcrew: 질문 하나를 작성자 → 검토자 → 정리자 LLM이 차례로 처리하고 역할별 탭으로 보여 주는 TUI. 역할 지시문은crew.yaml. 오늘 n8n 공지 팀을 파이썬으로 다시 만드는 셈입니다.
flowchart LR
R["요청서 → SPEC<br/>10분"] --> A["7교시<br/>단계별 만들기 40분"] --> B["발표<br/>10분"] --> C["강사 정리<br/>10분"] --> D["강사 바이브 코딩<br/>15분"] --> E["보충 · 팁<br/>10분"] --> F["70일차 예고<br/>5분"]
1. 7교시 · 각자 만들기 (50분)
| 시간 | 단계 | 확인 |
|---|---|---|
| 16:00~16:02 | 0. 준비 (~/vibe/tcrew, git init). 에이전트는 아직 켜지 않음 |
|
| 16:02~16:12 | 0. 요청서 → SPEC.md (직접) → VIBE-Q와 비교 · 고치기 · commit |
요구마다 확인 방법(호출 순서 · 횟수 · 파일), 숨은 요구, 비교한 줄 |
| 16:12~16:23 | 1. YAML · 차례로 부르기 (R1). 첫 요청은 "SPEC.md를 읽고 확인 방법부터 말해" | uv run tcrew "..." --plain, 가짜 LLM 테스트 |
| 16:23~16:35 | 2. 검토 · 고쳐 쓰기 · 기록 (R3 · R5) | "항상 FIX" 검토자로 한 번만 고치고 멈춤 |
| 16:35~16:45 | 3. TUI 탭 (R2 · R4) | translator 추가 → 탭 4개 |
| 16:45~16:50 | 4. 정리 · SPEC.md 체크 · 발표 메모 |
16:00에 화면에 띄울 것: 요청서의 ①~⑤와 예 하나(① → R1). "부탁은 확인할 수 없습니다. 호출 순서 · 횟수 · 파일로 바꿉니다." 16:10쯤 "VIBE-Q를 열어 비교하세요"를 알립니다.
| 볼 것 | 막혔을 때 한마디 |
|---|---|
| SPEC 없이 VIBE-Q를 통째로 붙여 넣었나 | "요청서로 SPEC.md부터. 확인 방법이 없으면 됐는지 모릅니다" |
| SPEC에 부탁만 ("끝없이 주고받지 않게") | "늘 FIX인 검토자면 LLM이 몇 번 불려야 하나요? 숫자로" |
| 검토 답을 프로그램이 못 읽음 | "첫 줄 PASS/FIX처럼 읽을 수 있는 모양으로, 아니면 FIX로 보게" |
| 끝없이 고쳐 씀 | "고쳐 쓰기 횟수를 YAML에, 코드가 지키게" |
| 역할 이름이 코드에 박힘 | "translator를 YAML에만 넣고 돌려 보세요" |
| 테스트가 진짜 LLM을 부름 | "가짜 LLM으로 순서만 확인" |
| 실행해 보지 않고 다음 요청 | "에이전트가 됐다고 해도 직접 uv run tcrew" |
수업 준비 때 tcrew를 미리 만들어 보지는 않았습니다. 강사 바이브 코딩(4절)에서 걸린 시간을 재어 정답본(VIBE-A-TCREW.md)에 남깁니다.
2. 8교시 · 발표 (10분)
- 1~2명. 검토 답 읽기나 고쳐 쓰기 멈춤을 스스로 푼 사람을 먼저 고릅니다.
- 3분 발표 · 2분 질문: 내 SPEC과 VIBE-Q가 달랐던 곳 / 잘 먹힌 요청문 / 안 먹힌 요청문 / 에이전트가 틀린 곳 /
notice-phone사실로 시연.
3. 강사 정리 (10분)
| n8n 공지 팀 | tcrew | |
|---|---|---|
| 요청 분석 | 상황 → 역할 카드 (Lab 01 예제 1) | 요청서 → SPEC.md (요구 · 숨은 요구 · 범위 밖 · 순서) |
| 역할 정의 | 역할마다 워크플로우 + 지시문 | crew.yaml 역할 목록 |
| 이어 붙이기 | HTTP로 다음 역할 호출 | 앞 답 → 다음 입력 |
| 읽을 수 있는 검토 | passed, codes |
첫 줄 PASS/FIX (또는 JSON) |
| 고쳐 쓰기 한 번 | 노드를 따로 (Revise draft) |
max_revisions: 1 |
| fail-closed | 검토 결과가 없으면 게시 안 함 | 못 읽은 검토는 FIX |
| 기록 | steps, first_codes, Executions |
runs/*.json |
| 바꿔 끼우기 | 같은 계약이면 다른 사람 역할도 | 가짜 LLM ↔ OpenAI |
4. 강사 바이브 코딩 (15분)
| 주제 | 요청문 요지 | 보여 줄 것 |
|---|---|---|
| 역할별 모델 | "crew.yaml 역할마다 model 을 다르게(검토자만 더 큰 모델), 비용·시간 표" | 역할 분리의 장점: 역할마다 다른 비용 (75일차 예고) |
| n8n 연결 | "tcrew 의 writer 를 n8n my-writer 웹훅으로 바꿔 끼우기(kind: http)" | 같은 계약이면 LLM 역할과 n8n 역할을 섞어 씀 |
| tflow로 보기 | "어제 tflow 로 오늘 my-work/notice.json 열기, 고쳐 쓰기 경로 확인" | 어제 도구를 오늘 확인에 씀 |
걸린 시간과 결과를 Last3Mon/69/VIBE-A-TCREW.md에 적어 둡니다.
5. 보충 · 팁 (10분)
| 팁 | 설명 |
|---|---|
| 요청서 → 요구가 먼저 | 확인 방법(호출 순서 · 횟수 · 파일)이 있는 요구가 있어야 에이전트의 "완료"를 판단할 수 있음 |
| 설정과 코드를 나누기 | 지시문·순서는 YAML, 코드는 실행만 → 비개발자도 역할을 고침 |
| 다음 단계가 읽을 모양 | LLM 답을 사람이 아니라 프로그램이 읽는다면 모양을 정해 줌 |
| 정해진 횟수 | 고쳐 쓰기·재시도는 항상 상한 |
| 모르면 멈춤 | 읽지 못한 검토는 통과가 아님 |
| 기록 남기기 | 누가 무엇을 받아 무엇을 냈나 → 나중에 원인 찾기 |
6. 70일차 예고 (5분)
- 오늘: 역할 카드와 협업 흐름. 내일: 템플릿화와 모듈화 — 오늘의 작성자·검토자를 다른 공지(보안 안내, 교육 안내)에도 다시 쓰는 구조.
- 바이브 코딩:
tkit(템플릿 폴더를 골라 변수를 넣으면 새 n8n 워크플로우·프로젝트 뼈대를 만드는 TUI). 오늘my-work/*.json을 템플릿 재료로 씁니다. 지우지 마세요.
확인 (강사)
- 7교시 시작 전
OPENAI_API_KEY꺼내는 명령을 화면에 띄웠다 (키 값은 띄우지 않음). - 16:00 요청서 → SPEC 10분을 지켰다 (에이전트 없이), 16:10 VIBE-Q 비교 알림.
- 발표자 1~2명, 강사 정리 표, 강사 바이브 코딩 1개(시간 기록), 팁, 예고.
- 수업 뒤:
VIBE-A-TCREW.md의 "자주 빠뜨리는 것"·강사 바이브 코딩 시간을 채우고 학생 저장소에 VIBE-A만 올린다 (LAB-A는 올리지 않음).