Goal 모드란 무엇인가
OpenAI의 장기 실행 작업 가이드는 다음과 같은 개념을 제시합니다. "여러 단계가 필요한 작업의 경우, ChatGPT에게 명확한 결과물, 제약 조건 및 완료 정의를 제공하십시오. 관련 작업은 동일한 채팅 내에서 유지하여 ChatGPT가 동일한 context를 사용하여 다음 단계를 선택하고 작업 완료 시점을 결정할 수 있도록 하십시오."
Goal 모드는 이를 명령어로 구현한 것입니다. "ChatGPT 데스크톱 앱, Codex CLI 또는 IDE 확장 프로그램에서 /goal을 입력하세요. Goal 텍스트는 작업의 첫 번째 프롬프트이자 완료 기준이 됩니다."
이 두 번째 문장이 Goal 모드의 동작 방식을 대부분 설명해 줍니다. Goal은 단순히 작업의 시작 방식이 아닙니다. Codex가 작업의 완료 여부를 판단하는 테스트 기준입니다.
작동 위치
- ChatGPT 데스크톱 앱.
/goal을 입력하여 Goal 모드를 시작합니다. 입력창 위의 진행 표시줄에서 Goal을 일시 중지, 재개, 편집 또는 삭제할 수 있습니다. - Codex CLI. 대화형 세션에서
/goal을 입력하고 동일한 세션에서 계속 진행하여 제어합니다. - IDE 확장 프로그램. 열려 있는 워크스페이스의 채팅창에
/goal을 입력하고, Goal이 실행되는 동안 워크스페이스를 유지합니다.
ChatGPT 웹 버전은 다르게 작동합니다. 웹에서의 호스팅된 장기 실행 작업의 경우, 가이드에서는 ChatGPT Work를 사용하고 "결과물, 제약 조건 및 검토 기준을 프롬프트에 직접 입력"하라고 안내합니다.
Goal 모드는 기본적으로 활성화되어 있습니다. 설정 참조 문서에는 goals가 기본으로 활성화된 안정적인 기능으로 나열되어 있으며, "지속적인 목표 및 자동 연속 실행 활성화"로 설명되어 있습니다.
명령어
CLI 참조 문서에 나열된 제어 명령어는 다음과 같습니다.
/goal <objective>: 목표를 설정합니다./goal: 현재 목표를 표시합니다./goal edit: 목표를 수정합니다./goal pause,/goal resume,/goal clear: 목표를 일시 중지, 재개 또는 제거합니다.
OpenAI의 설명에 따른 예상 결과는 다음과 같습니다. "Codex는 작업이 계속되는 동안 활성 채팅에 Goal을 연결된 상태로 유지합니다."
Goal이 유지하는 것
Goal은 의도적으로 작게 설계되었습니다. Goal이 담고 있는 내용과 위치는 다음과 같습니다.
목표(Objective). 사용자가 입력한 텍스트로, 첫 번째 프롬프트이자 완료 기준이 됩니다.
상태(Status). 활성 또는 일시 중지 상태이며, 위의 명령어들이나 데스크톱 앱의 진행 표시줄로 제어합니다.
단일 채팅 내의 위치. Goal은 활성 채팅에 연결됩니다. 장기 실행 작업 가이드는 병렬 작업에 대해 명확히 규정합니다. "각 채팅은 고유한 context, 메시지, 결과 및 Goal을 유지합니다."
진행 상황 회계. 클라이언트가 사용하는 인터페이스를 설명하는 앱 서버 문서에 따르면, Goal은 토큰 예산과 사용된 토큰 및 시간 카운트를 포함합니다. 또한 편집 시의 동작도 명시합니다. "새로운 목표를 제공하면 기존 Goal을 대체하고 사용량 통계를 초기화합니다." 상태만 변경하거나 동일한 목표를 유지하면 사용 기록이 보존됩니다.
크기 제한. "Goal 목표는 비어 있을 수 없으며 최대 4,000자여야 합니다. 더 긴 지침의 경우 세부 사항을 파일에 넣고 Goal이 해당 파일을 가리키도록 하십시오."
이 마지막 문구는 제한 사항 중 가장 실용적인 부분입니다. Goal은 타겟이지, Codex가 알아야 할 모든 것을 담는 컨테이너가 아닙니다.
Goal이 대체하지 않는 것
Goal은 지속되기 때문에 context를 가득 채우고 싶은 유혹이 생깁니다. 하지만 Goal은 그런 용도로 설계되지 않았으며, 문서는 다른 위치를 권장합니다.
프로젝트 지침
모든 작업에 적용되는 관례와 규칙은 AGENTS.md에 속합니다. Codex의 memories 문서는 일반적인 원칙을 다음과 같이 제시합니다. "필요한 팀 가이드는 AGENTS.md 또는 체크인된 문서에 보관하십시오." Goal은 하나의 채팅에 연결되지만, AGENTS.md는 저장소의 모든 채팅에 적용됩니다. Codex가 AGENTS.md 규칙을 건너뛰는 것을 방지하는 가이드에서 Codex가 이러한 파일을 찾는 방법을 다룹니다.
Memories
Codex memories는 이전 채팅의 context를 이후 채팅으로 전달하며, 기본적으로 꺼져 있습니다. memories 문서는 이를 항상 적용되어야 하는 규칙의 유일한 소스가 아닌 "유용한 회상 레이어"라고 부릅니다. Goal은 반대 역할을 합니다. 하나의 채팅을 하나의 결과물에 집중시킵니다. 둘 중 어느 것도 서로를 대신할 수 없습니다. Codex의 로컬 memories를 켜는 가이드에서 memories의 작동 방식을 다룹니다.
나머지 대화 내용
Goal은 Codex가 진행 과정에서 배운 내용을 보관하지 않습니다. 그 내용은 채팅에 있습니다. 가이드에서 "관련 작업을 동일한 채팅에 유지하라"고 조언하는 이유가 바로 이것입니다. 채팅은 context가 있는 곳이고, Goal은 Codex가 무엇을 목표로 하는지 알려주는 수단입니다. 긴 채팅이 context 제한에 가까워지면, Codex의 GPT-6.1 Sol 500k 기본 설정 가이드에서 압축(compaction)이 시작되는 시점을 다룹니다.
권한
Goal을 설정한다고 해서 Codex에게 더 넓은 행동 권한을 부여하는 것은 아닙니다. "Goal을 시작한다고 해서 ChatGPT에게 더 넓은 액세스 권한이 부여되지는 않습니다. 동일한 샌드박스와 승인 정책을 유지하며, 결정이 필요할 때는 일시 중지됩니다."
유지력이 좋은 Goal 작성법
장기 실행 작업 가이드는 해당되는 경우 다음 세 가지 요소를 포함할 것을 제안합니다.
- 결과물(Outcome). "ChatGPT가 수행해야 할 활동뿐만 아니라 원하는 결과를 설명하십시오."
- 제약 조건(Constraints). "필요한 도구, 경계, 호환성 요구 사항 또는 피해야 할 접근 방식을 명시하십시오."
- 검증(Verification). "작업이 완료되었음을 증명하는 테스트, 측정 또는 검토 기준을 추가하십시오."
OpenAI의 자체 예시는 이 세 가지를 두 문장에 담았습니다. 코드베이스를 JavaScript에서 TypeScript로 마이그레이션하고, 기존 동작을 보존하며, 명시적인 any 타입 없이 strict 모드에서 컴파일하고, 전체 테스트 스위트를 통과하게 만드는 것입니다.
결과물이 아직 명확하지 않다면 가이드에서는 /plan으로 시작할 것을 제안합니다. "ChatGPT에게 인터뷰를 요청하여 제약 조건을 식별하고, 그 결과를 측정 가능한 성공 기준이 포함된 Goal로 바꾸도록 하십시오. 그런 다음 정제된 목표를 /goal로 시작하십시오."
실행 중인 Goal 조종하기
Codex가 끝날 때까지 기다릴 필요는 없습니다. 모든 클라이언트에서 동일한 채팅 내에 후속 메시지를 보내 context를 추가하거나 제약 조건을 조정하고, 상태 요약을 요청할 수 있습니다.
데스크톱 앱에는 두 가지 옵션이 추가됩니다. "메인 채팅을 방해하지 않고 상태 요약이나 설명을 원할 때" 사이드 채팅을 사용할 수 있습니다. 또한 연결이 끊길 것으로 예상될 때 Goal을 일시 중지했다가, Codex가 계속 진행할 준비가 되었을 때 재개할 수 있습니다.
병렬 작업의 경우, 가이드의 조언은 별도의 채팅을 실행하고, 두 채팅이 동일한 파일을 변경하지 않도록 하며, worktrees를 사용하여 병렬 코딩 채팅에 별도의 체크아웃을 제공하는 것입니다. Mac에서는 '실행 중 잠자기 방지' 기능을 통해 로컬 작업을 계속 유지할 수 있습니다.
사람들이 흔히 하는 실수
Goal에 전체 브리핑을 작성함. 목표(objective)는 4,000자로 제한됩니다. 긴 지침은 파일에 넣고 Goal이 그 파일을 가리키게 하세요.
방향을 바꾸기 위해 새 채팅을 시작함. Goal과 context는 이전 채팅에 있습니다. 작업이 진행 중인 채팅에서 Goal을 편집하거나 후속 메시지를 보내세요.
Goal이 다음 채팅으로 이어질 것이라 기대함. 각 채팅은 고유한 Goal을 가집니다. 새 채팅은 Goal 없이 시작됩니다.
AGENTS.md 대신 Goal을 사용함. Goal은 하나의 작업을 다룹니다. 모든 작업에 대한 규칙은 AGENTS.md에 있어야 합니다.
중간에 목표를 완전히 교체함. 새로운 목표는 기존 Goal을 대체하고 사용량 통계를 초기화합니다. 제약 조건만 조정하면 된다면 후속 메시지로 충분할 수 있습니다.
해결책: Goal은 짧게 유지하고, 세부 사항은 파일에 넣고, 의도적으로 인수인계하기
1단계: Goal을 테스트처럼 작성하기
결과물, 제약 조건, 그리고 완료를 증명하는 체크 항목을 작성하세요. 체크 항목을 명시할 수 없다면 /plan으로 시작하여 계획을 Goal로 변환하세요. Goal은 Codex가 완료 여부를 결정하는 데 필요한 내용으로만 한정하세요.
2단계: 세부 사항을 지속 가능한 곳에 두기
상세 요구 사항은 저장소 내의 파일(사양서나 작업 노트 등)에 넣고 Goal이 이를 가리키도록 하세요. 이 작업 이후에도 적용될 관례는 AGENTS.md에 넣으세요. 두 가지 모두 Goal이 삭제된 후에도 유지되며, 다른 파일처럼 검토될 수 있습니다.
3단계: 채팅을 전환하기 전에 인수인계하기
다른 채팅, 다른 기기 또는 worktree에서 작업을 계속해야 한다면, 먼저 현재 상태(완료된 것, 남은 것, 결정된 것)를 기록하세요. Codex의 handoff 기능은 로컬, worktree, 원격 호스트 간에 채팅을 이동시키며, Codex handoff 가이드에서 함께 이동하는 항목들을 설명합니다. 새로운 채팅의 경우, 인수인계 프롬프트 작성 가이드에서 포함할 내용을 다룹니다. 원본을 잃지 않고 다른 접근 방식을 시도하고 싶다면 Codex 채팅 포크 가이드를 확인하세요.
MemoryLake에서 설정하기
Goal은 하나의 채팅이 하나의 결과물을 향하도록 유지합니다. 접근 방식을 선택한 이유나 효과가 없었던 방법 등 해당 작업에서 나온 결정들은 Goal보다 오래 지속되며, 다음 작업, 채팅 또는 도구에서도 필요합니다.
MemoryLake는 이러한 종류의 context를 사용자가 관리하는 하나의 리스트에 보관하여 Codex 및 연결된 다른 어시스턴트(ChatGPT, Claude Code 등)가 사용할 수 있게 해주는 memory 레이어입니다.
사용자는 자신의 언어로 직접 항목을 작성합니다. 사용자의 Goal, 채팅, AGENTS.md 파일, Codex memories 또는 벤더의 저장소에서 데이터를 읽거나 쓰거나 삭제하지 않습니다. Goal 모드는 OpenAI가 설명한 방식 그대로 계속 작동합니다.
1단계: API 키 생성
로그인 후 대시보드에서 키를 생성합니다. 이 키는 MemoryLake 워크스페이스에 속하며 ChatGPT 계정 및 Codex 설정과는 별개입니다.

2단계: 첫 번째 memories 업로드
마지막 긴 Goal에서 나온 결과물(결정 사항, 발견한 제약 조건, 제외된 접근 방식 등)부터 시작하세요. 항목당 하나의 포인트를 작성하고, 날짜를 기입하고, 저장소 레이블을 지정합니다.

3단계: AI 및 에이전트 연결
Codex와 사용하는 다른 어시스턴트들을 연결하세요. 어떤 채팅이나 도구에서든 다음 Goal은 이전 작업에서 확정된 내용부터 시작됩니다.

실제적인 변화
첫 번째 차이점은 긴 작업이 의도한 지점에서 끝난다는 것입니다. Goal이 완료 테스트 역할을 하므로 Codex는 언제 멈춰야 할지 압니다.
두 번째는 Goal이 작게 유지된다는 것입니다. 세부 사항은 채팅보다 오래 지속되는 파일에 있고, 규칙은 AGENTS.md에 있습니다.
세 번째는 채팅을 바꿔도 처음부터 다시 시작할 필요가 없다는 것입니다. 상태가 기록된 상태에서 의도적으로 인수인계할 수 있습니다.
Codex Goal 모드 베스트 프랙티스
결과물, 제약 조건, 검증 방법을 명시하세요. Goal은 곧 완료 기준입니다.
4,000자 이내로 유지하세요. 나머지는 Goal이 파일을 가리키게 하세요.
동일한 채팅에서 조종하세요. 그곳에 Goal과 context가 있습니다.
결과물이 불분명할 때는 /plan을 사용하세요. 그런 다음 계획을 Goal로 변환하세요.
연결이 끊기기 전에 일시 중지하세요. 준비가 되면 재개하세요.
병렬 채팅에는 별도의 worktrees를 할당하세요. 각 채팅은 고유한 Goal과 context를 유지합니다.
규칙은 AGENTS.md에 보관하세요. Goal은 하나의 작업만 다룹니다.
결론
Goal 모드는 긴 Codex 작업에 지속적인 타겟을 부여합니다. 데스크톱 앱, CLI 또는 IDE 확장 프로그램에서 /goal로 설정하며, Goal 텍스트는 첫 번째 프롬프트이자 완료 기준이 됩니다. Goal은 해당 채팅에 연결된 상태로 유지되며, 상태 및 사용량과 함께 최대 4,000자의 목표를 보유하고, Codex의 권한을 확장하지는 않습니다.
Goal을 테스트처럼 작성하고, 세부 사항은 Goal이 가리키는 파일에 넣고, 규칙은 AGENTS.md에 보관하며, 작업이 다른 채팅으로 이동할 때는 의도적으로 인수인계하십시오.