Transcript
00:00:00새로운 실험적 기능인 'Goals'가 출시되면서 Codex가 Claude Code를 이길 수도 있을 것 같습니다.
00:00:05Codex는 이제 추가적인 오케스트레이션 레이어를 포함할 필요 없이
00:00:10장시간 실행되는 자율 코딩 작업을 실행하는 가장 쉬운 방법이 되었습니다.
00:00:15Goals는 마치 더 정교하게 통합된 REPL 루프처럼 작동합니다. 어떤 목표를 부여하면
00:00:19사용자의 개입 없이도 문제를 해결하기 위해 몇 시간이고 계속해서 작업할 것입니다.
00:00:25오늘은 이 기능이 어떻게 작동하는지, 어떻게 설정하는지 보여드리고 실제 데모를 진행하겠습니다.
00:00:29직접 확인하실 수 있도록요. 오늘은 독창적인 에셋을 사용하고 오직 Goals 기능을 통해서만 제작한
00:00:352D 전투 비디오 게임인 'Rift Salvage'를 만들어 볼 예정입니다. Goals 기능은
00:00:42현재 Codex의 진정한 차별점 중 하나이며, 사용법도 놀라울 정도로 간단합니다.
00:00:47단일 슬래시 명령어로 끝날 만큼 사용법이 아주 간단해서 활용 가치가 정말 높습니다
00:00:51Codex 데스크톱 앱을 쓰든 CLI를 쓰든, Goals는 실험적 기능이므로 활성화를 해야 합니다.
00:00:56Codex에게 직접 시키거나 여러분이 직접 아주 빠르게 설정할 수도 있습니다.
00:01:01Codex 앱 내에서 설정(Settings)으로 가서 구성(Configuration)으로 들어갑니다.
00:01:07여기서 'open config.toml'을 클릭하여 VS Code에서 파일을 엽니다.
00:01:15그리고 하단에 'features'와 'goals = true'라는 두 줄을 추가하면 됩니다.
00:01:22그게 다입니다. 2초도 안 걸릴 거예요. 이게 너무 복잡하다면 Codex에게
00:01:27“내 Goals 기능을 활성화해 줘”라고 말해도 됩니다. 그럼 끝입니다. 이제 실제로 사용하려면
00:01:35데스크톱 앱이나 CLI에서 '/goal'을 입력하면 됩니다. 그런데
00:01:40실험적 기능이라 그런지 '/goal'을 쳐도 제대로 작동한다는
00:01:43알림 같은 게 안 뜰 수 있습니다. 제대로 된 프롬프트를 입력하면
00:01:48Goal이 작동 중임을 알리는 작은 배지가 나타납니다. 기능을 활성화한 후에는
00:01:53Claude Code를 재설정해서 변경 사항이 적용되게 하세요. '/goal'을 입력해도
00:01:58평소 스킬을 쓸 때처럼 작동한다는 피드백이 바로 보이지는 않겠지만,
00:02:02그래도 잘 작동하니 괜찮습니다. 앱에서 실제로 시연하기 전에
00:02:08이게 내부적으로 어떻게 돌아가는지 설명해 드리겠습니다. 그전에
00:02:13오늘의 후원사인 저에 대한 짧은 공지가 있습니다. Chase AI+에서 제공하는
00:02:18Claude Code 마스터 클래스에 이어, 최근 Codex 마스터 클래스도 출시했습니다.
00:02:24이제 여러분을 초보에서 AI 개발자로 만들어 줄 두 가지 도구가 준비된 셈이죠.
00:02:29기술적 지식이 전혀 없다고 가정하고 실제 사례에 집중하기 때문에 배우기에 가장 좋은 곳입니다.
00:02:34이 강의를 듣고 싶거나 며칠 뒤 열리는 무료 웨비나를 보시려면
00:02:40고정 댓글의 링크를 확인해 주세요. 그럼 본론으로 돌아가서, Codex Goals는
00:02:46기본적으로 더 정교하게 통합된 RALPH 루프입니다. RALPH 루프가 뭐냐고요?
00:02:51기억나지 않는 분들을 위해 간단히 짚고 넘어가죠. 본질적으로 RALPH 루프는
00:02:57Claude Code 같은 곳에서 사용할 때 단 한 줄의 코드, 즉 bash 루프일 뿐입니다.
00:03:03지금 화면에 보시는 것과 같죠. 아이디어는 이 코드 한 줄을 실행하면
00:03:09Claude Code나 Codex 같은 AI 시스템이 가동되어 prompt.md 파일을 읽는 것입니다.
00:03:16이 프롬프트에는 “무엇을 하려는지, 어떻게 할 것인지”와
00:03:21함께 완료로 간주할 기준이 적혀 있습니다. 예를 들어, 인증 관련 파일의
00:03:28테스트 커버리지를 높이려고 한다면, 커버리지가 75%에 도달했을 때
00:03:33목표는 커버리지를 75%까지 올리는 것입니다. 그래서 루프를 시작하게 되면
00:03:41루프가 프롬프트를 확인하고 AI 세션에 주입합니다. 세션이 한 번 실행되면
00:03:48프롬프트와 state.md 파일을 읽습니다. 상태 파일은 기본적으로
00:03:56작업 1, 2, 3이 있을 때 지금까지 무엇을 했고 잘 돌아가는지 확인하는 용도입니다.
00:04:03만약 처음 몇 번의 턴에서 작업 1을 완료했다면, 다음 턴에서
00:04:10상태 파일을 보고 “작업 2가 안 끝났네? 그럼 이번 세션에서
00:04:14작업 2를 해야겠다”고 판단합니다. 첫 턴에 실패하면 “이걸 시도해 봤다”고
00:04:18기록하고 다음으로 넘어가 모든 작업을 완료할 때까지 반복합니다. 에이전트가
00:04:25턴을 돌면 파일을 업데이트하고 턴이 종료된 후 루프가 계속됩니다.
00:04:30여러 파일을 계속 확인하며 무엇을 했고 무엇이 남았는지 점검하는 지속적인 루프죠.
00:04:35마침내 완료 기준에 도달하면 “다 끝났다”고 알립니다. 이게 RALPH 루프의 개념입니다.
00:04:41완전 자율이죠. 하지만 RALPH 루프가 더 많은 일을 하게 하려면
00:04:48과금 처리나 스마트한 토큰 사용 같은 추가적인 비계(scaffolding)가 필요합니다.
00:04:53기본적으로는 그런 게 없습니다. 만약 에이전트가 죽거나 사용자가 강제 종료하면
00:04:58정말 다 끝났는지 어떻게 알까요? 모든 걸 검증해 줄
00:05:02내장된 제3자 시스템도 없습니다. 그냥 코드 한 줄이니까요.
00:05:08이제 이를 Goals와 비교해 보죠. Goals도 큰 틀에서는 같습니다. 무언가를 시키면
00:05:15어떻게 할지 계획하고 내부 파일을 계속 업데이트하며 상태를 확인합니다.
00:05:19그리고 최종 상태에 도달하려고 노력하죠. 대략적인 그림은 비슷합니다.
00:05:23하지만 몇 가지 차이점이 있습니다. 우선 사용자에게 보이지 않는
00:05:29'continuation'과 'budget limit'이라는 두 마크다운 파일이 있습니다.
00:05:35이 파일들은 사용량 한도에 도달했을 때 Codex가 다르게 행동하게 합니다.
00:05:40매우 중요한 부분이죠. Goals 루프에서는 RALPH 루프와 달리
00:05:46작업을 우아하게 종료하는 방식이 있습니다. RALPH 루프는 예산이 다하면 그냥 끝이지만,
00:05:52Codex는 나중에 다시 이어서 작업할 수 있는 지점을 찾아냅니다.
00:05:57현실적으로 Codex가 Goals 루프를 돌 때 턴이 끝나면
00:06:03갈 수 있는 네 가지 경로가 있습니다. 첫째, 할 일이 남았고 예산도 충분하면
00:06:08계속 작업을 진행합니다. 둘째, 토큰 캡에 가까워지면
00:06:13budget limit.md 파일을 주입하여 턴을 우아하게 마무리하고
00:06:19지금까지 한 일과 한도를 늘렸을 때 앞으로 해야 할 일에 대한 최종 보고서를 줍니다.
00:06:25셋째, 프로젝트가 끝나면 update_goal 도구 호출을 수행하여
00:06:29상태를 변경합니다. 모든 결과물을 감사하고 모두 통과하면
00:06:34“목표 완료”라고 알리고 끝냅니다. 마지막으로 목표를 일시 정지하거나
00:06:39편집하거나 충돌에 대처하는 방법이 있습니다. 루프 도중 문제가 생겨도
00:06:45기존의 RALPH 루프처럼 손을 놓게 되는 일은 없죠. RALPH 루프보다
00:06:49더 정교하면서도 별도의 오케스트레이션 설정이 필요 없습니다.
00:06:54GSD나 GSD Superpowers 같은 툴을 써보셨다면 익숙하게 들릴 겁니다.
00:06:59그런 툴들이 하던 일을 Codex에서는 슬래시 명령어 하나로 끝내는 거죠.
00:07:05명령어 하나면 되니 실행하기가 정말 쉽습니다. GSD의 복잡한 기능을
00:07:1140분 동안 배울 필요 없이 '/goal'만 입력하면 Codex가 알아서 다 해줍니다.
00:07:18그럼 이제 실제로 테스트해 보죠. 우선 Plan 모드로 설정하겠습니다.
00:07:24Plan 모드에서 Goals로 전환하기가 매우 쉽기 때문입니다. 우리가 만들 게임은
00:07:30탑다운 아케이드 생존 게임이며, 모든 에셋도 직접 생성하게 할 겁니다.
00:07:35Claude Code와 비교했을 때 Codex의 장점은 OpenAI 제품이라서
00:07:39이미지 생성 모델인 GPT Images 2를 사용할 수 있다는 점입니다.
00:07:44드론 스프라이트, 적 3종, 보스 몬스터, 에너지 코어, 지뢰,
00:07:49배경, 배지, UI 에셋 등 상당히 많은 것들을 생성하도록 시킬 겁니다.
00:07:56프롬프트가 꽤 정교해야 합니다. 작업이 아주 오래 지속될 수 있으니까요.
00:08:01어떤 사람은 50시간 동안 연속으로 돌리기도 하던데, 그게 최선인지는 모르겠지만,
00:08:07막연한 아이디어를 Plan 모드에서 매우 구체적으로 다듬는 것이 핵심입니다.
00:08:15최종 결과물이 무엇이어야 하는지 아주 구체적으로 명시해야 합니다.
00:08:18구체적인 목표와 측정 가능한 조건이 없다면 결과물이 어설프게 나올 수 있습니다.
00:08:23따라서 바로 Goals 기능을 쓰기보다 Plan 모드에서 계획을 충분히 구체화하세요.
00:08:31단순히 “10억 벌어주는 제품 만들어 줘”라고만 하면 안 됩니다. 이제 검증 단계에서
00:08:36무엇을 테스트할지 Codex가 확인하게 됩니다. 모든 게 완료됐다고 하기 전에
00:08:43npm run build를 실행해 오류를 고치고, 개발 서버를 띄워 URL을 제공하고,
00:08:50자동화된 Playwright 검증 스크립트로 앱이 잘 뜨는지, 캔버스가 비어 있지 않은지,
00:08:55키보드 입력과 아이템 수집, 대미지 판정, 보스전 승리 등이 잘 되는지 확인해야 하죠.
00:09:02이 검증 항목들을 보고 만족스럽다면 다음으로 진행하면 됩니다.
00:09:07이제 계획을 실행하라고 시킬 건데, '/goal 이 계획을 구현해 줘'라고
00:09:12입력하고 제출하겠습니다. 그럼 여기 위에 뭐가 보이나요?
00:09:17'Goal'이라고 적힌 작은 배지가 생겼죠. 이제 Goal이 작동 중인 걸 알 수 있습니다.
00:09:24아까 말씀드린 대로 명령어를 쳤을 때 바로 피드백이 안 오는 건
00:09:29실험적 기능이라 UI 버그인 것 같습니다. 아직 Plan 모드라고 되어 있네요.
00:09:34취소하고 다시 '이 계획을 구현하기 위해 Goal을 사용해 줘'라고 하겠습니다.
00:09:39아직 좀 거친 면이 있지만 실제로 무엇을 해주는지 지켜보죠.
00:09:44이제 저는 손을 완전히 뗐습니다. 스스로 루프를 돌며 작업을 수행하고
00:09:49마지막에는 완성된 제품을 보여줄 겁니다. 약 12분 정도 작업이 진행되었는데
00:09:54이미 Image Gen 2 모델을 사용해 다양한 에셋을 만들고 있네요.
00:10:02정말 멋지죠. 그리고 생 터미널에서 작업하는 것보다 데스크톱 앱을 쓰면
00:10:09이런 모든 과정이 인라인으로 보여서 좋습니다. 개인적으로 Codex 앱이
00:10:12꽤 인상 깊었습니다. 그렇다고 Claude Code를 좋아하지 않는 건 아닙니다.
00:10:17두 도구를 번갈아 가며 사용하는데, 굳이 하나를 선택해야 한다는 생각은 어리석다고 봅니다.
00:10:28둘 다 쓰거나 병행하면 되니까요. 다만 Claude Code는 터미널에서 주로 쓰고,
00:10:34Codex는 데스크톱 앱의 사용자 경험이 꽤 즐거웠습니다.
00:10:39가끔 터미널에서 벗어나 기분 전환이 되기도 하고요. 지금까지는 아주 만족스럽습니다.
00:10:43약 30분 만에 작업이 끝났다고 하네요. 생각보다 빨리 끝났습니다.
00:10:49첫 결과물이 어떤지 확인해 보죠. 시간이 좀 남았으니 나중에 추가 요청도 해볼게요.
00:10:54Rift Salvage가 구현되었고 로컬 개발 서버가 실행 중입니다. 키보드와 터치로 조작 가능한
00:11:00캔버스 게임이며 적 스폰, 지뢰, 점수, 보호막, 보스전, 일시 정지 등 기능이 풍부하네요.
00:11:06알파 컷아웃이 적용된 11개의 이미지 에셋과 자동 검증 스크립트까지 만들었습니다.
00:11:11자기가 만든 것들을 쭉 보여주는데 꽤 멋지네요. 실제로 잘 작동하는지 확인하고
00:11:15더 보완할 점은 없는지 보겠습니다. 브라우저에서 직접 실행해 보죠.
00:11:20로딩 화면이 뜨네요. 대비가 좀 낮아서 여러분은 잘 안 보일 수도 있겠지만,
00:11:26제 작은 우주선이 보입니다. 지뢰를 피하고 아이템을 먹어야 하는 것 같네요.
00:11:32적들이 저를 쫓아오기도 하고요. 잘 작동하고 꽤 그럴싸합니다.
00:11:38그래픽을 좀 더 다듬어야겠지만, 모든 이미지가 고유하게 생성되었다는 게 놀랍네요.
00:11:44우선 보스전이 어떻게 생겼는지 확인하고 싶고, 레이저 같은 걸 쏘는
00:11:49전투 시스템도 추가하고 싶습니다. 더 기다리지 말고 바로 시켜보죠.
00:11:56Play 모드로 돌려서 일을 좀 더 시켜보겠습니다. 첫 시도는 꽤 성공적이었지만
00:12:03조금 더 복잡하게 만들고 싶습니다. 레이저를 쏘고 적들도 반격하는
00:12:10전투 시스템을 추가해 줄래? 보스전도 더 빨리 시작되게 하거나 테스트용 버튼을 만들어 줘.
00:12:17배경과 잘 구분되게 대비도 높여주고, 네 한계를 시험할 수 있도록
00:12:27더 복잡하게 만들 아이디어가 있다면 그것도 반영해 줘. 이렇게 계획이 나왔습니다.
00:12:32한 가지 알아두셔야 할 점은, Goals 시스템에서 각 목표 실행은
00:12:39현재 사용 중인 스레드나 세션에 묶여 있다는 것입니다. 지금까지 같은 채팅창에 있었으니
00:12:49같은 목표 스레드에 있는 거죠. 동일한 프로젝트에 대해 두 번째 Goals 실행을 하려면
00:12:56새로운 스레드나 채팅창을 열어야 합니다. 마치 터미널을 새로 여는 것과 같죠.
00:13:00그래서 이 계획을 복사해서 새 채팅창을 연 다음, '/goal'을 치고 붙여넣겠습니다.
00:13:0415분 만에 두 번째 Goal 단계가 완료되었습니다. 전투 업그레이드가 구현되었네요.
00:13:11게임이 어떻게 바뀌었는지 보죠. 로딩 화면은 비슷하지만 상단에 새로운 위젯이 생겼습니다.
00:13:15타겟 콤보와 보스 소환 신호 버튼이 있네요. 시작하자마자 총을 쏠 수 있고
00:13:19적들도 반격하며 체력이 생겼습니다. 보스 소환 버튼을 누르니 보스가 나타나는데,
00:13:24꽤 멋지게 생겼네요. 가장 놀라운 점은 이 모든 게 독창적인 에셋이라는 것입니다.
00:13:31Image Gen 2를 사용해 이 모든 걸 해냈다는 게 정말 인상적입니다.
00:13:37두 번의 실행에 총 45분 정도 걸렸는데, 누군가는 3일 동안 돌리기도 하더군요.
00:13:42하지만 가장 큰 장점은 실행이 매우 간단하다는 점입니다. 명확한 목표와
00:13:49성공 기준만 있다면 엄청난 결과물을 얻을 수 있고, 계속해서 작업을 이어갈 수 있습니다.
00:13:53직접 루프와 설정을 구축하거나 외부 오케스트레이션 툴을 쓸 필요 없이
00:13:58앱 안에 내장되어 있습니다. 물론 Claude Code에서도 할 수 있지만,
00:14:07이미지 생성을 위해 별도의 CLI나 MCP를 연동해야 하는 번거로움이 있죠.
00:14:12Codex는 하나의 통합된 시스템으로서 이 모든 걸 처리해 줍니다. 이번 영상이
00:14:18도움이 되셨길 바라며 Codex를 꼭 한번 써보시길 추천합니다. 데스크톱 앱이 정말 좋습니다.
00:14:24Claude Code와 함께 사용하면 가치가 더 커집니다. Claude Code로 계획을 짜고
00:14:33Codex Goals에 던져서 구현하게 하는 식으로요. 서로 보완하며 시너지를 내는 거죠.
00:14:40댓글로 여러분의 생각을 알려주세요. 고정 댓글에 있는 Chase AI+ 링크와
00:14:44웨비나 신청 링크도 확인해 주시고요. 그럼 다음 영상에서 뵙겠습니다!
00:14:50안녕히 계세요.
00:14:56제가 총을 쏘면 적들도 반격할 수 있고, 일종의 체력도 가지고 있습니다. 또한
00:15:01보스 신호를 보낼 수도 있죠. 저기 보스가 있네요. 실제로 꽤 멋지게 생겼는데, 제 생각에 이 게임의
00:15:09가장 멋진 점은 모든 독특한 에셋들입니다. 모든 것이
00:15:13오리지널 에셋이고, 이 모든 것을 Image Gen 2를 사용해 해냈다는 사실이 정말
00:15:19멋진 것 같습니다. 두 번의 실행 사이에 총 45분 정도밖에 걸리지 않았다는 걸 알고 있는데,
00:15:24스크린샷을 보면 어떤 사람들은 3일 동안 실행하기도 하더군요. 하지만 제가 생각하는 가장 좋은 부분은
00:15:30이러한 목표들을 실행하는 것이 얼마나 간단한가 하는 점입니다. 그냥 목표를 던져주기만 하면
00:15:36확고한 목표가 있다는 가정하에 알아서 미친 듯이 달려갈 것입니다. 우리가 이겼나요? 죽었는지
00:15:43아닌지는 모르겠지만, 방금 말씀드린 대로 이것과 Goals 기능 전반의 멋진 점은
00:15:48명확한 지향점과 성공이 무엇인지에 대한 명확한 기준만 있다면
00:15:54여기서 엄청난 것을 얻을 수 있고, 이것이 거의 영원히 돌아갈 수 있다는 아이디어입니다. 따라서
00:15:59직접 RALPH 루프와 비계를 설정하거나 외부의 오케스트레이션 레이어인
00:16:05GSD나 Superpowers를 사용할 필요 없이, 이미 내장되어 있는 셈이죠. 저희가 여기서 한 것처럼
00:16:10구현하기 어려운 깔끔한 기능들을 추가할 수 있습니다. Claude Code 안에서도 가능하지만
00:16:15만약 이 작업에 Claude Code를 사용했다면 분명 할 수는 있었겠지만,
00:16:18그 모든 이미지 생성을 위해 Higgsfield CLI나 Higgsfield MCP 같은 것을 구현했어야 했을 겁니다.
00:16:24하나로 통합된 전체 시스템이 아니라요. 그래서 여러분이 이 영상에서
00:16:31무언가 얻어가셨기를 바라며 Codex를 꼭 확인해 보시길 강력히 추천합니다. 제가 계속 말해왔듯
00:16:35데스크톱 앱이 정말 마음에 듭니다. 이 기능은 정말 멋지고,
00:16:40Claude Code와 병행해서 사용할 수도 있습니다. Claude Code에서 계획을
00:16:44만들고 Codex Goals에 던져서 구현하게 한 뒤, 다시 Claude Code로 작업 결과물을
00:16:49검토하게 하는 식으로 주고받는 거죠. 거기서 가장 큰 가치를 얻을 수 있다고 생각합니다.
00:16:53전체가 부분의 합보다 큰 그런 느낌이죠. 언제나처럼 어떻게 생각하셨는지
00:17:02알려주시고, 고정 댓글에 링크가 있는 Chase AI+도 꼭 확인해 보세요.
00:17:07며칠 뒤에 열리는 웨비나 링크도 있으니 거기서 뵙기를 바랍니다.
00:17:12그럼 다음에 또 뵙겠습니다.