블로그

2026년에 /goal로 Claude Code와 Codex를 밤새 실행하는 방법: 14시간 자율 모드

Markdown

Claude Code 2.1.139와 Codex CLI의 /goal 명령은 AI 에이전트를 몇 시간 동안 자율적으로 실행합니다. 설정 방법과 실제 사례, 토큰 비용을 설명합니다.

전체 글 읽기

핵심 요점

/goal 명령은 Claude Code 2.1.139(2026년 5월 11일)와 Codex CLI 0.128.0(2026년 4월 30일, 5월 21일부터 안정 버전)에 등장했습니다. 완료 기준을 한 번 정의하면 에이전트는 기준을 충족하거나 토큰이 소진될 때까지 계획, 실행, 검증을 스스로 반복합니다. OpenAI는 1,300만 토큰을 사용한 25시간 실행을 공개적으로 선보였습니다. 이 기능은 측정 가능한 기준이 있는 마이그레이션, 벤치마크, 리팩터링에 적합합니다. UI 작업, 프로덕션 데이터베이스, 또는 “더 좋게 만들어” 같은 모호한 요청에는 적합하지 않습니다.

Ailoot 사용법에 관한 정보는 문서에서 확인할 수 있습니다.

/goal이란 무엇이고, 2026년에 왜 등장했나요?

핵심 요점

/goal이 나오기 전에는 에이전트가 매번 작업을 이어 가려면 사람이 직접 “계속”이라고 입력해야 했습니다. 에이전트는 파일을 열고 읽고 무언가를 쓴 뒤 멈춰서 기다렸습니다. /goal 명령은 완료 기준을 한 번 설정합니다. 에이전트가 작업이 끝난 시점을 스스로 판단하며, 작업을 마칠 때까지 제어권을 돌려주지 않습니다.

2026년 4월 이전에 우리 모두가 겪었던 상황은 이랬습니다. Claude에게 “프로젝트를 Pydantic v1에서 v2로 마이그레이션해”라고 지시합니다. 작업을 시작한 뒤 30초 만에 멈추고, 나는 결과를 확인한 다음 “계속”이라고 씁니다. Claude는 다음 단계를 수행하고 멈추며, 나는 다시 “계속”이라고 씁니다. 대규모 마이그레이션에서는 이렇게 수동으로 “계속”을 200~300번 입력해야 합니다. 다른 코드를 병렬로 작성하는 대신 에이전트를 계속 지켜보게 되는 셈입니다.

OpenAI는 문제의 원인이 모델의 “멍청함”이 아니라 반복 구조에 있다고 분석했습니다. 모델은 언제 멈춰야 할지 몰라 매 턴마다 브레이크를 밟았습니다. 완료 기준을 알려 주면 스스로 판단하게 됩니다.

이렇게 /goal이 탄생했습니다. 모델이 아니라 하네스에 내장된 메커니즘입니다.

이 발언은 2026년 5월 19~20일 런던에서 열린 Code with Claude 컨퍼런스에서 나왔습니다. 두 도구에 /goal이 출시된 뒤 한 달 동안 실제로 일어난 일을 설명합니다.

Claude Code에서 Goal 모드를 설정하는 방법

핵심 요점

Claude Code 2.1.139는 2026년 5월 11일 /goal 명령과 함께 출시됐습니다. 소형 모델(Haiku가 기본값)이 매 턴 뒤 기준을 확인합니다. 기준을 충족하지 못하면 Claude가 다음 턴을 수행합니다. 기준은 최대 4,000자이며, 세션마다 목표는 하나만 설정할 수 있습니다.

Anthropic 공식 문서의 간단한 예시:

claude -p "/goal CHANGELOG.md has an entry for every PR merged this week"

이 명령은 목표 하나를 설정해 에이전트를 백그라운드에서 실행합니다. Claude는 PR을 찾아 CHANGELOG.md와 대조하고, 누락된 항목을 추가한 뒤 기준을 충족하면 멈춥니다.

대화형 모드에서는 /goal 뒤에 조건을 입력하면 됩니다.

/goal all pytest tests pass and mypy strict reports zero errors

Claude가 다음으로 하는 일:

  • 매 턴 후 별도의 빠른 모델(Haiku가 기본값)이 현재 조건과 대화 기록을 전달받습니다.
  • 이 모델은 짧은 이유와 함께 “예” 또는 “아니요”라고 답합니다.
  • 답이 “아니요”이면 Claude는 제어권을 돌려주지 않고 자동으로 다음 턴을 수행합니다.
  • 답이 “예”이면 목표가 지워지고 제어권이 사용자에게 돌아옵니다.

매 턴 뒤 작고 빠른 모델이 조건을 충족했는지 확인합니다. 충족하지 못했다면 Claude는 제어권을 돌려주지 않고 다음 턴을 시작합니다.

— Claude Code 공식 문서, https://code.claude.com/docs/en/goal

직접 겪기 전까지는 아무도 알려 주지 않는 엄격한 제한:

  • /goal은 신뢰 대화상자에서 동의한 작업 디렉터리에서만 작동합니다. 새 컴퓨터에서 Claude가 해당 디렉터리를 아직 기억하지 못한다면 명령이 실패합니다.
  • disableAllHooks 또는 allowManagedHooksOnly가 설정된 기업 환경에서는 명령을 사용할 수 없습니다.
  • 조건은 최대 4,000자까지 입력할 수 있습니다.
  • 세션마다 활성 목표는 하나뿐입니다. 새 /goal을 설정하면 기존 목표가 재설정됩니다.
  • --resume을 사용하면 조건은 보존되지만 턴, 시간, 토큰 카운터는 재설정됩니다.

제어 명령:

  • 인수 없이 /goal 입력: 현재 상태 표시
  • /goal clear(또는 stop, off, reset, none, cancel): 목표 지우기

Anthropic에 따르면 평가 비용은 “일반적으로 메인 턴 비용에 비해 무시할 만한 수준”입니다. Haiku는 조건과 대화 텍스트를 평가하며 도구를 호출하지 않으므로 확인 비용은 낮습니다. 비용이 많이 드는 부분은 메인 모델의 턴입니다.

Codex CLI에서 /goal을 설정하는 방법

핵심 요점

Codex CLI 0.128.0은 2026년 4월 30일 실험 기능으로 /goal을 추가했습니다. 5월 21일에는 26.519 릴리스 / npm 0.133.0에서 안정 버전이 됐습니다. 두 가지 프롬프트 템플릿, continuation.md(“계속”)와 budget_limit.md(“중지”)를 통해 작동합니다. 목표는 스레드에 연결되며 재시작 후에도 유지됩니다.

명령은 Claude와 동일한 형태입니다.

codex
> /goal all vitest tests pass and there are no eslint errors

Codex는 목표를 제어할 수 있는 명령을 더 많이 제공합니다.

명령기능
/goal condition목표 설정
/goal상태 확인
/goal pause일시 중지
/goal resume재개
/goal edit조건 변경 (GA 포함)
/goal clear목표 지우기

Claude와 가장 큰 차이는 별도의 모델이 아니라 Codex 자체가 작업이 “끝났는지” 확인한다는 점입니다. 매 턴 뒤 Codex는 openai/codex 저장소의 continuation.md 템플릿을 컨텍스트에 자동으로 삽입합니다. 직역하면 다음과 같습니다.

“활성 스레드 목표를 향해 계속 작업하세요. 이미 완료한 작업을 반복하지 마세요. 목표를 향한 다음 구체적인 조치를 선택하세요. 점검 결과 목표가 실제로 충족됐고 필요한 작업이 남지 않았을 때만 목표를 달성했다고 표시하세요.”

토큰이 한도에 가까워지면 두 번째 템플릿인 budget_limit.md가 삽입됩니다.

“목표가 토큰 한도에 도달했습니다. 상당한 규모의 새 작업을 시작하지 마세요. 가능한 한 빨리 이번 턴을 마무리하세요. 유용한 진행 상황을 요약하고 남은 작업과 장애물을 밝힌 뒤 사용자에게 명확한 다음 단계를 제시하세요.”

논리는 같습니다. “한 일을 거짓말하지 말라”는 것입니다. 계속 진행할 때는 목표가 실제로 아직 달성되지 않은 경우에만 이어서 작업해야 합니다. budget_limit은 중지하되 남은 작업을 솔직하게 설명하라고 요구합니다.

Claude와 달리 Codex는 목표를 세션이 아니라 스레드에 연결합니다. 예를 들어 밤에 터미널을 닫았다가 아침에 다시 열고 /goal resume을 실행하면 같은 정보를 기억한 채 동일한 목표를 이어 갑니다. 자신의 일정에 따라 실행을 여러 구간으로 나누는 경우 유용합니다.

Claude Code와 Codex의 /goal은 어떻게 다른가요?

핵심 요점

Claude는 작성자와 판단자를 분리합니다. 메인 모델이 코드를 작성하고 별도의 소형 모델이 평가합니다. Codex는 하나의 에이전트가 자신의 작업을 확인하며 “한 일을 거짓말하지 말라”고 스스로 상기합니다. 구조는 다르지만 반복에 빠질 위험은 동일합니다.

비교할 때 가장 자주 놓치는 차이이므로 자세히 살펴보겠습니다.

항목Claude Code /goalCodex /goal
출시v2.1.139, 2026년 5월 11일v0.128.0, 2026년 4월 30일(실험) → v0.133.0 / 26.519, 2026년 5월 21일(안정)
목표 범위세션스레드(재시작 후에도 유지)
제어 기능set, clear (+ 별칭)set, view, pause, resume, edit, clear
“완료” 여부를 확인하는 주체별도 모델(Haiku가 기본값)삽입된 프롬프트를 사용하는 동일 에이전트
평가자의 파일 접근 권한없음. 대화 텍스트만 보고 판단있음. 파일, 테스트, 로그를 검사할 수 있음
예산조건 텍스트에 “또는 20턴 뒤 중지”라고 입력내장 토큰 한도 + budget_limit.md 자동 삽입
엄격한 지출 한도없음. 구독 한도만 적용없음. 구독 한도만 적용
조건 길이최대 4,000자명시되지 않음
작동 환경대화형 모드, -p, 데스크톱 앱, Remote Control앱, IDE 확장, CLI, ACP 클라이언트

개념상의 차이는 다음과 같습니다. Claude는 반복을 품질 계약(외부 평가자)으로 다루고, Codex는 실행 메커니즘(에이전트가 스스로 관리)으로 다룹니다.

실제로는 완료 기준이 공정하게 평가되기를 원한다면 Claude를 선택하세요. 평가 중 에이전트가 파일과 로그를 확인할 수 있길 원한다면 Codex를 선택하세요.

도구 자체에 관한 자세한 내용은 Codex와 Claude Code 비교 가이드를 참조하세요.

실제 사례: Pydantic v1에서 v2로 31시간 동안 마이그레이션

핵심 요점

Codex /goal은 내부 서비스의 코드 14,000줄을 Pydantic v1에서 v2로 마이그레이션하는 작업을 실제 시간으로 31시간 만에 완료했습니다. 네 번의 세션으로 나눠 진행했으며 gpt-5.3-codex 기준 비용은 약 $44였습니다.

작업은 다음과 같이 설정됐습니다. “Pydantic v1에서 v2로 마이그레이션하고, 모든 pytest 테스트를 통과시키며, mypy strict에서 오류가 0개여야 합니다.”

진행 내용:

  • 세션 1 (8시간): Codex가 import를 분석하고 BaseModel 선언을 재작성한 뒤 mypy를 설정했습니다.
  • 세션 2 (10시간): validator를 재작성했으며 테스트 약 200개가 실패했습니다.
  • 세션 3 (7시간): 테스트를 수정하고 순환 의존성을 발견했습니다.
  • 세션 4 (6시간): 남은 mypy 오류와 회귀 문제를 해결했습니다.

토큰 비용:

“총 실제 작업 시간은 네 세션에 걸쳐 약 31시간입니다. gpt-5.3-codex 요금 기준 Codex 토큰 비용은 총 약 $44입니다.”

비용의 대부분은 백만 토큰당 $14인 gpt-5.3-codex 출력 토큰에서 발생합니다. 즉, 31시간 동안 자율적으로 작업시키는 비용은 ChatGPT Plus를 몇 주간 구독하는 것과 비슷합니다.

에이전트가 스스로 하지 못한 일:

  • 팀을 위한 마이그레이션 문서를 작성하지 않았습니다. Codex는 이것이 “마이그레이션”의 일부라는 점을 이해하지 못했습니다.
  • 새 버전의 Pydantic으로 게시하기 위한 설정 파일을 업데이트하지 않았습니다.
  • 프로덕션 회귀 하나를 놓쳤고, 하루 뒤에야 발견됐습니다.

다시 말해 /goal은 작업의 95%를 처리했으며 나머지 5%는 여전히 직접 해야 합니다. 현 세대 모델에서는 정상적인 일이며, 사용을 꺼릴 이유는 없습니다.

macOS 드라이버를 밤새 14시간 작업

장시간 실행에 적합한 작업

핵심 요점

드라이버 작업은 대화형 작업에는 잘 맞지 않지만 장시간 반복 실행에는 매우 적합합니다.

이 접근법이 가장 큰 효과를 내는 작업 유형:

  • 한 번 반복하고 확인하는 데 몇 분이 걸리는 저수준 작업(컴파일, 테스트 실행)
  • 명확한 공식 기준이 있는 마이그레이션(타입, 테스트, lint)
  • 결과를 측정할 수 있는 벤치마크와 최적화
  • 구조가 명확한 문서와 변경 기록

Claude /goal도 똑같이 잘 처리하지만, 드라이버 작업에는 외부 평가자에 의존하지 않고 파일과 로그를 직접 확인하는 Codex가 더 자주 선택됩니다.

비용은 얼마이며, 밤새 토큰을 소진하지 않으려면 어떻게 해야 하나요?

핵심 요점

/goal에는 엄격한 최대 지출 한도가 없으며 요금제의 한도만 적용됩니다. Codex를 gpt-5.3-codex로 실제 한 시간 실행하면 약 $1.50~$3가 듭니다. Claude는 실행 비용이 더 높고 평가 비용은 더 낮습니다. 유일한 보호책은 조건에 “또는 N턴 뒤 중지”라고 직접 입력하는 것입니다.

공개된 사례의 수치:

실행기간토큰비용
OpenAI 디자인 도구 데모25시간13M(내부 실행)
Pydantic v1→v231시간, 4회 세션출력 약 3.1M약 $44
음성 인터뷰 시스템총 6시간 44분(계산 41분)입력 680만, 94% 캐시됨-
글꼴 스모크 테스트5분188,832주간 할당량의 5% 미만

핵심은 Claude Code와 Codex 모두 “$N을 쓰면 중지”와 같은 엄격한 한도를 제공하지 않는다는 점입니다. 보호책은 세 가지입니다.

  1. 구독 한도—Pro, Max 또는 Enterprise. Anthropic Max 요금제(월 $100)에서는 14시간 밤샘 실행이 주간 할당량 안에 충분한 여유를 두고 들어갑니다.
  2. 조건의 텍스트 한도—/goal에 “또는 20턴 뒤 중지”라고 직접 입력합니다. Claude 평가자가 이를 읽고 목표를 종료합니다.
  3. Codex의 토큰 한도—토큰이 소진될 때 budget_limit.md를 삽입하는 내장 메커니즘입니다.

밤새 비용을 늘리는 요인:

  • “더 편하게 만들어” 같은 모호한 기준: 평가자는 “더 낫다”의 의미를 알 수 없어 에이전트가 멈추지 않습니다.
  • 스텁 없이 외부 API에 접근하도록 하는 것: 재시도할 때마다 토큰이 듭니다.
  • 긴 컨텍스트: 토큰이 6.7M을 넘으면 컨텍스트 압축이 시작되고 일부 기억이 손실됩니다.

비용 절감 방법은 Claude Code 토큰이 어디에 쓰이는지와 한도를 소진하지 않는 방법 가이드를 참조하세요.

/goal을 실행하지 말아야 할 때: 5가지 상황

핵심 요점

“보기 좋게 만들어”와 같은 모호한 기준, 한 줄 수정, 사용자 데이터가 있는 프로덕션 데이터베이스, 보안에 민감한 변경, 외부 의존성이 불분명한 작업입니다. 이 다섯 가지 상황에서는 에이전트가 반복에 빠지거나 토큰을 낭비하게 됩니다.

OpenAI 문서는 하지 말아야 할 일을 명시적으로 설명합니다.

  1. 한 줄 수정—변수 이름 하나를 바꾸는 데 /goal을 실행하면 직접 하는 것보다 비용이 더 듭니다.
  2. 모호한 목표—“성능을 개선해”, “코드를 더 깔끔하게 만들어”, “더 편하게 만들어”. 평가 기준이 없으므로 에이전트는 끝없이 맴돕니다.
  3. 사용자 데이터가 있는 프로덕션 데이터베이스—에이전트가 마이그레이션을 망가뜨릴 수 있고, 백업에서 복원하는 비용은 어떤 절약분보다 큽니다.
  4. 보안 변경—인증, 암호화, 결제 처리. 이런 작업에서는 사람이 모든 커밋을 검토해야 합니다.
  5. 스텁 없는 외부 API—네트워크 오류가 발생할 때마다 토큰이 들고, 네트워크는 제어할 수 없습니다.

에이전트가 반복에 빠지면 어떻게 해야 하나요?

핵심 요점

에이전트가 같은 부분을 3~4턴 동안 수정한 뒤 되돌리는 것은 반복에 빠졌다는 신호입니다. Ctrl+C로 중단하고 로그를 확인한 다음, 기준을 더 엄격하게 만들거나 작업을 한 부분으로 좁히세요. Claude에서는 /goal clear가 도움이 됩니다. Codex에서는 /goal pause를 사용한 뒤 조건을 수정하세요.

반복을 빠르게 알아보는 방법:

  • 에이전트가 3턴 이상 같은 파일을 건드린 뒤 이전 상태로 되돌립니다.
  • 이미 대응한 오류가 로그에 반복해서 나타납니다.
  • 사용자는 조건을 충족했다고 보지만 에이전트는 “충족되지 않음”이라고 말합니다.
  • 턴당 토큰 사용량은 늘지만 코드에 진전이 없습니다.

다음 조치:

  • Claude Code: /goal clear를 입력한 다음 조건을 더 구체적으로 만듭니다.
  • Codex: /goal pause를 입력하고 현재 스레드를 확인한 뒤 /goal edit으로 조건을 수정하고 /goal resume을 실행합니다.
  • 두 도구 모두에서: 기준을 실제로 검증할 수 있는지 확인합니다(명령이 exit 0을 반환하거나 특정 출력을 생성해야 합니다).

반복의 원인은 에이전트가 아니라 작업 자체인 경우가 많습니다. “모든 테스트 통과”라는 조건은 애초에 테스트가 통과할 수 있다고 가정합니다. 코드에 근본적인 아키텍처 문제가 있으면 에이전트는 증상 주변을 계속 맴돕니다.

/goal의 “완료” 기준: 작업 규율

핵심 요점

좋은 기준은 exit 0이나 구체적인 출력을 반환하는 명령입니다. “모든 테스트 통과”는 쓸 수 있지만 “코드가 더 깔끔해졌다”는 그렇지 않습니다. 공식 검사와 측정 가능한 지표를 결합하는 것이 좋습니다. 예를 들어 테스트와 최소 커버리지를 함께 지정할 수 있습니다.

OpenAI는 공식 Codex Cookbook에서 이 규칙을 명확히 밝힙니다.

모델이 목표를 달성했다고 생각한다는 이유만으로 목표가 완료된 것은 아닙니다. 파일, 테스트, 로그, 벤치마크 또는 그 밖의 구체적인 산출물에 비추어 결과를 확인한 뒤에만 목표가 완료됩니다.

— OpenAI Codex Cookbook, Codex에서 Goals 사용하기, https://developers.openai.com/cookbook/examples/codex/using_goals_in_codex

실제로 효과가 있는 기준 템플릿:

기준 유형표현 방법
테스트“pytest tests/가 exit 0을 반환하고 커버리지가 80% 이상이다”
타입“mypy strict가 src/에서 오류 0개를 보고한다”
Lint“eslint .이 변경된 모든 파일에서 exit 0을 반환한다”
빌드“npm run build가 TypeScript 오류 없이 성공적으로 완료된다”
벤치마크“k6 run perf test에서 p95가 200 ms 미만이다”
Diff“git diff에 파일 X, Y, Z만 변경된 것으로 나온다”
조합“pytest가 통과하고 mypy strict가 오류 0개를 보고하며 ruff check도 통과한다”

Combo 행은 테스트, mypy, lint를 조합합니다. 검사 하나라도 실패 상태라면 목표는 종료되지 않습니다. 평가자가 속일 여지가 없습니다.

안티패턴:

  • “코드가 더 좋아졌다”
  • “사용성이 개선됐다”
  • “성능이 향상됐다”
  • “문서화가 완료됐다”

“작동한다”와 “작동하지 않는다”의 차이는 검증 가능성에 있습니다. 기준을 명령으로 확인할 수 없다면 아예 확인할 수 없습니다. OpenAI가 말하는 “장기적 일관성”도 같은 의미입니다. 에이전트는 오랫동안 생각할 수 있지만, 무엇이 “충분히 좋은지”를 스스로 결정할 수는 없습니다.

실제 프로젝트에서 “프롬프트 하나, 결과 하나”라는 아이디어를 시험해 볼 수 있습니다. /goal을 설정하고 기준을 작성해 실행한 다음 무엇이 잘못됐는지 분석하세요.

Ailoot에 대해 알아보세요.

자세히 보기

2026년에 /goal로 Claude Code와 Codex를 밤새 실행하는 방법: 14시간 자율 모드: 자주 묻는 질문

/goal의 완료 기준은 어떻게 정해야 하나요?

검사 가능한 결과를 지정하세요. 테스트, 타입 검사, 빌드, 벤치마크의 이름과 필요한 결과를 명시하고 필요한 검사들을 분명히 결합하며 허용 파일 범위도 포함하세요. “더 좋게 만들기”에는 측정 가능한 종료 지점이 없습니다.

에이전트가 같은 실패한 수정을 반복하면 어떻게 하나요?

실행을 중단하고 로그를 확인하세요. 같은 파일을 계속 수정했다가 되돌린다면 범위를 좁히거나 기준을 더 구체화하세요. 재개 전에 필수 검사들이 실제로 통과 가능한지 확인하세요.

모든 글