"코덱스(Codex)와 오푸스(Opus) 중 뭘 쓸까"는 올해 AI 코딩 도구를 고르는 팀이 가장 많이 검색하는 질문 중 하나가 됐습니다. 지난 2월 저희가 Claude Opus 4.6과 GPT-5.3 Codex를 비교했을 때만 해도 벤치마크와 가격표를 나란히 놓는 것으로 충분했는데요. 그 사이 양쪽 모두 세대가 바뀌었습니다. OpenAI는 GPT-5.6을, Anthropic은 Claude Opus 5를 내놨고, 두 회사의 에이전트 하네스인 Codex와 Claude Code도 각각 달라졌죠.
그런데 이번에는 점수표를 다시 그리고 싶지 않았습니다. 벤치마크는 두 모델이 얼마나 똑똑한지는 알려주지만, 실제 외주 프로젝트를 통째로 맡겼을 때 어디까지 해내고 어디서 무너지는지는 알려주지 않기 때문이에요. 외주개발사인 저희에게는 그게 곧 견적과 마감의 문제고요.
그래서 지난 7월, 실제 고객 프로젝트를 익명화한 문서 6종을 GPT-5.6 Sol Max(Codex)와 Claude Opus 5(Claude Code)에 똑같이 맡겼습니다. 같은 실험에 Fable 5와 Kimi K3도 참여했는데, 4개 모델 전체 비교와 클로드 집안 비교(Fable vs Opus)는 별도 글로 정리했습니다. 이 글은 회사도 다르고 하네스도 다른 두 제품, 그러니까 실제로 많은 팀이 저울에 올리는 바로 그 조합만 깊게 봅니다.
결과부터 말씀드리면, 화면은 GPT 쪽이 압도적으로 예뻤습니다. 촬영 내내 이견이 없었어요. 그런데 실무 시나리오 10개를 실제 화면에서 끝까지 눌러본 판정에서 GPT-5.6 Sol은 닫힌 장면이 0개, Claude Opus 5는 9개였습니다. 가장 예쁜 결과물과 가장 많이 닫힌 결과물이 정반대 자리에 있었던 겁니다.
이 글을 읽으면 아래와 같은 차별화 인사이트를 얻어갈 수 있습니다.
- Codex와 Claude Code라는 서로 다른 하네스가 같은 프롬프트를 받고 어떻게 다르게 일했는지 세션 로그로 확인할 수 있습니다.
- 화면 완성도가 가장 높았던 결과물이 왜 검수에서 0개로 끝났는지, 증거 화면과 함께 볼 수 있습니다.
- Opus 5가 9개를 닫은 결정적 습관 하나와, 그런데도 놓친 장면 하나를 알 수 있습니다.
- 두 모델을 어떤 프로젝트의 어떤 단계에 배치할지, 실무 조합 기준을 잡을 수 있습니다.
그래서 이 글은 코덱스와 오푸스의 서열을 정하는 글이 아닙니다. 같은 조건에서 두 제품이 무엇을 우선하고 무엇을 포기했는지, 그 성향 차이가 발주자에게 어떤 의미인지 보여주는 검증형 후기죠.
실험 조건: 모델만 바꾼 게 아니라 제품을 그대로 썼습니다
실험 대상은 농산물 수거센터의 거래 관리 시스템입니다. 센터, 본사, 공공기관, 공급자, 바이어까지 이해관계자가 다섯 축인 실제 케이스를 익명화했고, 입력 자료 6종, 프롬프트 한 줄, 시작 시각, 최대 권한은 네 제품 모두 같게 맞췄습니다. 딱 하나 다른 게 하네스였어요. GPT-5.6 Sol Max는 OpenAI의 Codex에서, Claude Opus 5는 Claude Code에서 각자의 네이티브 환경 그대로 돌렸습니다.

입력 자료, 프롬프트, 시작 시각, 권한은 동일하게 맞추고 하네스는 각자의 것을 그대로 썼습니다. 이미지 출처 : YouTube 'Kimi K3 vs 클로드, AI 4개에 같은 외주 프로젝트를 통째로 맡겨봤습니다' by 리트머스
이 선택은 한계를 하나 안고 갑니다. 하네스가 다르니 결과 차이가 모델 때문인지 도구 때문인지 완전히 분리할 수는 없거든요. 대신 얻는 게 있습니다. Claude Code에 Codex를 붙여 쓰는 사람은 거의 없으니, 이 기록은 통제 실험이 아니라 제품을 그대로 썼을 때 실제로 벌어지는 일에 가깝습니다. 프롬프트는 "프로젝트 자료 보고 실제 개발 좀 끝까지 해줘. 지금 있는 기본 환경에서 1차 출시본으로 최대한 완성하고, 네가 직접 실행해서 문제 없는지도 확인해줘." 한 줄이었고, 평가표도 구현 순서도 기술 스택 지정도 없었습니다. 실제 발주가 그렇게 들어오니까요. 참고로 영상과 이 글의 데모 데이터는 모두 익명화된 가상 정보입니다.
일하는 방식부터 달랐습니다: 혼자 끝까지 vs 의심하며 되돌아보기
Codex: 부하 0명, 컴팩션 1회, 테스트 12개
세션 로그에서 가장 먼저 눈에 띈 건 Codex의 고집이었습니다. 다른 제품들이 서브 에이전트를 띄우거나 작업 목록을 잘게 쪼개는 동안, Codex는 처음부터 끝까지 혼자 일했어요. 로그를 열어보니 에이전트를 스폰하지 말라는 지시문이 들어 있었고, 촬영 중에는 컨텍스트 윈도우가 상대적으로 작은데도 모든 걸 한 세션 안에서 처리하려 한다는 평이 나왔습니다. 그래서인지 세션 중간에 이전 대화를 요약해 기억 공간을 비우는 컴팩션이 한 차례 일어났죠.

Codex 세션 로그. 서브 에이전트를 띄우지 말라는 지시가 있었고, 처음부터 끝까지 단독으로 진행했습니다. 이미지 출처 : YouTube 'Kimi K3 vs 클로드, AI 4개에 같은 외주 프로젝트를 통째로 맡겨봤습니다' by 리트머스
그렇다고 Codex가 게을렀느냐 하면 반대예요. 소요 시간은 1시간 18분 28초로 넷 중 가장 길었고, 컴팩션 이후에도 계획을 다시 세워 작업을 이어간 기록이 로그에 남아 있었습니다. 소스는 약 1만 3천 줄이 늘었는데 자체 테스트는 12개로 넷 중 가장 적었고요. 오래 짓고 많이 지었지만, 지은 것을 스스로 다시 검증하는 데 쓴 힘은 가장 적었다는 것이 Codex 세션 로그의 요약입니다.
Opus: 테스트 53개를 통과시킨 뒤에 브라우저를 열었습니다
Claude Opus 5도 서브 에이전트 없이 혼자 일했습니다. 다만 방식이 달랐어요. 최대 리즈닝 설정에서 작업 여덟 개를 직렬로 처리하면서 자체 테스트 53개를 만들었고, 소스는 약 1만 6천 줄로 넷 중 가장 많이 썼습니다. 결정적인 건 그다음이었습니다. 테스트가 전부 통과한 뒤에도 완료를 선언하지 않고 실제 브라우저를 띄워 결과물을 다시 눌러봤고, 그 과정에서 로그인, 라우팅 가드, 모바일 환경변수 버그 세 개를 스스로 찾아 고친 기록이 남아 있었죠. 완료 선언 전에 자기 결과물을 의심하는 루프, 이것이 두 제품의 판정을 가른 결정적 차이였다고 저희는 보고 있습니다.
두 세션 로그를 나란히 놓으면 이렇습니다.
- GPT-5.6 Sol Max(Codex): 단독 진행, 에이전트 스폰 금지 지시문, 컴팩션 1회, 자체 테스트 12개, 소스 약 1만 3천 줄 증가
- Claude Opus 5(Claude Code): 단독 직렬 진행, 최대 리즈닝, 자체 테스트 53개, 소스 약 1만 6천 줄 증가, 완료 선언 전 실제 브라우저 재검증
- 공통점: 서브 에이전트 없음, 같은 문서 6종과 같은 프롬프트 한 줄
소요 시간은 1시간 15분 24초로 Codex와 3분 차이였습니다. 비용은 Codex 세션이 약 $22.16, Opus 세션이 약 $71.35로 추정됐는데, 이 숫자는 우열의 근거로 쓰지 않으셨으면 해요. 공개 단가 기준 추정치인 데다 제품마다 캐시와 토큰을 집계하는 방식이 달라서 직접 비교가 어렵거든요.

네 제품의 소요 시간과 세션 비용. 비용은 공개 단가 기준 추정치이며 집계 방식이 달라 직접 비교는 어렵습니다. 이미지 출처 : YouTube 'Kimi K3 vs 클로드, AI 4개에 같은 외주 프로젝트를 통째로 맡겨봤습니다' by 리트머스
첫인상은 GPT의 압승이었습니다
결과물을 브라우저에서 처음 열었을 때 반응은 한쪽으로 쏠렸습니다. 대시보드 레이아웃, 텍스트 위계, 탭을 바꿀 때 내려오고 올라오는 전환 애니메이션까지, "이거는 GPT-5.6이 넘사 아닌가"라는 말이 촬영 중에 그대로 나왔어요. 저희가 새 모델이 나올 때마다 제일 먼저 돌리는 테스트, 그러니까 어워즈 수상 웹사이트를 에셋까지 그대로 벤치마킹하게 시키는 과제를 유일하게 통과한 것도 GPT-5.6 계열이었습니다. 프론트엔드 감각만큼은 진짜라는 뜻입니다.

GPT-5.6 Sol의 센터 운영 대시보드. 화면 완성도는 가장 높았지만 로그인 없이 바로 열렸습니다. 화면의 이름은 익명화된 가상 정보입니다. 이미지 출처 : YouTube 'Kimi K3 vs 클로드, AI 4개에 같은 외주 프로젝트를 통째로 맡겨봤습니다' by 리트머스
그런데 그 예쁜 대시보드가 열리는 방식이 첫 번째 단서였습니다. 주소를 치면 로그인 창 없이 업무 화면이 바로 나왔거든요. 촬영 중에 나온 진단은 "GPT는 프로토타입을 만들려고 한다"였습니다. 완성 전에 모양을 먼저 보여주는 시연용 시제품 말이죠. 프롬프트는 1차 출시본을 요구했는데, 결과물은 포트폴리오용 시안에 가까웠던 셈입니다.

네 제품의 첫 화면 비교. 세 제품은 로그인 화면에서 시작했고, GPT만 대시보드에서 시작했습니다. 이미지 출처 : YouTube 'Kimi K3 vs 클로드, AI 4개에 같은 외주 프로젝트를 통째로 맡겨봤습니다' by 리트머스
화면 뒤로 들어가자 갈렸습니다: Codex가 놓친 세 장면
로그인이 없다는 건 서버도 안 막고 있다는 뜻이었습니다
로그인 화면이 없는 게 화면 하나 빠진 문제였다면 심각하지 않았을 겁니다. 그런데 공급자 API 주소를 직접 열어보니 이름과 연락처가 담긴 JSON이 인증 없이 그대로 내려왔습니다. 프론트에서 화면을 감추는 것과 서버에서 데이터를 막는 것은 다른 문제인데, 이 결과물은 둘 다 하지 않고 있었어요. 개인정보가 걸린 시스템이라면 이 하나만으로 출시가 불가능한 수준의 구멍입니다.

인증 없이 열린 공급자 API 응답. 화면의 이름과 연락처는 모두 익명화된 가상 정보입니다. 이미지 출처 : YouTube 'Kimi K3 vs 클로드, AI 4개에 같은 외주 프로젝트를 통째로 맡겨봤습니다' by 리트머스
요구사항에 있던 45분 취소 버튼이 없었습니다
요구사항 문서에는 현장 작업자가 45분 안에 자기 거래를 사유와 함께 취소할 수 있어야 한다는 규칙이 있었습니다. 45분이라는 숫자는 장식이 아니라 역할별 권한을 가르는 규칙이에요. 그래서 GPT 모바일 앱의 기록 화면과 보관함을 모두 열어봤는데, 취소로 들어가는 버튼 자체가 만들어지지 않았습니다. 다른 세 제품이 각자의 방식으로 구현한 기능이 여기서는 통째로 빠져 있었죠.

GPT 모바일 앱의 동기화 보관함. 기록은 남지만 취소로 들어가는 진입점이 없습니다. 이미지 출처 : YouTube 'Kimi K3 vs 클로드, AI 4개에 같은 외주 프로젝트를 통째로 맡겨봤습니다' by 리트머스
저장됐다고 했는데 옆 화면은 몰랐습니다
본사가 감자 기준가를 812원으로 바꾸자 웹 화면에는 812원으로 변경했다는 완료 문구가 떴습니다. 그런데 현장 모바일 앱을 열어보니 매입 단가는 여전히 이전 가격인 810원이었어요. 이 상태로 2kg을 입력하면 금액이 잘못 계산되죠. 촬영 중 진단은 짧았습니다. "이건 그냥 버그네요."

웹에서는 812원으로 변경됐지만 GPT 모바일 앱의 매입 단가는 810원 그대로입니다. 이미지 출처 : YouTube 'Kimi K3 vs 클로드, AI 4개에 같은 외주 프로젝트를 통째로 맡겨봤습니다' by 리트머스
여기서 한 가지는 분명히 해두고 싶습니다. 이 장면들은 이번 실행에서 관찰된 기록이지 GPT-5.6이라는 모델의 능력에 대한 단정이 아니에요. 프론트를 신경 쓴 만큼 백엔드가 밀린 트레이드오프 아니냐는 질문도 촬영 중에 나왔는데, 저희 결론은 달랐습니다. 디자인에 대한 명시적 요구가 있었던 게 아니라 구현을 요구했으니, 이건 취향이 아니라 요구사항 준수의 문제라는 거죠.
Opus는 어땠나: 문을 달고, 되돌리고, 그래도 하나는 놓쳤습니다
권한 밖 페이지는 화면부터 막혔습니다
같은 역할 진입 시나리오에서 Opus 결과물은 정반대로 움직였습니다. 로그인한 계정으로 권한 밖 페이지에 들어가자 "요청한 화면을 찾을 수 없습니다"라는 안내가 떴고, 화면 상단 탭도 역할별로 나뉘어 있었어요. 세션 로그에서 로그인과 라우팅 가드 버그를 스스로 고친 기록이 여기서 결과로 나타난 겁니다.

권한 밖 페이지에 들어가자 Opus 결과물은 "요청한 화면을 찾을 수 없습니다"로 막았습니다. 이미지 출처 : YouTube 'Kimi K3 vs 클로드, AI 4개에 같은 외주 프로젝트를 통째로 맡겨봤습니다' by 리트머스
45분 취소는 사유까지 남았습니다
Codex 결과물에 없던 취소 버튼이 Opus 모바일 앱에는 있었습니다. 거래를 고르고 취소 사유를 적은 뒤 확정하면 취소 기록이 남았고요. 요구사항 문서의 문장 하나가 화면에서 버튼 하나와 입력창 하나로 정확히 번역된 장면이었습니다. 화려하지는 않지만, 발주자가 검수에서 가장 먼저 확인하는 건 이런 장면이에요.

Opus 모바일 앱의 거래 취소 화면. 사유를 입력하고 확정하면 취소 기록이 남습니다. 이미지 출처 : YouTube 'Kimi K3 vs 클로드, AI 4개에 같은 외주 프로젝트를 통째로 맡겨봤습니다' by 리트머스
마감 후 정정전표는 넷 중 유일하게 닫혔습니다
실무 관점의 백미는 마감 후 정정 시나리오였습니다. 마감된 원거래는 그대로 두고 바뀐 숫자와 사유를 별도 전표로 남기는 게 회계의 기본 규칙인데, 이 장면을 소수점 수량(-0.2kg)과 금액(-240원)까지 포함해 끝까지 닫은 건 네 제품 중 Opus 하나뿐이었습니다. 새 데이터를 만드는 순방향보다 잘못된 데이터를 규칙대로 되돌리는 역방향에서 실력이 갈린다는 것, 이 실험이 남긴 가장 큰 교훈입니다.

마감 후 정정 시나리오의 Opus 결과물. 원본은 그대로 두고 변경량과 사유가 이력으로 남습니다. 이미지 출처 : YouTube 'Kimi K3 vs 클로드, AI 4개에 같은 외주 프로젝트를 통째로 맡겨봤습니다' by 리트머스
그런데 오프라인 복구는 Opus도 닫지 못했습니다
공정하게 적어야 할 장면이 하나 있습니다. 인터넷이 끊긴 현장에서 거래를 보관했다가 연결 복구 뒤 중복 없이 전송하는 오프라인 시나리오는 네 제품 모두 '부분' 판정이었는데요. 라이브 시연에서는 오히려 GPT와 Kimi 쪽이 오프라인 대기열 화면까지 보여줬고, Opus와 Fable은 전송 대기 상태에서 더 나아가지 못했습니다. Opus가 10개 중 9개에서 멈춘 이유가 바로 이 장면이에요. 넷 다 부분에 그친 이유는 여러 기기가 같은 거래를 올렸을 때의 충돌 정책을 고객도 정해주지 않았기 때문이었습니다. 검증 루프가 있는 모델도 정답이 없는 요구는 끝까지 닫지 못했고, 그런 요구는 구현이 아니라 질문으로 남겨야 한다는 결론이 여기서 나왔습니다.

오프라인 시나리오 시연. GPT와 Kimi는 대기열 화면까지 보여줬고 Opus와 Fable은 전송 대기에서 멈췄습니다. 판정표에서는 넷 다 '부분'이었습니다. 이미지 출처 : YouTube 'Kimi K3 vs 클로드, AI 4개에 같은 외주 프로젝트를 통째로 맡겨봤습니다' by 리트머스
판정: 0 vs 9, 그리고 이 숫자를 읽는 법
실무 시나리오 10개를 마지막 증거까지 닫혔는가 기준으로 판독한 결과, GPT-5.6 Sol은 0개, Claude Opus 5는 9개였습니다. 품질 총점이 아니라 이 실험의 장면 10개를 끝까지 닫았는가 하는 기준이에요. 0이라는 숫자도 그렇게 읽어야 합니다. 판정표를 보면 GPT는 매입 등록, 대시보드 전파, 정정전표, 오프라인처럼 동작은 하지만 마지막 증거가 미완인 '부분' 장면이 네 개 있었거든요.

네 제품의 판독 결과표. GPT-5.6 Sol은 부분 4개에 닫힌 장면 0개, Claude Opus 5는 9개를 닫았습니다. 이미지 출처 : YouTube 'Kimi K3 vs 클로드, AI 4개에 같은 외주 프로젝트를 통째로 맡겨봤습니다' by 리트머스
더 흥미로운 건 코드량과 판정의 관계였습니다. 세션 중 소스 라인 증가를 가로축에, 닫힌 장면 수를 세로축에 놓으면 GPT는 약 1만 3천 줄에 0개, Opus는 약 1만 6천 줄에 9개로 찍힙니다. 많이 만든 순서와 끝까지 닫은 순서는 같지 않았어요.

가로축은 세션 중 소스 라인 증가, 세로축은 닫힌 장면 수. 소스 라인은 규모의 참고값이지 품질 점수가 아닙니다. 이미지 출처 : YouTube 'Kimi K3 vs 클로드, AI 4개에 같은 외주 프로젝트를 통째로 맡겨봤습니다' by 리트머스
정리하면 이렇습니다.
- GPT-5.6 Codex: 화면과 프로토타입의 힘. 요구를 빠르게 모양으로 만들어 이해관계자에게 보여주고 피드백을 받는 단계, 프론트엔드 시안이 필요한 상황에서는 이번 기록에서도 가장 강했습니다.
- Claude Opus 5: 끝까지 닫는 힘. 로그인, 취소, 정정처럼 역방향 흐름까지 검증돼야 하는 출시용 개발이라면 이번 기록에서는 이쪽이 앞섰습니다.
- 둘을 가른 것은 코드량도 소요 시간도 아니라, 완료 선언 전에 자기 결과물을 의심하는 루프의 유무였습니다.
완료 판정은 새 데이터를 만들 때가 아니라, 잘못된 데이터를 규칙대로 되돌릴 수 있을 때 하는 겁니다. 영상에서 저희가 이 실험의 결론으로 꺼낸 문장인데, Codex와 Opus의 차이를 한 줄로 줄이면 결국 이 문장이 됩니다.

영상의 결론 카드. 이미지 출처 : YouTube 'Kimi K3 vs 클로드, AI 4개에 같은 외주 프로젝트를 통째로 맡겨봤습니다' by 리트머스
그래서 실무에서는 어떻게 조합하나
촬영 막바지에 나온 아이디어 하나가 저희 생각에는 이 비교의 가장 실용적인 결론입니다. 1차 출시본의 화면은 GPT에게 맡기고, 구현과 검증은 다른 모델에 맡기는 조합이에요. Codex가 주어진 지시문을 아주 충실하게 따르는 성향이라, 시스템 프롬프트와 AGENTS.md를 어떻게 쓰느냐에 따라 결과가 달라질 여지도 크고요. 다시 말하지만 이건 보편적인 모델 순위가 아니라 같은 프로젝트를 두 제품에 한 번 맡겨 본 기록입니다. 다만 그 한 번의 기록이 "어느 쪽이 더 좋은 모델인가"보다 "이 프로젝트에 지금 필요한 게 화면인가 마감인가"를 먼저 묻게 만들었다는 건 분명합니다.
전체 4개 모델의 실험 과정과 열 개 장면의 판독 근거는 영상에서 확인하실 수 있습니다. Kimi K3 vs 클로드, AI 4개에 같은 외주 프로젝트를 통째로 맡겨봤습니다
모델 조합보다 중요한 것
리트머스는 AI와 바이브코딩을 실전 외주개발에 가장 깊게 붙여 쓰는 개발사입니다. 저희는 새 모델이 나올 때마다 이렇게 실제 프로젝트 환경에서 직접 검증하고, 화면이 필요한 단계와 마감이 필요한 단계에 서로 다른 모델을 배치하는 방식으로 개발 속도와 검증 품질을 함께 잡고 있어요. 우리 프로젝트에는 어떤 조합이 맞는지 궁금하시다면, 지금 바로 리트머스에 문의해 보세요.
그런데 여기서 한 가지가 더 남습니다. Codex가 지시문을 이렇게 충실히 따르는 도구라면, 결국 결과를 가르는 건 Codex에게 무엇을 어떻게 지시하느냐가 되지 않을까요?
그 질문에 대한 답은 아래 글에 정리해 두었습니다. Codex CLI의 설치부터 커맨드, 스킬, AGENTS.md 작성법까지 다루고 있어서, 이 글에서 본 "지시문을 잘 따르는 성향"을 실제 프로젝트에서 다루는 방법을 알려줄 겁니다.
코덱스 CLI 완벽 가이드: 설치 방법부터 커맨드·스킬·AGENTS.md까지 총정리
바이브코딩 외주가 우리 프로젝트에 맞는지부터 알고 싶으시다면, 무료 견적 상담으로 먼저 진단해 드립니다.








![[2025 최신] 버블에서 리피팅 그룹 각 셀마다 워크플로우를 실행하고 싶을 때 : 플러그인 오케스트라(Orchestra)](/_next/image?url=https%3A%2F%2Fuosmtaxndlzgvsnhbugi.supabase.co%2Fstorage%2Fv1%2Fobject%2Fpublic%2Fmedia%2F12-1.jpg&w=3840&q=75)