업무 시간에 OpenClaw Ultra로 자동화 프로세스를 돌리고 있다면, 자주 겪게 되는 아주 짜증 나는 상황이 있습니다. 작업이 중간에 갑자기 실패하고, 백엔드(backend)에는 온갖 에러 메시지가 쌓이기 시작하며, 심지어 전체 프로세스가 통째로 멈춰버리기도 합니다. 그리고 하필이면, 그것이 정상적으로 동작해야 가장 필요한 순간에 이런 일이 생깁니다. 많은 사람들이 처음에는 쿼터(quota)가 부족해서 그런 거라고 생각하기 쉽지만, 실제로는 대부분 리소스 부족 문제가 아니라 요청이 너무 한 시점에 몰렸거나, 타이밍이 딱 제한(limit)에 걸린 경우가 많습니다.
OpenClaw의 트래픽 제어는 전통적인 방식처럼 “매일 새벽에 한 번 리셋”하는 형태가 아닙니다. 대신 이른바 “롤링 윈도우 제한(rolling window limit)”을 사용합니다. 간단히 말해, 오늘 총 요청을 얼마나 썼는지를 단순히 보는 게 아니라, 최근 일정 기간 동안의 사용량을 계속해서 계산합니다. 이 기간은 시스템이 동적으로 관리하는 구간이며, 고정된 어느 특정 정각에 리셋되는 시간이 아닙니다. 따라서 전체 사용량이 겉보기에는 크지 않아 보여도, 짧은 시간 안에 요청을 대량으로 집중 발송하면 여전히 쉽게 rate limit(제한) 메커니즘을 트리거할 수 있습니다.
비교적 안정적인 방법은 사실 매우 직관적입니다. 상대적으로 무겁거나 실행 비용이 높은 작업은 밤이나 새벽 2~3시쯤에 배치해서 실행하는 것입니다. 이 시간대는 보통 시스템 전반의 부하가 낮고, 이전에 누적됐던 요청도 시간이 지나면서 롤링 계산 창(rolling calculation window)에서 서서히 빠져나가기 때문에, 아침에 출근해서 업무를 시작할 때 전체 쿼터 상태가 상대적으로 훨씬 깨끗해집니다. 결과적으로 낮 동안의 프로세스도 훨씬 안정적으로 돌아가게 됩니다.
이 가이드는 실무 관점에서, Cron 스케줄링을 통해 OpenClaw Ultra의 야간 작업을 단계적으로 트리거하는 방법을 안내합니다. 또한 스케줄링 시점을 어떻게 고르는 것이 합리적인지, 그리고 기본적인 에러 처리와 재시도(retry) 메커니즘을 어떻게 보완해야 전체 자동화 프로세스가 야간에 안정적으로 동작하고, 문제를 덜 겪는지까지 다룰 예정입니다.
OpenClaw의 Cron 정기 작업은 무엇인가요?
여기서 말하는 “정기 작업”이란, 자동화 프로세스의 실행 시간을 설정해 두고 지정된 시간에 시스템이 자동으로 실행하도록 만드는 것을 뜻합니다. 즉, 사람이 직접 수동으로 트리거할 필요가 없습니다.
“Cron”은 원래 Linux 시스템에서 스케줄링을 하기 위해 쓰이던 도구로, 고정된 형식으로 “언제 무엇을 실행할지”를 설명하는 데 주로 사용됩니다. OpenClaw도 스케줄링 파트에서는 이 방식 그대로 가져다 썼습니다. 다만 중요한 차이점이 있습니다. 전통적인 Cron은 고정된 시스템 명령(대개 Shell 명령이나 스크립트)을 그대로 실행하기 때문에, 모든 흐름을 사전에 작성해 두어야 합니다. 반면 OpenClaw의 Cron은 작업 목표를 자연어(natural language)로 설명하고, 시스템이 이를 해석해 해당 동작을 분해하고 실행합니다.
예를 들어:
전통 Cron:
0 2 * * * /usr/bin/python3 /home/user/daily_report.py >> /home/user/Documents/reports/daily_report.log
OpenClaw Cron 排程 설정 구성 중:
- Cron: 0 2 * * *
- 작업 내용: 매일 새벽에 어제의 판매 데이터를 정리하고 리포트를 생성한 뒤, 결과를 Excel 파일과 실행 기록으로 출력합니다.
- 출력 규칙: 모든 출력 파일은 로컬 디스크 /home/user/Documents/reports/daily/ 폴더에 저장해야 하며, 파일명은 날짜로 정해 xlsx 파일로 출력합니다. 또한 실행 log와 오류 기록도 동일한 폴더에 함께 보관합니다.
전통적인 방식은 사용자가 직접 스크립트, 데이터 처리 로직, 출력 형식 등을 준비해야 합니다. 반면 OpenClaw Ultra의 방식은 “목표(goal)”를 시스템에 넘기면, 시스템이 이를 스스로 분해해서 조회 → 내용 정리 → 리포트 생성 → 전송 같은 단계들을 진행합니다.
OpenClaw Ultra에서 정기 작업이 동작하는 방식은 주로 “스케줄 설정”으로 구성됩니다. 즉, 같은 작업(task) 안에서 Cron 트리거 시간과 작업 내용을 동시에 설정하면, 지정된 시간이 되었을 때 시스템이 작업 내용에 적힌 작업 흐름을 자동으로 실행합니다. 실행 과정에서의 결과, 로그, 오류 메시지는 시스템이 자동으로 기록하므로 사람이 지속적으로 모니터링할 필요가 없습니다.
이것이 정기 작업의 가장 큰 장점이기도 합니다. 프로세스가 자동으로 끝까지 실행되며, 사람이 개입할 필요가 없습니다.
다만 실무에서는 한 가지 주의할 점이 있습니다. 이런 작업들은 흔히 새벽에 실행되는데, 보통 사람이 지켜보지 않습니다. 그래서 중간에 문제가 생기면 첫 번째 발견 시점이 늦어질 가능성이 큽니다. 따라서 야간 자동화를 설계할 때는 반드시 기본적인 error handling 또는 notification(알림) 메커니즘을 함께 구성해, 작업이 “조용히(silently) 실패”해도 아무도 모르는 상황을 피하는 것을 권장합니다.
Cron 표현식은 어떻게 읽나요?
Cron 표현식은 사실 “어떤 시간에 작업을 실행할지”를 고정된 형식의 문자열로 설명하는 것입니다. 프로그래밍을 할 필요가 없습니다.
자주 쓰는 형식은 아래와 같습니다:
- 분( Minutes )
- 시( Hours )
- 날짜( Date )
- 월( Month )
- 요일( Weekday )
예를 들어: 0 2 * * *
이 의미는 매일 새벽 2시에 한 번 실행하라는 뜻입니다.
Cron 작성 방법
0 2 * * *: 매일 새벽 2시에 실행0 0 * * *: 매일 자정 0시에 실행30 1 * * 1-5: 월요일부터 금요일까지 새벽 1:30에 실행0 3 * * 0: 매주 일요일 새벽 3시에 실행*/30 1-4 * * *: 새벽 1시부터 4시 사이, 30분마다 실행
야간 배치 작업(예: 리포트, 데이터 동기화, 데이터 정리)을 한다면 보통 새벽 2시~3시 사이를 선택하는 것을 권장합니다. 이 시간대는 밤에 시스템이 비교적 덜 바쁘기 때문에 잘 막히지 않고, 전날 낮 동안의 요청도 이미 천천히 소화되고 있으며, 아침 출근 피크(자료 조회, 리포트 요청 등)와 겹칠 가능성이 낮기 때문입니다.
OpenClaw Cron 관리 페이지에서 Telegram 즉시 알림 설정
OpenClaw Ultra에서는 커맨드 라인(command line)으로 Cron 작업을 새로 추가할 필요가 없습니다. 대신 “정기 작업(Cron Jobs)” 관리 페이지에서 설정을 완료합니다. Cron 작업이 이미 Telegram 채널에 연결되어 있다면, 실행 결과가 자동으로 지정한 채팅 화면으로 전송됩니다.
예를 들어, “정기 작업” 페이지에 아래처럼 입력합니다.
- 스케줄 시간:
0 3 * * * - 작업 내용: 지난 24시간 동안의 AI(artificial intelligence) 관련 중요 뉴스를 검색하고, 5줄의 중국어 요약(각 줄 50자 이내)을 작성한 뒤, 매일 브리핑(daily briefing) 형식으로 출력
- 출력 방식: 요약 통보
- 알림 채널: Telegram
- 수신 대상: 본인의 Telegram chat ID
설정이 완료되면 매일 오전 3시에 OpenClaw Ultra가 자동으로 작업을 실행하고, AI 산업 뉴스 요약을 Telegram으로 바로 푸시합니다.
야간 자동화에 아무도 모니터링하지 않을 때, 에러는 어떻게 처리하나?
야간 Cron 작업의 가장 큰 문제는 “에러가 안 나느냐”가 아니라, 에러가 발생했을 때 즉시 발견되지 않는다는 점입니다. 그래서 보통은 다음 날 아침에야 “이미 일정 시간 동안 전체 프로세스가 멈춰 있었을 수 있다”는 걸 알게 됩니다.
따라서 핵심은 “실수 없이 진행”이 아니라, “에러가 나도 시스템이 버텨서(support) 더 큰 장애로 번지지 않게” 만드는 것입니다.
1. 작업은 다시 실행될 수 있어야 하지만, 데이터는 중복되면 안 됨
야간 작업은 실패하는 게 정상이기 때문에, 반드시 재실행(re-run) 가능해야 합니다. 다만 다음을 반드시 지켜야 합니다.
- 이미 작성한 데이터는 다시 추가하지 말 것
추가(create)대신업데이트(update)로 처리할 것- 각 데이터마다 상태(예: 완료됨) 를 갖고 있을 것
이를 위해 OpenClaw Ultra의 해당 “작업 내용”에 아래 설명을 보강해야 합니다.
- “리포트가 이미 존재하면 내용을 업데이트하고, 새 파일을 새로 만들지 말 것. 모든 데이터는 날짜를 유일 식별자(unique identifier) 로 사용해야 함.”
2. 실패하면 무작정 계속 재시도하지 말고, 천천히 재시도
일부 오류는 단지 일시적인 경우입니다. 예를 들어 API가 불안정할 수 있습니다. 그래서 사용자는 OpenClaw Ultra가 계속 연속으로 바로 작업을 반복하지 않도록 해야 합니다. 연속 빠른 재시도는 오히려 작업이 막히거나 제한에 걸리기 쉽습니다.
올바른 방법:
- 실패 후 잠시 기다렸다가 재시도
- 재시도할 때마다 간격을 점점 더 길게
- 최대 재시도 횟수를 설정(예: 3~5회)
OpenClaw Ultra의 해당 “작업 내용”에 아래 설명을 보강해야 합니다.
- “API 또는 데이터 소스가 실패하면 최대 3번까지 재시도하고, 매번 재시도 간격을 점진적으로 연장하여 연속적인 빠른 재시도를 피할 것.”
또한 “timeout” 설정은 보통 300~600을 권장합니다. 이 설정을 기준으로 OpenClaw Ultra는 작업이 5~10분 정도 완료되지 않으면 이상 상태로 판단합니다.
3. 에러가 나면 반드시 알리되, “진짜로 문제 있을 때만” 알림
야간 작업에서 가장 무서운 것은 조용히 실패하는 것입니다. 그래서 알림은 다음처럼 설계하는 걸 권장합니다.
- 실패했을 때만 알림
- 재시도를 모두 소진한 뒤에 알림
- 너무 오래 멈춰 있어도 알림
OpenClaw Ultra의 해당 “작업 내용”에 아래 설명을 보강해야 합니다.
- “작업 실패 또는 재시도 소진 시, 즉시 에러 요약(상세가 아닌 요약) 알림을 전송할 것.”
4. 반드시 실행 기록을 남겨서, 아침에 확인할 수 있게 하기
- 언제 시작했는지 / 언제 끝났는지
- 성공했는지 여부
- 처리한 데이터의 양
- 오류가 있었는지 여부
OpenClaw Ultra에 해당하는 “작업 내용”에는 다음 설명을 보강해야 합니다.
“이 작업은 처리 데이터 수, 실행 시간, 오류 정보를 포함한 완전한 실행 기록을 보관해야 합니다.”
따라서 야간 Cron 작업은 오류를 피하는 것이 핵심이 아니라, 다음을 만족해야 안정적입니다: 재실행 가능, 중복 없음, 재시도 수행, 알림 전송, 확인 가능(기록을 조회할 수 있음).
OpenClaw 한 번 클릭 배포
OpenClaw Ultra는 한 번 클릭 배포 기능을 지원합니다. 의존성 설치나 실행 환경 추가 설정을 수동으로 할 필요가 없고, 간단한 일회성 배포 과정을 통해 시스템 초기화와 빠른 시작을 완료할 수 있습니다.

시작하려면 다운로드 페이지로 바로 이동하면 됩니다. https://openclaw.aiondesktop.com/?lang=ko