by Kainos·2026.5.30·6분 읽기
한동안 kainos.kr 개발은 Claude Code 한 가지 도구로만 진행했습니다. IntelliJ 안에서 CLI로 Claude Code를 띄워 두고 구현·수정·리팩토링을 맡기는 단일 도구 방식이었고, 꽤 오랫동안 잘 작동했습니다. 그런데 최근 결을 조금 바꿨습니다 — Codex를 리뷰 담당으로 더한 것입니다.
왜 도구를 둘로 나눴나
최근 들어 Claude의 전반적인 코딩 결과물에 부족함을 체감하기 시작했습니다. 단순한 실수나 성능(performance) 이슈를 놓치는 것은 물론, 구현 전에 합의해 둔 세부 사항을 일부 누락한 채 작업이 끝나는 경우도 있었습니다. 한 도구의 출력을 그대로 신뢰하기에는 빈틈이 있었던 셈입니다.
그래서 Codex를 코드리뷰 도구로 추가했습니다. 작성된 코드를 다른 모델의 관점으로 한 번 더 걸러내는 것입니다. 실제로 Codex는 Claude Code가 놓친 누락과 성능 이슈를 잘 잡아내며, 한쪽의 사각지대를 다른 쪽이 메우는 효과가 분명했습니다.
현재 워크플로우
단순히 코딩을 Claude에게, 리뷰를 Codex에게 맡기는 2단계 구조가 아닙니다.구현 전에 두 도구의 협업으로 태스크를 나누고 세부 사항을 정리하는 계획 단계를 먼저 두는 것이 핵심입니다. 그렇게 합의해 둔 세부 사항이 구현 과정에서 일부 누락되기도 하므로, 뒤이은 Codex 리뷰에 특히 신경 씁니다.
태스크 분할 & 세부사항 정리
구현에 들어가기 전에, 해야 할 작업을 태스크 단위로 나누고 각 태스크의 세부 사항을 정리합니다. 이 작업 자체를 Codex와 Claude의 협업으로 진행해, 시작 전에 무엇을 어떻게 만들지 합의해 둡니다.
Claude Code로 구현
정리된 세부 사항을 따라 Claude Code로 구현합니다. IntelliJ 안에서 CLI로 띄워 두고 구현·수정·리팩토링을 맡깁니다. 다만 합의했던 세부 사항을 일부 누락하는 경우가 생기기도 합니다.
Codex로 리뷰
구현 단계에서 세부 사항 누락이 생길 수 있으므로, Codex 리뷰에 특히 신경 씁니다. 작성된 코드를 넘겨 누락·오류·성능 이슈를 점검하고, 한쪽의 사각지대를 다른 쪽이 메웁니다.
보강 후 확정
Codex가 짚어낸 누락과 성능 문제를 반영해 코드를 다듬고, 사람이 최종 확정합니다. 한 도구의 출력을 그대로 신뢰하지 않는 교차 검증 구조입니다.
Claude Code와 Codex — 무엇이 다른가
| 항목 | Claude Code | Codex |
|---|---|---|
| 주된 역할 | 구현 (작성자) | 리뷰 (검토자) |
| 강점 | 멀티파일·긴 컨텍스트 작업, 프로젝트 규칙 이해 | 누락·오류 포착, 특히 성능 이슈 검출 |
| 사용 위치 | IntelliJ 내 CLI | 리뷰 단계에서 별도 실행 |
| 한계 | 일부 누락·성능 이슈를 놓침 | 리뷰 보조 역할로 한정해 사용 |
| 잘 맞는 순간 | 기능 구현, 큰 범위의 변경 | 머지 전 코드 검수, 성능 점검 |
핵심 동기는 단순합니다 — 한 도구만 신뢰하지 않는다. 모델마다 강점과 실수 패턴이 다르므로, 중요한 코드일수록 두 관점을 겹쳐 보는 것이 안전합니다.
운영하면서 챙기는 것들
- 지침을 양쪽에 둔다 — 두 도구가 같은 프로젝트 규칙을 따르도록 Claude Code는
CLAUDE.md, Codex는AGENTS.md에 동일한 컨벤션을 둡니다. - 필수 체크 항목을 리뷰에 포함 — canonical 설정, sitemap 업데이트, title 중복 방지, openGraph images 등 이 프로젝트 고유 규칙을 함께 점검하게 하면 단순 버그를 넘어 규칙 누락까지 잡힙니다.
- 변경 단위로 넘긴다 — 범위가 큰 작업은
git diff develop단위로 넘기면 리뷰 초점이 명확해집니다.
앞으로
리뷰 단계에서 Codex가 반복적으로 지적하는 패턴이 쌓이면, 그 항목을 애초에 점검하도록 워크플로우에 반영할 생각입니다. 그렇게 하면 Claude Code 단계에서 미리 거를 수 있어 리뷰 부담이 줄어듭니다.
작성자(Claude)와 검토자(Codex)의 역할 분담은 유지하되, 작업 성격에 따라 조정 여지를 둡니다. 결국 목표는 도구의 우열을 가리는 것이 아니라, 서로의 약점을 겹쳐서 메우는 것입니다.