02-구조
02 — Dispatch 구조
섹션 제목: “02 — Dispatch 구조”구성 요소
섹션 제목: “구성 요소”[트리거] Slack / Jira / Webhook / CRON ↓[작업 정의] 한 번 작성한 템플릿(Template) + 인자 ↓[큐] 비동기 작업 큐 (Anthropic 또는 자체 호스팅) ↓[런너] 격리 환경(컨테이너, 디스포저블 VM) ↓[결과 채널] Slack DM / PR 코멘트 / 티켓 코멘트 / 이메일작업 정의의 4요소
섹션 제목: “작업 정의의 4요소”- 목적(Goal) — “이 PR의 회귀 위험을 검토하라”
- 입력(Input) — PR 번호, 코드베이스 경로
- 종료 기준(Done) — “5줄 이내 요약 + 위험도 (낮음/중간/높음)”
- 회수 채널(Channel) — “PR 코멘트로”
이 4요소가 없으면 Dispatch가 아니라 그냥 “어딘가로 사라진 작업”입니다.
격리(Isolation) 원칙
섹션 제목: “격리(Isolation) 원칙”- 사용자 데스크톱이 아닌 격리된 환경에서 도는 게 핵심
- 전형: 디스포저블 VM, 컨테이너, GitHub Actions 러너
- 사고가 나도 사용자 파일·자격 증명에 닿지 않음
Shankar의 패턴: “Hobby projects run in disposable VMs. … Set context, delegate, walk away.” — 취미 프로젝트는 일회용 VM에서 돌린다. 맥락 주고, 위임하고, 자리 떠난다.
결과 회수의 형태
섹션 제목: “결과 회수의 형태”- PR/티켓 코멘트 — 가장 흔하고 가장 안전. 사람 검토 자연스러움.
- Slack DM — 본인만 받음, 빠르지만 휘발성
- 이메일 — 감사 추적에 좋음
- 대시보드 — 여러 작업 한눈에
실패 처리
섹션 제목: “실패 처리”비동기는 실패를 잘 보여 줘야 의미가 있습니다.
- 실패 시 누가, 무엇이, 왜가 1분 안에 보여야 함
- 같은 작업이 자동 재시도되면서 사고가 누적되지 않게 재시도 상한을 둘 것