수업 #9 — 자는 동안 고양이가 7번 울었다

Source: bbojjak-viewer.vercel.app/lessons/lesson-09 Type: article By: 뽀짝이 / 뽀짝이의 서재 (지피터스 AI스터디) Valid as of: 2026-04-28

Key Insight

하트비트(주기적 순찰)와 크론잡(정시 배달)은 모두 자동 실행이지만 설계 원칙이 다르다. 같은 작업을 양쪽에 넣으면 중복 발생. 하트비트는 시간을 모르고 기억이 짧다 — 시간 조건과 상태 기록(AGENTS.md)으로 보완한다.

핵심 Takeaway

  • 하트비트 = 주기적 순찰: 정해진 간격(1h)마다 HEARTBEAT.md 체크리스트 확인. 여러 점검을 한 번에. 그러나 시간 정확도 낮고, “시간을 모른다” — 명시적 시간 조건 없으면 새벽에도 발송 (출처: “하트비트” 섹션)
  • 크론잡 = 정시 배달: 정확한 시각에 정확한 작업 하나만 실행. isolated 세션으로 메인 대화와 분리. 5-field 크론 표현식 + 타임존 지원. 1회성 리마인더도 가능 (출처: “크론잡” 섹션)
  • 3가지 실전 사고 교훈: ①시간 조건 텍스트≠코드 강제 → 명시적 조건 필수 ②같은 작업 양쪽에 → 한 곳에서만 ③하트비트 기억 짧음(컴팩션) → AGENTS.md 절대 규칙으로 영구화 (출처: “사고 1·2·3” 섹션)
  • 선택 기준: 하트비트 = 있다/없다 모니터링·폴링. 크론잡 = 정확한 시각·외부 발송·1회성. 중복 배치 절대 금지 (출처: “뭘 언제 써야 해?” 섹션)
  • isolated 세션: 크론잡이 독립 세션에서 실행 → 메인 대화 맥락 오염 없음. 결과만 announce로 전달. 별도 모델(Sonnet)로 비용 최적화 가능 (출처: “크론잡” 섹션)

상세 요약

하트비트 한계 3가지

한계증상해결책
시간을 모름새벽에 아침 브리핑 발송HEARTBEAT.md에 명시적 시간 조건 추가
독립 세션 간 무지크론잡과 중복 발송한 곳에서만 담당 (책임 단일화)
기억이 짧음(컴팩션)오류 15회 반복 보고AGENTS.md 절대 규칙으로 3단계 영구화

크론잡 설정 구조

openclaw cron add \
  --name "<작업명>" \
  --cron "0 9 * * *"       # 5-field 크론 표현식
  --tz "Asia/Seoul"        # 타임존 명시 필수
  --session isolated       # 독립 세션
  --message "<에이전트 지시>"

isolated 옵션이 핵심: 크론잡 실행이 끝나면 세션이 닫히고 결과만 announce로 메인 채널에 전달. 메인 대화 히스토리에 크론잡 노이즈가 끼지 않는다.

현재 뽀짝이 자동화 아키텍처

하트비트 (1h 주기) → HEARTBEAT.md
  ├─ Slack #02-ai스터디강의 확인
  ├─ Linear 긴급 이슈 체크
  └─ 채널톡 CS 폴백 폴링

크론잡 (정확한 시각) → isolated 세션
  ├─ 05:00 — Zoom 설문 수집
  ├─ 06:00 — Zoom 참석자 트래킹
  ├─ 09:00 — 수강신청 인원 알림 이메일
  └─ 09:00 — 매출 브리핑

역할 분리: 하트비트 = 순찰(모니터링), 크론잡 = 정기 배달(발송)

연결되는 위키 페이지