Claude Code vs Codex vs Gemini CLI: 모델보다 하네스(Harness)가 더 중요하다
요약
Claude Code, OpenAI Codex, Gemini CLI를 비교하며 AI 코딩 에이전트의 성능은 모델 자체보다 에이전트 하네스(Harness)에 의해 결정됨을 설명합니다. 특히 Claude Code가 저장소 이해와 다단계 작업 수행에 있어 가진 강점과 활용법을 다룹니다.
핵심 포인트
- AI 코딩 에이전트의 핵심 차이는 모델보다 컨텍스트 수집 및 도구 활용 방식인 '하네스'에 있음
- Claude Code는 심층적인 저장소 조사, 리팩터링, 버그 추적에 최적화됨
- CLAUDE.md와 MCP를 통해 프로젝트 지침 제공 및 외부 도구 통합 가능
- 구조화된 출력을 지원하여 스크립트 및 워크플로우 자동화에 용이함
개발자들은 종종 한 가지 질문을 던지며 AI 코딩 에이전트들을 비교하곤 합니다:
어떤 모델이 가장 똑똑한가?
하지만 이는 점점 더 잘못된 질문이 되어가고 있습니다.
Claude Code, OpenAI Codex, 그리고 Gemini CLI는 모두 저장소(Repository)를 검사하고, 파일을 편집하며, 명령어를 실행하고, 테스트를 수행하며, 개발 작업을 자동화할 수 있습니다. 이들의 진짜 차이점은 모델을 둘러싼 시스템에서 발생합니다:
- 컨텍스트(Context)를 수집하는 방식
- 접근 가능한 도구(Tools)의 종류
- 권한을 요청하는 방식
- 실패로부터 복구하는 방식
- 스크립트 및 팀 워크플로우에 얼마나 쉽게 통합되는지
모델도 중요합니다. 하지만 **에이전트 하네스 (Agent Harness)**가 실제 코드베이스 내에서 그 지능이 어떻게 작동할지를 결정합니다.
빠른 비교
| 영역 | Claude Code | OpenAI Codex | Gemini CLI |
|---|---|---|---|
| 최적 용도 | 심층적인 저장소 작업 | 구조화된 코딩 자동화 | 개방적이고 맞춤 설정 가능한 CLI 워크플로우 |
| ... |
보편적인 승자는 없습니다. 올바른 선택은 위임하려는 작업의 유형에 따라 달라집니다.
Claude Code: 심층적인 저장소 작업에 최적
Claude Code는 터미널에서 프로젝트 내부로 직접 작동하도록 설계되었습니다. 파일을 검색하고, 저장소 전반의 관계를 이해하며, 코드를 편집하고, 명령어를 실행하며, 테스트 결과에 따라 반복 작업을 수행할 수 있습니다.
가장 큰 강점은 단순히 코드를 생성하는 것이 아닙니다. 다단계 작업을 수행하는 동안 코드베이스에 대한 유용한 멘탈 모델 (Mental Model)을 유지하는 것입니다.
이러한 특징 덕분에 다음과 같은 작업에 특히 유용합니다:
- 익숙하지 않은 저장소 조사
- 대규모 리팩터링 (Refactor) 계획
- 여러 모듈에 걸친 버그 추적
- 구현 사항과 관련 테스트를 함께 업데이트
- 아키텍처 결정 검토
- 반복적인 추론이 필요한 작업 실행
프로젝트는 CLAUDE.md를 통해 지속적인 지침을 제공할 수 있습니다. 팀은 이 파일을 사용하여 에이전트가 준수해야 할 아키텍처, 명령어, 컨벤션 (Conventions), 테스트 요구 사항 및 경계 조건을 설명할 수 있습니다.
Claude Code는 또한 Model Context Protocol (MCP) 통합을 지원하여, 저장소(Repository)를 고립된 폴더로 취급하는 대신 외부 도구 및 데이터 소스와 상호작용할 수 있도록 합니다.
또한 해당 CLI는 JSON 및 스트리밍 JSON을 포함한 구조화된 출력(Structured output)을 지원하므로, Claude Code를 단순히 대화형 세션뿐만 아니라 스크립트 내부에서도 사용할 수 있습니다.
Claude Code가 가장 적합한 경우
작업 내용이 다음과 같은 성격일 때 Claude Code를 사용하세요:
이 서브시스템이 어떻게 작동하는지 이해하고, 근본 원인을 식별하며, 수정 방안을 제안하고, 이를 구현한 뒤 다른 부분이 망가지지 않았는지 검증하라.
이는 어시스턴트에게 고립된 함수 하나를 만들어 달라고 요청하는 것과는 다릅니다.
주요 제한 사항
긴 탐색적 세션(Exploratory sessions)은 상당한 컨텍스트(Context)와 토큰(Tokens)을 소비할 수 있습니다. 명확한 저장소 지침이 없다면, 에이전트는 동일한 영역을 반복해서 검색하거나 로컬 컨벤션(Conventions)과 충돌하는 기술적으로는 유효한 변경을 수행할 수 있습니다.
Claude Code는 저장소에 다음과 같은 요소가 포함되어 있을 때 더 나은 성능을 발휘합니다:
- 명확한 프로젝트 지침
- 신뢰할 수 있는 테스트 명령
- 작고 검토 가능한 작업 경계
- 생성된 파일 및 마이그레이션(Migrations)에 대한 명시적 규칙
- 파괴적인 작업에 대한 권한 제한
환경이 더 좋을수록, 기본적인 사실을 재발견하는 데 낭비되는 지능이 줄어듭니다.
OpenAI Codex: 구조화된 실행에 최적화
Codex는 코딩 작업이 긴 대화가 아닌 반복 가능한 워크플로(Workflow)가 되어야 할 때 가장 강력합니다.
다음과 같은 작업에 매우 적합합니다:
- 명확하게 범위가 지정된 변경 사항 구현
- 소스 코드를 기반으로 한 문서 업데이트
- 내부 개발자용 명령 생성
- 반복 가능한 평가 작업 실행
- 유지보수 작업 자동화
- 코딩 작업을 팀 시스템과 통합
OpenAI의 공식 Codex 예시들은 점점 더 코드를 작성하는 수준을 넘어 확장되고 있습니다. 여기에는 문서 유지보수, 명령줄 도구(Command-line tools) 생성, 제품 요구 사항 준비, 그리고 저장소 컨텍스트를 외부 조직 정보와 결합하는 작업 등이 포함됩니다.
이는 중요한 변화를 의미합니다.
코딩 에이전트 (Coding agent)는 더 이상 터미널 안에 앉아 있는 개발자에 국한되지 않습니다. 에이전트는 저장소 (Repositories), 이슈 트래커 (Issue trackers), 문서 시스템 (Documentation systems), 로그 (Logs) 및 내부 도구 (Internal tools) 사이의 실행 계층 (Execution layer)이 될 수 있습니다.
Codex가 가장 적합한 경우
작업 내용이 다음과 같을 때 Codex를 사용하십시오:
정의된 이 이슈를 가져와서, 필요한 변경 사항을 적용하고, 관련 체크를 실행한 뒤, 검토 가능한 결과를 반환하라.
Codex는 명확한 수락 기준 (Acceptance criteria)을 가질 때 이점을 얻습니다. 예상되는 결과를 더 정확하게 검증할 수 있을수록, 안전하게 작업을 위임하기가 더 쉬워집니다.
주요 한계점
구조화된 실행 (Structured execution)이 모호함을 제거해주지는 않습니다.
만약 작업에 모호한 제품 결정, 숨겨진 아키텍처 가설, 또는 불분명한 소유권 경계가 포함되어 있다면, 에이전트는 잘못된 해석을 바탕으로 완벽한 솔루션을 자신 있게 만들어낼 수 있습니다.
Codex를 작업 정의 (Task definition)의 대체제로 취급해서는 안 됩니다. Codex는 나쁜 부분을 포함하여, 자신이 받는 작업의 품질을 증폭시킵니다.
Gemini CLI: 개방적이고 커스터마이징 가능한 워크플로우에 최적
Gemini CLI는 Apache 2.0 라이선스로 출시된 오픈 소스 터미널 에이전트입니다.
다음 기능을 지원합니다:
- 대화형 터미널 세션 (Interactive terminal sessions)
- 비대화형 프롬프트 (Non-interactive prompts)
- JSON 출력 (JSON output)
- 스트리밍 JSON 이벤트 (Streaming JSON events)
- 다중 프로젝트 디렉토리 (Multiple project directories)
GEMINI.md를 통한 지속적인 컨텍스트 (Persistent context)- MCP 서버 (MCP servers)
- 확장 기능 및 커스텀 명령 (Extensions and custom commands)
- 웹 검색과 같은 내장 도구 (Built-in tools)
이러한 특징 덕분에 Gemini CLI는 완전히 폐쇄된 워크플로우를 수용하는 대신, 에이전트 환경을 조사, 수정 또는 확장하고자 하는 개발자들에게 특히 흥미로운 도구입니다.
비대화형 모드는 셸 스크립트 (Shell scripts)에서 다음과 같이 사용할 수 있습니다:
gemini -p "Explain the architecture of this repository"
자동화를 위해 구조화된 출력을 요청할 수 있습니다:
gemini -p "Run the tests and summarize failures" \
--output-format json
장시간 실행되는 워크플로우의 경우, 줄바꿈으로 구분된 이벤트 (Newline-delimited events)를 스트리밍할 수 있습니다:
gemini -p "Run tests, fix failures and report the result" \
--output-format stream-json
Gemini CLI는 또한 MCP (Model Context Protocol) 및 커스텀 도구 탐색 (custom tool discovery)을 지원하여, 에이전트를 외부 시스템에 연결하는 여러 가지 방법을 제공합니다.
Gemini CLI가 가장 적합한 경우
다음과 같은 작업이 필요할 때 Gemini CLI를 사용하세요:
내가 커스터마이징하고, 스크립트를 짜고, 검사하며, 다른 도구와 연결할 수 있는 투명한 터미널 워크플로우를 구축하고 싶다.
특히 다음과 같은 경우에 유용합니다:
- 오픈 소스 툴체인 (Open-source toolchains)
- 실험적인 에이전트 워크플로우 (Experimental agent workflows)
- CI 스크립트
- 모델 및 도구 연구
- 이미 Google 생태계에서 활발히 작업 중인 개발자
주요 제한 사항
Gemini CLI는 프리뷰 (preview), 스테이블 (stable), 나이틀리 (nightly) 릴리스 채널을 제공합니다. 이는 빠른 실험에는 유용하지만, 프리뷰 및 나이틀리 빌드는 회귀 (regressions) 현상이나 불완전한 검증을 포함할 수 있습니다. 프로덕션 워크플로우에서는 버전을 고정 (pin versions)해야 하며, 단순히 최신 빌드가 존재한다는 이유만으로 무심코 최신 빌드를 추적하는 것을 피해야 합니다.
실증적 연구가 말해주는 것
대부분의 코딩 에이전트 비교는 데모, 벤치마크 또는 한 명의 개발자가 선호하는 스택을 기반으로 합니다.
최근 연구는 이보다 덜 편리한 양상을 보여줍니다.
2026년의 한 연구는 Codex, GitHub Copilot, Devin, Cursor 및 Claude Code가 생성한 **7,156개의 풀 리퀘스트 (pull requests)**를 분석했습니다. 연구 결과, 작업 유형이 승인율 (acceptance rate)에 큰 영향을 미치는 것으로 나타났습니다.
문서 변경 (Documentation changes)의 승인율은 82.1%였던 반면, 새로운 기능 작업 (new-feature work)은 66.1%에 그쳤습니다. 이 16%포인트의 차이는 에이전트 간의 일반적인 성능 격차보다 더 컸습니다.
연구 결과는 다음과 같습니다:
- Claude Code는 문서 및 기능 작업에서 앞서 나갔습니다.
- Cursor는 수정 (fix) 작업에서 강력한 성능을 보였습니다.
- Codex는 작업 카테고리 전반에 걸쳐 상대적으로 강력한 결과를 유지했습니다.
- 모든 유형의 작업에서 가장 뛰어난 성능을 보이는 에이전트는 없었습니다.
유용한 결론은 특정 도구가 승리했다는 것이 아닙니다.
작업 카테고리가 이를 수행하는 에이전트의 브랜드보다 더 중요할 수 있다는 것입니다.
신뢰성은 여전히 불편한 부분입니다
또 다른 연구는 Claude Code, Codex 및 Gemini CLI 전반에 걸쳐 공개적으로 보고된 3,800개 이상의 버그를 조사했습니다.
그중 67% 이상이 기능 관련 문제였습니다. API, 통합(integration) 및 설정(configuration) 문제가 식별된 근본 원인의 36.9%를 차지했습니다.
일반적인 증상으로는 다음이 포함됩니다:
- API 실패
- 터미널(Terminal) 문제
- 명령(Command) 오류
- 도구 호출(Tool-invocation) 오류
- 명령 실행(Command-execution) 실패
연구 결과, 도구 호출(tool invocation)과 명령 실행(command execution)은 에이전트 워크플로(agent workflow)에서 가장 실패하기 쉬운 부분 중 하나로 나타났습니다.
이것이 중요한 이유는 개발자들이 종종 성공적인 시연(demonstration)을 사용하여 에이전트를 평가하기 때문입니다.
프로덕션 시스템(Production systems)은 실패 복구(failure recovery)를 사용하여 평가해야 합니다.
유용한 코딩 에이전트는 모든 것이 정상 작동할 때 정확한 코드를 생성하는 것 이상의 능력이 필요합니다. 또한 다음과 같은 상황에서도 예측 가능하게 동작해야 합니다:
- 명령이 예기치 않게 종료될 때
- 인증(Authentication)이 만료될 때
- 도구가 잘못된 형식의 데이터(malformed data)를 반환할 때
- 테스트가 불안정할(flaky) 때
- 리포지토리(Repository) 지침이 충돌할 때
- 의존성(dependency)이 변경되었을 때
- 에이전트가 권한 경계(permission boundary)에 도달했을 때
다듬어진 데모는 시스템에서 가장 흥미롭지 않은 부분입니다.
모델(Model) 대 하네스(Harness)
코딩 에이전트는 다섯 가지 계층으로 단순화할 수 있습니다:
Model
↓
Context management
...
개발자들은 보통 첫 번째 계층에 집중합니다.
프로덕션 실패는 나머지 네 계층에서 빈번하게 발생합니다.
유사한 능력을 가진 모델을 사용하는 두 에이전트라도 다음과 같은 이유로 매우 다르게 동작할 수 있습니다:
- 프로젝트 지침을 더 신뢰성 있게 읽음
- 관련 없는 파일을 더 적게 검색함
- 도구를 더 효율적으로 사용함
- 더 적절한 시점에 권한을 요청함
- 올바른 테스트를 실행함
- 실패한 실행을 인식함
- 단계 간의 상태(state)를 보존함
이것이 모델을 교체한다고 해서 약한 에이전트 워크플로가 자동으로 해결되지 않는 이유입니다.
때때로 에이전트에게 필요한 것은 더 똑똑한 모델이 아닙니다. 더 나은 컨텍스트(context), 더 좁은 범위의 도구, 그리고 완료(completion)에 대한 더 명확한 정의가 필요합니다.
어떤 것을 선택해야 할까요?
다음과 같은 경우 Claude Code를 선택하세요:
- 리포지토리 이해 (Repository understanding)가 주요 과제인 경우
- 작업이 정기적으로 여러 파일을 가로지르는 경우
- 아키텍처 조사 (Architectural investigation)를 수행하는 경우
- 강력한 대화형 추론 (Interactive reasoning)을 원하는 경우
- 팀이 유용한 프로젝트 지침 (Project instructions)을 유지 관리할 수 있는 경우
다음과 같은 경우 Codex를 선택하세요:
- 작업에 명확한 수락 기준 (Acceptance criteria)이 있는 경우
- 반복 가능한 코딩 자동화 (Repeatable coding automation)를 원하는 경우
- 작업이 다른 시스템과 연결되어야 하는 경우
- 위임된 엔지니어링 워크플로우 (Delegated engineering workflows)를 구축하는 경우
- 실행 (Execution)과 검토 (Review)의 명확한 분리가 필요한 경우
다음과 같은 경우 Gemini CLI를 선택하세요:
- 오픈 소스 (Open source)가 중요한 경우
- 에이전트 (Agent)를 조사하거나 확장하고 싶은 경우
- CLI 스크립팅이 워크플로우의 중심인 경우
- JSON 또는 스트리밍 출력 (Streaming output)이 필요한 경우
- MCP 및 커스텀 도구 (Custom tools)를 실험하고 있는 경우
더 나은 평가 방법
랜딩 페이지를 생성하는 단 하나의 프롬프트를 사용하여 코딩 에이전트를 평가하지 마세요.
그 테스트는 대부분 코드를 읽기 전에 에이전트가 얼마나 시각적으로 설득력 있는 결과물을 효과적으로 만들어내는지 측정할 뿐입니다.
대신, 실제 업무를 기반으로 한 작은 내부 평가 세트 (Evaluation set)를 만드세요:
- 여러 모듈에 걸친 버그 수정
- 기존 아키텍처 제약 조건 내에서 기능 추가
- 동작을 변경하지 않고 코드 리팩터링 (Refactor)
- API 변경 후 테스트 업데이트
- 익숙하지 않은 서브시스템 (Subsystem) 설명
- 의도적으로 망가뜨린 빌드 진단
- 리포지토리별 보안 규칙 준수
- 요구 사항이 모호할 때 안전하게 중단
각 작업에 대해 다음을 기록하세요:
- 완료율 (Completion rate)
- 필요한 인간의 수정 사항
- 통과된 테스트
- 불필요하게 변경된 파일
- 소비된 토큰 (Tokens) 또는 크레딧 (Credits)
- 검토에 소요된 시간
- 권한 위반 (Permission violations)
- 명령 실패 후 복구 (Recovery)
최고의 도구는 가장 많은 코드를 생성하는 도구가 아닙니다.
여러분이 병합 (Merge)할 의사가 있는 변경 사항의 비율이 가장 높은 도구입니다.
최종 결론
Claude Code, Codex, Gemini CLI는 유사한 인터페이스로 수렴하고 있습니다. 즉, 리포지토리를 조사하고, 도구를 호출하며, 명령을 실행하고 코드를 수정할 수 있는 에이전트입니다.
이제 이들의 유의미한 차이점은 워크플로우 (Workflow) 설계에 있습니다.
- Claude Code는 깊이 있고 상호작용적인 리포지토리 추론 (Repository reasoning)에 가장 강력합니다.
- Codex는 정의된 작업과 구조화된 실행 (Structured execution)에 가장 강력합니다.
- Gemini CLI는 개방적이고 사용자 정의 가능한 터미널 자동화 (Terminal automation)에 가장 강력합니다.
테스트, 권한 경계 (Permission boundaries), 그리고 인간의 검토 (Human review) 없이는 그 어떤 것도 신뢰해서는 안 됩니다.
차세대 코딩 에이전트 (Coding-agent) 경쟁은 단순히 어떤 회사가 가장 똑똑한 모델을 출시하느냐에 의해서만 결정되지 않을 것입니다.
그것은 어떤 하네스 (Harness)가 지능을 신뢰할 수 있는 엔지니어링 작업으로 전환하느냐에 의해 결정될 것입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기