Claude Code /goal vs /loop

seomoyang·2026년 8월 13일

기술공부

목록 보기
10/12

Claude Code에는 세션을 여러 턴에 걸쳐 계속 작동시키는 두 가지 핵심 명령어가 있다. 언뜻 비슷해 보이지만, 목적과 작동 방식이 완전히 다른 /loop와 /goal의 차이점을 정리하고 이를 결합한 테스트 결과를 공유한다.


1. /loop vs /goal 비교

두 기능은 '무엇을 기준으로' 반복을 제어하는지에 따라 명확히 구분된다.

구분/loop (아우터 루프)/goal (이너 루프)
작동 기준시간(Schedule) — 정해진 간격마다 트리거조건(Condition) — 완료 조건이 충족될 때까지 자율 반복
비유크론 잡(Cron Job): "N분마다 이 프롬프트를 실행해라"해결사: "이 문제가 완벽히 해결될 때까지 멈추지 마라"
다음 턴 시작설정한 시간 간격이 경과했을 때이전 턴의 작업이 끝난 즉시
종료 시점사용자가 중지하거나, 작업할 내용이 없을 때평가 모델이 완료 조건 충족을 확인했을 때
판단 주체작업을 수행하는 Claude 자신평가자(기본 Haiku 등 별도의 작은 모델)

즉, /loop는 "얼마나 자주 확인할지"를 결정하고, /goal은 "언제 멈출지"를 결정한다.

특히 /goal의 핵심은 실행 모델과 평가 모델의 분리에 있다. AI가 스스로 "다 했다"고 착각하는 것을 막기 위해, 별도의 독립된 평가 모델(감독관)이 대화 기록을 검토하여 목표 달성 여부를 판정한다.


2. 테스트 케이스

케이스 1: /goal 단독 실행 (자율 문제 해결)

코드에 의도적인 버그를 심어두고 /goal 명령이 어떻게 작동하는지 테스트했다.

  • 상황: fizzbuzz.py에 3과 5의 공배수(15의 배수)일 때 "FizzBuzz"가 아닌 "Fizz"만 반환하는 버그를 심어두었다. test_fizzbuzz.py를 돌리면 1개의 테스트가 실패하는 상태다.
  • 입력 프롬프트:

    /goal 이 폴더의 pytest 테스트가 모두 통과할 때까지

  • 결과:
    Claude가 스스로 코드를 분석해 원인(3의 배수 분기가 15의 배수 케이스보다 먼저 걸림)을 파악했다. 이후 if i % 15 == 0 분기를 맨 앞에 추가하여 코드를 수정했다. 별도로 "테스트를 돌려봐"라고 지시하지 않았음에도, 완료 조건이 "pytest 통과"였기 때문에 스스로 코드를 고치고, 테스트를 실행하고, 에러를 확인하는 과정을 자율적으로 반복하여 최종적으로 모든 테스트를 통과시켰다.

케이스 2: /loop + /goal 결합

두 기능을 결합하여, 평소에는 대기하다가 업무가 생기면 스스로 처리하는 자동화 파이프라인을 구축했다.

  • 상황: tasks.md 파일에 할 일 목록을 마크다운 체크박스 형태로 적어 두었다.
  • 입력 프롬프트:

    /loop 1m /goal tasks.md에 있는 미완료 항목(- [ ])을 모두 처리하고, 처리한 항목은 - [x]로 체크해줘

  • 결과:
    첫 1분(Tick)이 지나자마자 즉시 파일 내용을 읽고 - [ ] hello.py 파일을 만들고, 실행하면 "안녕, playground!"를 출력하게 한다라는 미완료 항목을 발견했다. 즉시 hello.py를 생성하는 코딩 작업을 끝낸 뒤, 마크다운 파일의 체크박스를 - [x]로 변경했다. 이후 할 일을 모두 마치자 /goal은 달성 상태로 전환되었고, 다음 1분 주기가 돌아올 때마다 새로운 할 일이 추가되었는지만 조용히 모니터링하며 대기했다.

3. 배운 점 및 시사점

  • 검증 가능한 목표 설정이 필수: /goal의 평가 모델은 독립적으로 코드를 실행하거나 파일을 열어보지 못한다. 오직 대화 기록(Context)에 남은 텍스트만 보고 목표 달성 여부를 판단한다. 따라서 "코드를 예쁘게 고쳐줘" 같은 모호한 지시보다는, "pytest 실행 결과가 에러 없이 0으로 떨어질 때까지"처럼 기계적으로 검증 가능하고 대화창에 결과가 출력되는 조건을 부여해야 한다.
  • 권한 승인과 자동화 모드: /goal 명령어 자체는 파일 수정이나 명령어 실행 권한 모드를 변경하지 않는다. 기본 모드에서는 도구를 호출할 때마다 매번 사용자의 Enter 승인이 필요했다. 완벽한 '무인 실행'을 원한다면 자동 모드(Auto mode)와 결합해야 하지만, 그만큼 사고 위험도 커지므로 초기에는 기본 모드로 지켜보는 것이 안전하다.
  • 루프 엔지니어링의 활용: /loop와 /goal을 결합하면 정교한 자동화 시스템을 만들 수 있다. 다만, 이 반복 작업은 무한히 유지되는 서버 데몬이 아니라 현재 세션(터미널)이 열려 있는 동안만 작동하며, 최대 7일 후에는 자동 만료된다는 점을 인지하고 설계해야 한다.
profile
백엔드 개발자

0개의 댓글