Claude Code에서 프롬프트 정기 실행! /loop 명령어와 스케줄 태스크 사용법

2026-03-09
9분 만에 읽기
업데이트: 2026-03-11
hf_20260310_230859_fd560b88-bcd9-443a-be2e-239b0fcfeabb.webp

목차

배포를 실행한 후 터미널을 지켜보며 완료를 기다린다. CI가 통과할 때까지 몇 번이고 브라우저를 새로고침한다. PR에 리뷰 코멘트가 달렸는지 신경 쓰여 집중력이 흐트러진다…. 개발 중에 이런 '조금 신경 쓰이지만 손을 멈출 정도는 아닌 확인 작업'은 은근히 스트레스죠.

Claude Code의 /loop 명령어와 스케줄 태스크 기능을 사용하면, 이러한 확인 작업을 Claude에게 맡겨둘 수 있습니다. 주말에 Boris Cherry 님의 공지에서도 소개되었던 이 기능에 대해, 공식 문서의 내용을 바탕으로 실제 사용 시 알아두어야 할 포인트를 정리해 보겠습니다.

우선 실행해 보기

사용법은 매우 간단합니다. /loop 뒤에 간격과 프롬프트를 적기만 하면 됩니다.

/loop 5m 배포가 완료되었는지 확인하고 결과를 알려줘

이제 '5분마다 배포 완료를 확인하고 보고하는' 태스크가 시작됩니다. Claude가 내부적으로 cron 작업으로 등록하고, 작업 ID와 실행 간격을 반환해 줍니다.

간격은 맨 앞이나 맨 뒤 어디에 써도 괜찮으며, 생략하면 기본값인 10분이 적용됩니다.

/loop 30m 빌드 상태를 확인해줘
/loop 빌드 상태를 확인해줘 every 2 hours
/loop 빌드 상태를 확인해줘

단위는 s(초), m(분), h(시간), d(일)입니다. 내부적으로 cron 식으로 변환되므로, 초 단위는 가장 가까운 분 단위로 올림되고, 7m처럼 나누어떨어지지 않는 값은 가까운 깔끔한 간격으로 조정됩니다. 실제로 몇 분 간격으로 설정되었는지는 Claude가 알려주므로 세세한 부분은 신경 쓰지 않아도 됩니다.

이미 스킬이나 명령어로 정리해 둔 워크플로가 있다면, 그것을 루프에 올릴 수도 있습니다.

/loop 20m /review-pr 1234

20분마다 PR 리뷰를 실행해서 새로운 커밋이 추가될 때마다 피드백을 받는 식의 활용도 가능합니다.

"나중에 알려줘"도 가능

반복이 아닌 일회성 리마인더라면 /loop를 사용하지 않고 자연어로 직접 요청할 수 있습니다.

3시가 되면 릴리스 브랜치를 push하는 것을 리마인드해줘
45분 후에 통합 테스트가 통과했는지 확인해줘

Claude가 시간을 cron 식으로 변환해 단발성 태스크로 등록하고, 실행 후에는 자동으로 삭제합니다. 개발에 몰두하다 보면 잊기 쉬운 작업을 가볍게 걸어둘 수 있어 은근히 도움이 됩니다.

태스크 확인 및 취소

"지금 어떤 태스크가 돌아가고 있지?"라는 생각이 들면 이 또한 자연어로 물어볼 수 있습니다.

예약된 태스크 목록을 보여줘
배포 체크 작업을 취소해줘

뒷단에서는 CronCreate(등록), CronList(목록), CronDelete(삭제)라는 세 가지 도구가 작동하고 있습니다. 각 태스크에는 8자리의 ID가 부여되며, 한 세션당 최대 50개까지 등록할 수 있습니다. 하지만 일상적인 사용에서 50개에 도달할 일은 거의 없겠죠.

사용 전에 알아두어야 할 특성

편리한 기능이지만 생각대로 움직이지 않는 경우도 있을 수 있습니다. 작동 원리를 조금 알아두면 당황하지 않고 대처할 수 있습니다.

태스크는 'Claude가 한가할 때' 실행된다

스케줄 태스크는 사용자와의 상호작용 사이에 실행됩니다. Claude가 응답을 생성하는 도중에는 끼어들지 않습니다. 긴 처리 과정 중에 예정 시간이 되더라도, 해당 처리가 끝날 때까지 기다렸다가 실행됩니다.

즉, '정확히 5분마다'가 아니라 '대략 5분마다' 정도의 느낌입니다. 초 단위의 정밀도가 필요한 용도에는 적합하지 않습니다.

실행 타이밍에 미세한 차이가 있다

API 동시 접속을 피하기 위해 실행 시각에는 작은 오프셋(지터)이 자동으로 추가됩니다.

  • 반복 태스크: 주기의 최대 10%(상한 15분) 지연
  • 단발 태스크: 매시 0분이나 30분으로 예약한 경우, 최대 90초 일찍 실행될 수 있음

1시간 간격의 작업이라면 :00에서 :06 사이 어딘가에서 실행된다고 생각하면 됩니다. 오프셋은 태스크 ID에 따라 결정되므로, 같은 태스크라면 매번 동일한 차이가 발생합니다.

반복 태스크는 3일 뒤에 자동 소멸한다

설정해 둔 루프가 잊힌 채 끝없이 돌아가는 것을 방지하기 위해, 반복 태스크에는 3일간의 유효 기간이 있습니다. 마지막으로 한 번 더 실행된 후 자동으로 삭제되는 구조입니다.

3일 이상 실행하고 싶다면 만료 전에 취소 후 재생성하거나, 후술할 다른 방법을 사용해야 합니다.

알림 대상은 세션 내부뿐

이 부분은 주의가 필요합니다. 리마인더나 태스크 결과는 Claude Code 세션 내에 메시지로 표시될 뿐입니다. Slack이나 이메일, LINE 등 외부 서비스로는 알림이 가지 않습니다.

"리마인드해줘"라고 부탁해도 Claude Code 창을 보고 있지 않으면 알아차릴 수 없다는 뜻입니다. 외부에 알림을 보내고 싶다면 프롬프트 내에서 쉘 명령어 나 API 호출을 조합하는 등 직접 장치를 마련해야 합니다.

스케줄 태스크의 한계

세션 스코프의 구조이므로 구조적인 제약이 있습니다.

  • 세션 종료 시 사라짐 — Claude Code를 재시작하면 태스크는 모두 초기화됩니다. 터미널을 닫거나 세션이 종료되어도 마찬가지입니다.
  • 누락된 실행에 대한 보완은 없음 — Claude가 장시간 처리 중이라 태스크 예정 시간을 지나친 경우, 유휴 상태가 되었을 때 한 번만 실행됩니다. 지나간 횟수만큼 모두 실행되는 것이 아닙니다.

즉, 'Claude Code를 열고 작업하는 동안의 소소한 자동화'가 주된 활용 범위입니다. 사람이 없어도 계속 돌아가야 하는 경우에는 GitHub Actionsschedule 트리거 나 Desktop scheduled tasks를 사용하는 것이 적절합니다.

반대로 말하면, 세션 스코프이기 때문에 '부담 없이 시도해 볼 수 있다'는 장점도 있습니다. 설정을 잘못했더라도 세션을 종료하면 깔끔하게 사라지므로, cron을 직접 건드릴 때처럼 '삭제하는 걸 잊으면 어떡하지' 하는 압박감이 없습니다.

환경 변수로 비활성화 가능

팀에서 사용 중인데 보안 정책상 cron을 허용하고 싶지 않은 경우, 환경 변수 CLAUDE_CODE_DISABLE_CRON=1을 설정하면 스케줄러 전체를 비활성화할 수 있습니다.

실제로 활용 가능한 상황

지금까지의 내용을 바탕으로 개발에서 활용할 만한 패턴을 몇 가지 꼽아보겠습니다.

배포 후 헬스 체크

/loop 5m 스테이징 환경 배포가 정상인지 확인하고, 에러가 있으면 보고해줘

배포한 뒤 다른 작업으로 넘어가면서, 문제가 생기면 알림을 받을 수 있습니다.

CI 완료 대기

30분 후에 CI 파이프라인이 통과했는지 확인하고 결과를 요약해줘

CI가 오래 걸리는 프로젝트에서는 완료 예상 시각 즈음에 단발성으로 걸어두면 편리합니다.

릴리스 전 누락 방지

5시가 되면 릴리스 전에 changelog를 업데이트하는 것을 리마인드해줘

집중하다 보면 놓치기 쉬운 루틴 작업의 리마인더로 활용합니다.

요약

Claude Code의 스케줄 태스크는 '정기적으로 무언가를 확인하기', '나중에 기억하기'와 같이 개발 중의 작은 번거로움을 간편하게 해소해 주는 기능입니다.

  • /loop로 프롬프트 반복 예약
  • 자연어로 단발성 리마인더 설정 가능
  • 세션 스코프이므로 부담 없이 사용하고 종료 시 자동 정리
  • 반복 태스크는 3일 후 자동 만료
  • 알림은 세션 내에서만 제공. 외부 알림은 별도 장치 필요
  • 영구적인 스케줄링이 필요하다면 GitHub Actions나 Desktop scheduled tasks를 활용

cron 식의 상세한 작성법이나 내부 도구 사양에 대해서는 공식 문서에 잘 나와 있으니, 더 자세히 알고 싶은 분들은 그쪽도 참고해 보시기 바랍니다.

우선 /loop 10m 빌드 상태를 확인해줘 같은 가벼운 것부터 시작해 보면 이 기능의 편리함을 실감할 수 있을 것입니다.

참고 링크

이 기사 공유하기

관련 기사