사이트 작업은 Claude Code에서 Claude Opus 5.5로 하고 있습니다. 여기에 OpenAI의 Codex(GPT-6.1 Terra)를 연결해, 코드 작성 일부를 넘기는 방식을 만들었습니다. 계획과 판단, 검토는 Opus 5.5가 맡고 코드 작성은 일에 맞는 모델로 넘깁니다.
Opus 5.5로 모든 일을 시킬 때의 부담
Opus 5.5는 판단과 디테일이 좋은 만큼 토큰을 많이 씁니다. 문서와 코드를 읽고, 계획을 세우고, 코드를 쓰고, 다시 검토하는 일까지 전부 한 모델이 하면 사용량이 빠르게 찹니다.
그런데 일의 상당 부분은 판단보다 작성에 가깝습니다. 정해진 계획대로 코드를 길게 써 내려가는 일까지 가장 비싼 모델이 할 필요는 없습니다. 예전 개발 도구의 opusplan 모드처럼, 계획은 Opus가 하고 실행은 다른 모델이 하는 구성을 떠올렸습니다.
벤치마크에서 본 토큰과 비용
OpenAI가 공개한 Agents’ Last Exam은 컴퓨터로 전문 작업을 수행하는 능력을 평가합니다. 이 평가에서 GPT-6.1 Terra를 최대 추론 강도로 사용했을 때 Claude Opus 5.5와 비교한 결과입니다.
| 비교 항목 | GPT-6.1 Terra와 Claude Opus 5.5 |
|---|---|
| 토큰 효율 | Terra가 3배 이상 효율적 |
| 토큰 단가 | Terra가 Opus의 1/4 |
| 작업당 비용 | Terra가 약 9배 저렴 |
이는 OpenAI의 해당 벤치마크 결과이며 모든 작업에서 같은 차이가 난다는 뜻은 아닙니다. 두 서비스의 구독 사용 한도가 같은 비율로 줄어든다는 의미도 아닙니다. 아래에서 소개하는 실제 작업 방식의 절감 효과는 따로 확인하고 있습니다.
그렇다고 무조건 싼 모델로 넘기면 결과의 질이 떨어집니다. 그래서 기준은 하나입니다. 비용은 줄이되, 결과물의 완성도는 낮추지 않는다.
어떻게 연결했나
Codex는 ChatGPT 요금제로 돌아가서, Claude 사용량과 따로 계산됩니다. 상세 이미지를 만들 때 이미 Codex를 Claude Code에 연결해 GPT 이미지 생성을 쓰고 있었습니다. 같은 연결에 코드 작성 기능을 하나 더해, Opus 5.5가 쓴 계획을 Codex가 받아 정해진 폴더 안에서만 파일을 고치게 했습니다.
- 계획·판단·검토: Claude Opus 5.5
- 같은 수정을 여러 파일에 반복하는 일: Claude Sonnet 5.5
- 로직이 많은 코드 작성: Codex, GPT-6.1 Terra (추론 강도 high)
Codex는 프로젝트의 규칙 문서(AGENTS.md)를 스스로 읽기 때문에, 이미 적어 둔 코딩 규칙이 그대로 적용됩니다. 커밋과 배포는 하지 않도록 막아 두었습니다.
어떻게 나누나
GPT-6.1 Terra는 코딩은 빠르고 정확하지만 시각적인 판단은 약하다는 평가가 있고, 작업하는 동안 화면을 직접 볼 수도 없습니다. 그래서 먼저 묻는 질문은 코드의 양이 아니라 이것입니다.
눈으로 보고 판단해야 하는 일인가.
- 레이아웃, 간격, 글자 크기, 색, 움직임의 타이밍처럼 눈으로 맞추는 일은 넘기지 않습니다
- 값 하나, 1픽셀 보정, 문구 수정처럼 작은 일도 넘기지 않습니다
- 같은 수정을 여러 파일에 반복하는 일은 Sonnet 5.5에 맡깁니다
- 관리자 기능, 데이터 연결, 입력 검증처럼 화면과 상관없는 로직이 많은 일은 GPT-6.1 Terra에 넘깁니다
새 페이지처럼 두 가지가 섞인 일은 나눕니다. 화면 구조와 디자인 값은 먼저 정해서 계획에 적어 두고, 그 위의 로직만 넘깁니다. 결과가 돌아오면 디자인 값이 바뀌지 않았는지부터 확인합니다.
작은 일은 넘기지 않는 이유
첫 시험으로 함수 하나를 추가하는 일을 GPT-6.1 Terra에 넘겨 보았습니다. 결과는 정확했습니다. 계획한 파일 하나만 고쳤고, 프로젝트에 적어 둔 규칙도 지켰고, 다른 파일은 건드리지 않았습니다.
다만 이렇게 작은 일에도 약 9만 5천 토큰과 11.6초가 들었습니다. 계획을 쓰고 결과를 다시 검토하는 시간까지 더하면, 작은 일은 직접 고치는 편이 빠르고 쌉니다. 넘기는 일은 크고, 눈으로 판단할 필요가 없는 일로 한정했습니다.
넘겨도 검토는 남는다
다른 모델이 쓴 코드는 모두 Opus 5.5가 변경 내역을 직접 확인합니다. 프로젝트의 점검 목록으로 다시 보고, 고칠 것이 크면 무엇이 틀렸는지 적어 한 번 더 넘깁니다. 두 번 해도 맞지 않으면 직접 고칩니다.
결국 이 방식에서 줄어드는 것은 쓰는 시간이고, 줄지 않는 것은 보고 판단하는 시간입니다. 디자인 작업이 많은 사이트라면 대부분의 일은 여전히 직접 하게 됩니다. 비용이 실제로 줄어드는 곳은 관리자 기능이나 견적 계산처럼 로직이 많은 작업입니다.
Claude Code에 Codex 연결하기
준비물은 Claude Code와, ChatGPT 계정으로 로그인한 Codex 두 가지입니다. 별도 서버나 API 키는 필요 없습니다. Claude Code가 터미널 명령으로 Codex를 직접 부르는 방식이라 설정이 가장 간단합니다.
터미널을 쓰지 않아도 됩니다. 앱만 쓴다면 1번 대신 아래 "앱으로 준비하기"를 따르고, 2번부터 같습니다.
1. Codex 설치와 로그인 (터미널) 터미널에서 아래 명령을 차례로 실행합니다. 로그인 창이 열리면 ChatGPT 계정으로 로그인합니다.
npm install -g @openai/codex@latest codex login
GPT-6.1 Terra는 최신 Codex에서만 쓸 수 있습니다. 아래 명령으로 연결을 확인하고, "model is not supported" 오류가 나면 Codex를 다시 업데이트합니다.
codex exec -m gpt-6.1-terra "이 폴더의 파일 목록을 알려 줘"
1. 앱으로 준비하기 (터미널 없이) Mac 기준입니다. 명령은 Claude가 대신 실행하므로 직접 입력할 것은 없습니다.
- ChatGPT 데스크톱 앱을 설치하고, 앱 안의 Codex를 열어 ChatGPT 계정으로 로그인합니다
- Codex 모델 선택 목록에 GPT-6.1 Terra가 보이는지 확인합니다. 안 보이면 앱을 최신 버전으로 업데이트합니다
- Claude 데스크톱 앱을 열고 Code 탭에서 작업할 프로젝트 폴더를 엽니다
- 아래 글을 붙여 넣습니다. Claude가 앱에 들어 있는 Codex를 찾아 연결을 시험합니다
이 컴퓨터에 설치된 Codex를 찾아 줘. 터미널용으로 설치된 게 없으면 ChatGPT 앱이나 Codex 앱 안에 들어 있는 것도 찾아 봐(예: /Applications/ChatGPT.app 안의 codex). 찾으면 그 Codex로 GPT-6.1 Terra 모델을 써서 "이 폴더의 파일 목록을 알려 줘"를 실행해 연결을 시험해 줘. 되면 찾은 실행 파일 경로를 알려 주고, 다음 요청에서 codex 명령을 쓸 때는 그 경로를 써.
명령 실행을 허용할지 묻는 창이 뜨면 허용합니다. 연결이 확인되면 이어서 2번 요청문을 붙여 넣습니다.
2. Claude Code에 요청문 붙여 넣기 Claude Code를 열고 아래 글을 그대로 복사해 붙여 넣습니다. Claude가 누가 코드를 쓸지 정하는 기준 문서(스킬)와, 켜고 끄는 스위치를 만듭니다. Codex를 실행해도 되는지 묻는 창이 뜨면 허용합니다.
Codex 위임 방식을 만들어 줘. 1. ~/.claude/skills/codex-delegate/SKILL.md 스킬을 만들어. 내용: - 코드를 쓰기 전에 누가 쓸지 정한다. 계획·판단·검토는 Claude가 한다. - 먼저 묻는다: 눈으로 보고 판단하는 일인가. 레이아웃, 간격, 글자, 색, 모션 타이밍, 값 하나, 1px, 문구 같은 일은 직접 한다. - 같은 수정을 여러 파일에 반복하는 일은 Sonnet 하위 에이전트에 맡긴다. - 화면과 상관없는 로직이 많은 일(대략 100줄 이상: 관리자 기능, API·DB, 데이터 연결, 입력 검증, 스크립트)은 Codex에 넘긴다. - Codex에 넘길 때는 목표, 고칠 파일, 지킬 값과 규칙, 건드리지 말 것, 확인 방법을 담은 계획을 쓰고, 프로젝트 폴더에서 이 명령으로 실행한다. codex exec -m gpt-6.1-terra -c model_reasoning_effort=high --sandbox workspace-write "계획 내용. 커밋·배포 금지. 계획 밖 파일은 건드리지 말 것." - codex 명령이 없으면 앱 안에 들어 있는 Codex 실행 파일 경로를 찾아 그 경로로 실행하고, 스킬에 그 경로를 적어 둔다. - 넘기기 전에 나에게 한 줄로 알린다. - 끝나면 git diff로 바뀐 내용을 직접 검토한다. 틀리면 고칠 점을 적어 한 번 더 넘기고, 두 번 해도 안 되면 직접 한다. - 스킬 끝에 아래 2번 절의 원문을 적어 둔다(다시 켤 때 쓰게). 2. ~/.claude/CLAUDE.md 끝에 이 절을 추가해. 이 절이 있을 때만 스킬을 쓴다. ## Codex 위임 (켜짐) - 코드를 쓰기 전에 codex-delegate 스킬로 직접·Sonnet·Codex 중 누가 쓸지 정한다 - 끄기: "Codex 위임 꺼 줘"라고 하면 이 절을 지운다
이렇게 만들면 모든 프로젝트에 적용됩니다.
한 프로젝트에만 쓰려면 요청문의 2번에서 ~/.claude/CLAUDE.md를 그 프로젝트의 CLAUDE.md로 바꿉니다.
3. 켜고 끄기 스위치는 CLAUDE.md에 들어간 절 하나입니다. Claude Code에 말로 요청하면 됩니다.
- 끄기: "Codex 위임 꺼 줘". 절만 지워지고, 다음 대화부터 예전처럼 Claude가 모든 코드를 씁니다
- 다시 켜기: "Codex 위임 다시 켜 줘". 스킬에 적어 둔 원문으로 절을 다시 넣습니다
- 한 번만 다르게: "이건 직접 해", "이건 Codex로 해"라고 하면 그 말이 기준보다 우선합니다
결과물이 마음에 들지 않거나 토큰이 기대만큼 줄지 않을 때 끄면 됩니다. 스킬 파일은 남아 있어도, 절이 없으면 쓰이지 않습니다.
써 보며 확인할 것
이 방식이 실제로 비용을 줄이는지, 결과물의 질을 지키는지는 실제 작업에서 확인하는 중입니다. 작업마다 맡긴 쪽, 든 비용, 다시 고친 정도를 기록하고 있습니다. 결과가 나오면 이 글에 이어서 적겠습니다.
결과가 마음에 들지 않거나 비용이 기대만큼 줄지 않으면, 설정 한 줄을 지워 예전 방식으로 바로 되돌릴 수 있게 만들어 두었습니다.