Files

8.4 KiB
Raw Permalink Blame History

7·8교시 · 바이브 코딩 (tlog)

  • 교시: 7교시 16:0016:50 (각자 만들기), 8교시 17:0017:50 (발표 10분 · 4단계 정리 35분 · 예고 5분)
  • 과제: VIBE-REQ-TLOG(요청서, 요청의 말 ①~⑫) → VIBE-Q-TLOG의 8단계: Doc/TODO.md → Doc/SPEC.md → Doc/IMP-PLAN.md(엔진 · TUI 단계) → 단계별 구현 → 확인 → uv tool install → 다른 폴더에서 사용 → 수업 뒤 VIBE-A-TLOG.md 공개
  • 요구 14개(R1~R14). 50분 안에는 엔진 1단계(R1 · R2 · R5 · R12 · R13) + 엔진 2단계(R3 · R4 · R7) + TUI 1단계(R11) + 설치(R14), 나머지(R6 단계 · 비용, R8 비교, R9 tretry 기록, R10 주간 보고)는 IMP-PLAN의 다음 단계로 집에서.
  • 72일차 tbench부터 76일차 tretry와 같은 흐름입니다: 사람의 말(요청서)을 확인할 수 있는 요구로 바꾸는 일을 학생이 먼저 하고, VIBE-Q는 그 다음 단계(비교 대상)로 씁니다. 에이전트에게는 처음 요청 한 번과 "확인했고 commit 했어. 다음 단계." 한 줄만 씁니다.
  • 오늘은 tlog: 실행 기록(파일 · 데이터 API)을 오늘 Lab의 정의 그대로 세어 n8n my-log-report와 같은 숫자를 내고, 실패 묶음 · 이상 시간대 · SLO 판정(종료 코드)을 보여 주고, TUI로 묶음을 골라 그 실행들을 보는 도구. 오늘 n8n 워크플로우로 한 일을 터미널 어디서나.
flowchart LR
  R["요청서 → TODO · SPEC ·<br/>IMP-PLAN 20분"] --> A["7교시<br/>엔진 1 · 2 · TUI · 설치 30분"] --> B["발표<br/>10분"] --> C["4단계 정리<br/>35분"] --> F["78일차 예고<br/>5분"]

생활 속 예 · 주머니 속 계산기와 장부. 오늘 가게 장부(n8n 보고서)를 만들었습니다. 사장님이 밤에 집에서 "어제 몇 시에 문제가 있었지?"를 보려면 가게 컴퓨터를 켜야 합니다. 같은 장부 쓰는 법으로 주머니 속 계산기에서도 같은 숫자가 나오면 어디서든 볼 수 있습니다. tlog는 그 계산기이고, 핵심은 "같은 숫자"입니다.

이 문서는 7 · 8교시 진행 문서입니다. 8교시의 정리 35분은 04-STAGE4-WRAPUP으로 합니다.

1. 7교시 · 각자 만들기 (50분)

시간 단계 확인
16:00~16:09 0 준비 · 1 요청서 → Doc/TODO.md (에이전트 없이) 할 일 ①~⑫ · 꼭 / 나중
16:09~16:15 2 Doc/SPEC.md → VIBE-Q 요구 표(R1~R14)와 비교 · commit 요구마다 확인 방법 (두 주 666 · 21 · 0.0315 · 1205 · 2537, 종료 코드)
16:15~16:20 3 Doc/IMP-PLAN.md (엔진 1~3단계 · TUI 1단계 · 설치) · commit 단계마다 체크리스트
16:20~16:44 4 구현: 엔진 1단계 → 엔진 2단계 → TUI 1단계, 막히면 5 문제 해결 팁 단계마다 pytest · 직접 실행 · commit
16:44~16:50 6 확인 · 7 uv tool install --editable . · 8 다른 폴더에서 tlog tlog summary --url http://localhost:8800 --from 2026-10-26 --to 2026-10-30 = my-log-report의 숫자
볼 것 막혔을 때 한마디
TODO · SPEC 없이 VIBE-Q를 통째로 붙여 넣었나 "요청서로 Doc/TODO.md부터. 666이 SPEC에 없으면 맞았는지 모릅니다"
IMP-PLAN이 한 덩어리 · 첫 요청에 14개 "엔진 1단계만. 단계마다 확인 · 체크 · commit"
숫자가 n8n과 다름 "어느 칸이 얼마로 다른지 붙여 주고, AGENTS.md 3절 정의 그대로 (끝날 포함 · ceil(p × n) · 4자리)"
두 주가 602 "끝날 포함" — 오늘 Lab 01 예제 1의 팀 보고서와 같은 실수
빈 기간에 오류 · null "0건이면 0"
세는 코드가 cli · 화면에 흩어짐 "metrics.py 한 곳, 나머지는 부르기만"
테스트가 진짜 API를 부름 "가짜 서버(http.server)와 두 주 사본으로"
slo가 늘 0 "크면 위반, 위반이면 종료 코드 4"
실행해 보지 않고 다음 요청 "에이전트가 됐다고 해도 직접 uv run tlog …; echo $?"

정답 예(R1~R14를 모두 넣은 tlog와 정답본 VIBE-A-TLOG.md)는 수업 뒤 공개됩니다.

2. 8교시 · 발표 (10분)

  • 1~2명. tlog summary --json과 my-log-report의 숫자가 같다는 것을 보여 줄 수 있는 사람, tlog slo의 종료 코드 4를 보여 줄 수 있는 사람을 먼저 고릅니다.
  • 3분 발표 · 2분 질문: 내 SPEC과 VIBE-Q가 달랐던 곳 / IMP-PLAN을 어떻게 나눴나 / 처음 요청 · 고쳐 달라는 요청문 / 에이전트가 틀린 곳(숫자가 달랐던 칸) / 시연.

3. 강사 정리 (8교시 4단계 정리 안에서)

n8n (오늘 Lab) tlog
읽기 Get logs → POST /logs/query --url (같은 API) · --file (같은 규칙으로 거름) (R1)
지표 my-log-report Code 노드 metrics.summary — 같은 정의, 같은 반올림 (R2 · R5)
문제 찾기 failures · unanswered_topics · anomalies · repeat_topics tlog problems (R3 · R4)
단계 · 비용 Lab 01 과제 2 steps · cost_usd (R6)
SLO Lab 03 예제 2 · 과제 2 (알림) tlog slo · 종료 코드 4 (R7)
주간 보고 my-weekly (+ LLM 요약) tlog weekly (LLM 없음) (R10)
다른 기록 — 76일차 tretry 기록 (R9)
  • 풀이 거리: 강사 본은 두 주 · 둘째 주 · 10/26 · 빈 기간 네 번 모두 my-log-report와 18칸 중 다른 칸 0개였습니다. 반올림을 Python round로 했다면 정확히 반에 걸린 값에서 달라질 수 있었고, 끝날을 빼면 602가 나옵니다. "같은 정의를 두 곳에 쓰면 반드시 어긋난다 — 그래서 n8n 안에서는 다시 부르고, 밖에서는 테스트로 같은 숫자를 확인한다."

4. 강사 바이브 코딩 (시간이 남으면 · 수업 뒤, 15분)

주제 요청문 요지 보여 줄 것
n8n 실행 기록 읽기 "n8n 공개 API /api/v1/executions에서 실행 기록을 가져와 같은 모양으로 바꾸는 읽기 층을 하나 더. 키는 환경 변수 N8N_API_KEY" 읽는 층만 늘고 세는 곳은 그대로
기준 기간 이상 탐지 "anomalies의 평소를 '지난주 같은 시간'으로 바꾸는 --baseline last-week 옵션" Lab 02 예제 3의 다른 비교 기준
cron SLO "tlog slo 를 매일 03:00에, 종료 코드 4면 76일차 알림 API에 high 알림" n8n 밖의 SLO 알림 (Lab 03 과제 2와 같은 모양)

걸린 시간과 결과를 Last3Mon/77/VIBE-A-TLOG.md에 적어 둡니다.

5. 보충 · 팁 (읽을거리, 4단계 정리 7절과 함께)

팁 설명
요청서 → 요구가 먼저 확인 방법(기대 숫자 · 종료 코드 · JSON 칸)이 있는 요구가 있어야 에이전트의 "완료"를 판단할 수 있음
기대 숫자는 이미 있다 오늘 cases/*.json의 숫자를 SPEC과 테스트에 그대로
정의는 한 곳 세는 함수는 metrics.py에만, 화면 · JSON · SLO는 부르기만
읽는 층을 나눈다 기록 모양이 늘어도(tretry · n8n API) 세는 곳은 그대로
반올림도 정의 다른 언어와 숫자를 맞출 때는 반올림 방법까지
종료 코드로 말한다 0 · 1 · 2 · 4 — cron · CI가 다음 일을 정함
단계마다 git commit 에이전트가 망가뜨려도 돌아갈 곳

6. 78일차 예고 (5분)

  • 오늘: 실행 기록을 정의대로 세고 · 문제를 찾고 · 고친 뒤 다시 쟀습니다. 다음 수업(78일차, 11/3): 데이터 품질 검증 자동화 및 품질 관리 Workflow — 오늘은 기록을 "믿고" 셌습니다. 내일은 들어오는 데이터 자체가 맞는지(빠진 칸 · 이상한 값 · 중복)를 규칙으로 검사하고 품질 관문을 세웁니다.
  • 바이브 코딩: 오늘 tlog는 지우지 마세요. 79일차 tops에서 씁니다.

확인 (강사)

  • 16:00 요청서 → TODO(에이전트 없이) → SPEC → IMP-PLAN 20분을 지켰다, 16:20부터 엔진 1단계.
  • 7교시 시작 전 n8n에 my-log-report(Lab 03 예제 2까지)가 게시돼 있어 숫자 비교를 할 수 있다.
  • 수업 뒤: 요청이 있을 때 학생 저장소에 정답(LAB-A · answers/ · VIBE-A · tlog/)을 올린다.
  • 발표자 1~2명, 강사 정리 표, 팁, 예고.
  • 수업이 끝날 때 학생들의 데이터 API가 처음 상태인지 (ops --reset, doctor).