쉽게 배우는 Claude Code ⑮ /goal — 목표를 정해두면 알아서 반복
완료 조건만 정해두면 Claude가 그 조건을 만족할 때까지 스스로 고치고 돌려보며 반복하는 /goal 명령어를 알아봅니다.
작업을 시키다 보면 “이렇게 한 번 해줘”보다 “이 상태가 될 때까지 해줘”라고 맡기고 싶을 때가 있습니다. 테스트가 전부 통과할 때까지, API가 명세대로 응답할 때까지처럼요. 이럴 때 한 줄 한 줄 다시 시키지 않아도 되게 해주는 게 /goal입니다.
이번 편에서는 /goal이 무엇이고, 언제 쓰면 좋은지, 그리고 비슷해 보이는 /loop와는 어떻게 다른지 정리해 보겠습니다.
한 줄로
/goal은 완료 조건(목표)을 정해두면, Claude가 그 조건을 만족할 때까지 스스로 반복해서 작업하게 하는 명령어입니다. 한 번 걸어두고 자리를 비워도, 목표에 도달할 때까지 알아서 시도합니다.
언제 쓰나
“결과가 이렇게 될 때까지”를 통째로 맡기고 싶을 때 잘 맞습니다. 몇 가지 예를 보겠습니다.
★ 테스트를 전부 초록으로 만들기
“이 테스트들이 전부 통과할 때까지”를 목표로 걸어둡니다. 그러면 Claude가 코드를 고치고 → 테스트를 돌려보고 → 실패한 게 있으면 또 고치고, 이걸 전부 통과할 때까지 반복합니다. 그 사이 여러분은 다른 일을 해도 됩니다.
★ API를 명세대로 맞추기
“이 API가 명세대로 응답할 때까지” 구현과 수정을 반복하게 합니다. 응답이 명세와 어긋나면 다시 고쳐 보고, 맞을 때까지 시도합니다. 검증할 기준(명세)이 분명할수록 잘 동작합니다.
★ 잔손이 많이 가는 수렴 작업 맡겨두기
조금씩 고쳐서 원하는 상태로 점점 다가가는 작업(이른바 수렴 작업)은 사람이 붙어 있기 번거롭습니다. 이런 일을 /goal로 걸어두고 다른 일을 하다가, 도달했을 때 결과만 확인하는 식으로 쓸 수 있습니다.
어떻게
기본 사용법은 다음과 같습니다.
/goal 이 테스트들이 전부 통과할 때까지
이렇게 완료 조건을 적어두면, Claude가 그 조건을 만족할 때까지 작업을 반복합니다.
| 사용법 | 동작 |
|---|---|
/goal [조건] | 완료 조건을 설정하고, 만족할 때까지 반복 작업 |
/goal | 인자 없이 쓰면 현재(또는 마지막) 목표를 보여줌 |
/goal clear | 설정한 목표를 일찍 해제 (stop/off 등도 가능) |
목표를 걸어둔 뒤 자리를 비워도, Claude가 알아서 시도하다가 조건에 도달하면 멈춥니다. 중간에 더 이상 진행할 필요가 없어졌다면 /goal clear로 해제하면 됩니다.
팁 & 함정
- 목표는 ‘검증 가능하게, 명확하게’ 적으세요. Claude가 도달 여부를 스스로 판단할 수 있어야 멈출 수 있습니다. “테스트가 전부 통과”처럼 참/거짓을 가릴 수 있는 조건이 좋습니다.
- 모호한 목표는 끝없이 헤맬 수 있습니다. “더 좋아질 때까지”처럼 기준이 애매하면 Claude가 도달했는지 판단하기 어려워, 계속 시도만 할 수 있습니다. 이럴 때를 대비해
/goal clear로 해제하는 법을 꼭 알아두세요. /goal과/loop를 헷갈리지 마세요. 둘 다 “반복”이라 비슷해 보이지만 기준이 다릅니다.
| 구분 | 무엇을 기준으로 멈추나 | 성격 |
|---|---|---|
/goal | 목표(완료 조건)를 충족하면 멈춤 | 결과 지향 |
/loop | 정해둔 간격으로 반복 (다음 편에서 다룹니다) | 스케줄 지향 |
“이렇게 될 때까지”는 /goal, “몇 분마다 한 번씩”은 /loop라고 기억하면 쉽습니다.
한 장 정리
/goal [조건]: 완료 조건을 정해두면, 충족할 때까지 Claude가 스스로 반복해서 작업합니다./goal: 현재(마지막) 목표를 보여줍니다./goal clear: 목표를 일찍 해제합니다.- 목표는 검증 가능하고 명확하게 적어야 합니다. 모호하면 헤맬 수 있으니 해제법을 알아두세요.
/goal은 ‘목표 충족까지’(결과 지향),/loop는 ‘일정 간격 반복’(스케줄 지향)입니다.
다음 편:
/loop— 일정 간격으로 반복 실행하기.