Post

3. OpenClaw 실전편 - Heartbeat + Cron으로 아침 자동화 루틴 만들기

3. OpenClaw 실전편 - Heartbeat + Cron으로 아침 자동화 루틴 만들기

OpenClaw 실전편 #3

Heartbeat + Cron 미니멀 커버 정기 점검과 정시 실행의 역할 분리를 한눈에 정리한 다이어그램

앞선 1편/2편에서 OpenClaw가 무엇인지, 어떻게 설치하는지 봤다면 이제 진짜 실전이다.
이번 글 목표는 단순하다.

“매일 같은 작업을 내가 안 해도, 정해진 시간에 안정적으로 돌아가게 만들기.”

핵심 도구는 두 가지다.

  • Heartbeat: 정기 점검(상태 확인, 컨텍스트 기반)
  • Cron: 정시 실행(정확한 시각 기반)

둘을 같이 쓰면,

  • Heartbeat는 “상황을 읽고 준비”하고
  • Cron은 “정확히 실행”한다.

1) Heartbeat와 Cron, 정확히 뭐가 다를까?

Heartbeat (느슨한 주기, 문맥 중심)

Heartbeat는 “매 30분/1시간마다 체크”처럼 점검성 작업에 좋다.

예시:

  • 이메일/멘션/알림 변화 확인
  • 캘린더 24~48시간 일정 점검
  • 해야 할 작업 초안 생성

장점:

  • 여러 점검을 한 번에 묶어 API 호출 효율이 좋음
  • 최근 대화 맥락을 활용해 유연하게 판단 가능

주의:

  • 야간 시간(예: 23:00~08:00)에는 불필요한 알림 자제
  • 변화가 없으면 조용히 넘어가기

Cron (정확한 시간, 실행 중심)

Cron은 “매일 09:00”처럼 시각이 중요할 때 쓴다.

예시:

  • 오전 9시 블로그 포스팅 발행
  • 월요일 9시 주간 리포트 생성
  • 매일 23:00 로그 점검

장점:

  • 정확한 타이밍 보장
  • 작업 단위가 명확해서 실패 추적이 쉬움

2) 내가 추천하는 운영 패턴

실사용에서 가장 안정적인 패턴은 아래다.

  1. Heartbeat로 준비(전처리)
    • 아이디어, 링크, 이슈, 일정 변화 수집
    • 필요한 경우 초안/체크리스트 생성
  2. Cron으로 실행(본처리)
    • 08:50 최종 점검
    • 09:00 본 작업 실행(글 발행, 푸시, 보고)
  3. 실패 대비(후처리)
    • 1회 재시도
    • 실패 로그 기록
    • 즉시 텔레그램 알림

이렇게 나누면 “왜 실패했는지”가 명확해지고 복구가 빨라진다.


3) 블로그 자동 발행에 바로 적용하면?

예를 들어 매일 9시 포스팅 루틴을 만든다고 하면:

07:30 ~ 08:00 (준비)

  • 밤사이 이슈/자료 정리
  • 오늘 글의 주제/구조 생성
  • 본문 초안 작성

08:50 (검수)

  • 제목/태그/카테고리 점검
  • front matter 확인 (date, tags, categories)
  • 링크/오탈자/형식 점검

09:00 (실행)

  • _posts 파일 저장
  • git add/commit/push
  • 배포 확인 후 결과 알림

이 루틴을 Cron으로 고정해두면, 사람이 깜빡해도 시스템은 잊지 않는다.


4) 자동화 품질을 올리는 체크포인트

자동화는 “작동한다”와 “안정적으로 굴러간다” 사이에 큰 차이가 있다.
아래 5개를 맞추면 실패율이 크게 떨어진다.

1. 작업 이름 명확화

  • daily-blog-post-0900
  • morning-market-brief-0800

이름만 봐도 목적/시간이 드러나야 유지보수가 쉽다.

2. 입력/출력 경로 고정

  • 입력: 어떤 데이터/링크를 참고하는지
  • 출력: 어떤 파일/채널로 결과를 보낼지

3. 시간대(Timezone) 명시

  • Asia/Seoul 고정
  • 서버 시간과 사용자 시간을 섞지 않기

4. 실패 시 행동 정의

  • 재시도 횟수
  • 어디에 에러를 남길지
  • 누구에게 알릴지(텔레그램/디스코드)

5. “조용히 실패” 금지

실패했는데 아무도 모르면 자동화가 아니라 랜덤이다.
최소한 “성공/실패 한 줄 알림”은 반드시 남겨야 한다.


5) 자주 하는 실수

실수 A) Heartbeat로 정시 작업까지 처리하려고 함

  • Heartbeat는 점검에 강함
  • 정시 실행은 Cron이 맞음

실수 B) 한 작업에 역할을 다 때려 넣음

  • 수집/검수/실행을 분리해야 디버깅이 쉬움

실수 C) 초반부터 너무 복잡하게 설계

  • 먼저 최소 루틴 1개를 안정화
  • 그다음 단계적으로 확장

6) 마무리

Heartbeat는 상황 인지 엔진, Cron은 정시 실행 엔진이다.
둘을 함께 쓰면 자동화가 “똑똑하게” 그리고 “정확하게” 작동한다.

결국 자동화의 목적은 거창한 파이프라인이 아니라,

  • 놓치는 일을 줄이고
  • 반복 노동을 줄이고
  • 중요한 판단에 시간을 쓰는 것

이다.

다음 글에서는 실제 설정 파일/명령 기준으로
블로그 자동 발행 파이프라인(초안 → 검수 → 발행)을 더 구체적으로 다뤄보겠다.

This post is licensed under CC BY 4.0 by the author.