트랙 B · 개발자

자동화 — 예약 · CI

검증된 절차만 자동화합니다. 검증 안 된 자동화는 오류의 자동화입니다.

  • 1자동화 방식 4가지를 구분한다
  • 2수동 검증 → 자동화 순서를 지킨다
  • 3/goal · /loop · 훅을 구분해 쓴다
읽는 시간 12분실습 20분선수 B-8
자세히 보기
이벤트트리거PR · 시간 · 명령실행Claude정해둔 지시 수행결과산출물코멘트 · 파일 · 알림검증된 절차만 자동화합니다 — 검증 안 된 자동화는 오류의 자동화입니다
개념한 문장

반복을 사람 손에서 떼어낸다

지금까지는 내가 시켜야 돌았습니다. 자동화는 정해둔 조건에서 스스로 돌게 만드는 단계입니다.

가장 중요한 원칙수동으로 검증된 절차만 자동화합니다. 검증되지 않은 자동화는 오류를 자동으로 퍼뜨립니다.
방식네 가지

무엇을 언제 쓰나

방식언제어디서 도나
GitHub ActionsPR마다 자동 리뷰·검사CI 러너
예약 실행매일·매주 정해진 시간클라우드 또는 내 PC
헤드리스 (-p)스크립트·배치에서 한 번내 PC · CI
파일 편집·커밋 시점세션 내부
루프세 방식

끝날 때까지 계속 돌리기

위의 네 가지는 이벤트가 오면 한 번 실행합니다. 그런데 "테스트가 다 통과할 때까지"처럼 여러 턴을 이어서 돌려야 하는 일도 있습니다. 지금 세션을 계속 돌게 하는 방법이 세 가지입니다.

다음 턴이 시작되는 때멈추는 때범위
/goal이전 턴이 끝나면모델이 조건 충족을 확인현재 세션만
/loop시간 간격이 지나면내가 멈추거나 Claude가 끝났다고 판단현재 세션만
Stop 훅이전 턴이 끝나면내가 정한 스크립트·프롬프트가 판단설정 범위 전체 세션
고르는 기준조건이 있으면 /goal, 기다려야 하면 /loop, 항상 적용할 규칙이면 훅.

/goal — 조건이 충족될 때까지

완료 조건을 걸어두면, 매 턴마다 작은 빠른 모델이 조건 충족을 판정합니다. 아니면 그 이유를 다음 턴의 지침으로 삼아 계속 일하고, 충족되면 목표가 자동 해제됩니다. 설정하는 순간 첫 턴이 바로 시작됩니다.

/goal test/auth의 모든 테스트가 통과하고 lint가 깨끗하다

/goal              ← 상태 보기 (조건 · 경과 · 턴 수 · 토큰 · 최근 판정 이유)
/goal clear        ← 조기 해제 (stop · off · reset · none · cancel 도 동일)

조건을 잘 쓰는 것이 전부입니다. 판정 모델은 대화에 이미 드러난 내용만 봅니다 — 직접 명령을 실행하거나 파일을 열지 않습니다. 그래서 Claude의 출력으로 증명될 수 있는 조건이어야 합니다.

조건에 넣을 것
측정 가능한 종료 상태테스트 결과 · 빌드 종료 코드 · 파일 수 · 빈 큐
증명 방법npm test가 0으로 종료 · git status가 깨끗
지켜야 할 제약다른 테스트 파일은 수정하지 않는다
한도또는 20턴 후 중단 — 무한정 도는 것을 막습니다
권한은 그대로목표를 걸어도 도구 승인은 여전히 물어봅니다. 무인으로 돌리려면 자동 승인 모드와 함께 써야 합니다. 조건은 최대 4,000자, /clear로 새 대화를 시작하면 목표도 사라집니다.

/loop — 간격을 두고 반복

배포 상태 확인처럼 기다려야 하는 일에 씁니다. 무엇을 주느냐에 따라 동작이 달라집니다.

입력동작
/loop 5m 배포 끝났는지 확인해줘정해진 간격으로 반복 (s · m · h · d)
/loop 배포 끝났는지 확인해줘Claude가 간격을 스스로 정함 — 바쁘면 짧게, 조용하면 길게
/loop내장 정비 프롬프트 — 미완 작업 이어서, PR 코멘트·CI 처리
중단다음 실행을 기다리는 동안 Esc를 누르면 멈춥니다. 반복 작업은 7일 후 자동 만료되고, 세션이 닫히면 실행되지 않습니다.

Stop 훅 — 매 턴 내 기준으로 검사

사실 /goal세션 범위의 Stop 훅을 감싼 것입니다. 같은 검사를 모든 세션에 걸고 싶으면 설정 파일에 직접 씁니다. "type": "prompt"는 모델이 판단하는 방식입니다.

{
  "hooks": {
    "Stop": [
      {
        "hooks": [
          {
            "type": "prompt",
            "prompt": "요청한 작업이 모두 끝났는지 확인해라. 아니면 {\"ok\": false, \"reason\": \"남은 일\"} 로 답해라."
          }
        ]
      }
    ]
  }
}

ok: falsereason이 Claude에게 전달되어 계속 일합니다. 판정에 파일을 읽거나 명령을 실행해야 하면 "type": "command"로 스크립트를 붙입니다 (B-7).

전제/goal은 훅 시스템을 쓰기 때문에 신뢰 승인된 작업 폴더에서만 동작하고, 훅을 전역으로 끈 설정이 있으면 쓸 수 없습니다. Claude Code v2.1.139 이상이 필요합니다.
실습20분

단계적으로 자동화하기

1

수동으로 3회 검증

먼저 같은 작업을 손으로 세 번 시켜 결과가 안정적인지 확인합니다.

2

절차서로 만든다

지시문과 완료 기준을 문서로 고정합니다.

3

헤드리스로 돌린다

대화 없이 한 번 실행해 같은 결과가 나오는지 봅니다.

4

예약·CI에 건다

여기까지 통과하면 자동 실행으로 옮깁니다.

claude -p "logs 폴더를 집계해서 output/일일리포트.md 를 만들어줘" \
  --tools "Read,Write,Bash" --allowedTools "Read,Write"
두 옵션은 다릅니다--tools쓸 수 있는 도구 자체를 제한하고, --allowedTools승인 없이 바로 실행할 도구를 정합니다. 위 예시는 세 도구만 허용하되, 그중 Bash는 실행 전에 확인을 받습니다.
헤드리스 주의대화 없이 도는 만큼 신뢰된 환경에서만 씁니다. 작업 폴더를 분리하고, --tools로 필요한 도구만 남기세요.

GitHub Actions — PR 자동 리뷰

/install-github-app

설치 후 PR 코멘트에 @claude를 멘션하면 자동 실행됩니다.

다음여기까지가 손으로 만드는 단계입니다. B-10에서는 이 구성을 플러그인으로 자동 생성합니다.
클로드코드 시작하기트랙 B · 개발자