AX Field Guide.도구·기법 / Codex를 AX 관점에서 쓰는 법동향

도구·기법 · Craft

Codex를 AX 관점에서 쓰는 법

Codex는 "코드를 잘 짜는 모델"보다 "사람 없이 도는 에이전트 러너"로 쓸 때 값이 달랐다. 무인으로 돌릴수록 가드레일·검증·기록이 본체가 된다.

Claude Code 글과 같은 틀로 Codex를 본다. 다만 내가 Codex를 쓰는 자리는 결이 좀 다르다. Claude Code가 곁에서 개발을 거드는 쪽이라면, Codex는 사람 없이 정해진 일을 도는 러너로 쓸 때 값이 가장 달랐다. 그래서 이 글의 각도는 “Codex가 코드를 얼마나 잘 짜나”가 아니라 “Codex를 무인 에이전트로 거는 법”이다.

무인으로 도는 에이전트에서는 모델의 똑똑함보다, 무엇을 못 하게 막고 무엇을 견디게 하고 무엇을 남기게 했는가 — 가드레일이 본체가 된다.

정기 작업을 사람 없이 돌린다

내가 Codex를 실제로 거는 방식은 단순하다. 매주 같은 시각에, 정해진 자료를 읽고, 정리·초안을 만들고, 검증을 통과하면 결과를 커밋하고 끝낸다. 개인 콘텐츠를 정리하는 파이프라인을 이렇게 무인으로 돌려 두는데, 핵심은 그 과정에 내가 끼지 않는다는 점이다. 에이전트를 모는 법에서 말한 loop의 한 형태 — 사람이 매번 프롬프트하는 대신, 프롬프트·검증·실행을 정해두고 자동으로 돌게 한 것 — 에 가깝다.

사람이 매 실행을 들여다보지 않으니, “잘 도는 날”이 아니라 “이상한 날”을 어떻게 다루느냐가 전부가 된다. 그래서 글의 무게가 모델에서 가드레일로 옮겨갔다.

막고, 견디고, 남긴다

무인 러너에 거는 가드레일은 결국 세 가지로 정리됐다.

정기 실행 cron · 사람 없음 작업 읽기·생성 검증 게이트 통과 반영 실패·불가 기록
그림 1 · 무인 러너 — 검증 통과만 반영하고, 못 하면 멈추지 말고 남긴다 (흐름)

견딘다. 무인 작업은 중간에 막히는 일이 흔하다 — 외부 앱 접근이 안 되거나, 자료가 비어 있거나. 이때 그냥 멈춰 버리면 그 주는 통째로 날아간다. 그래서 “못 하면 멈추지 말고, 무엇을 못 했는지 파일에 남기고 할 수 있는 데까지 진행하라”를 규칙으로 넣는다. 사람이라면 자연히 했을 “이건 일단 건너뛰고”를 명시적으로 적어 줘야 한다.

막는다. 무인이라 결과를 바로 확인하지 못하니, 나가면 안 되는 것이 나가지 않게 막는 게 중요하다. 공개 안전 룰 — 시크릿·개인정보·연락처 같은 게 산출물에 섞이지 않았는지 스캔하는 단계 — 을 검증에 넣는다. 공개 위험 게이트를 사람이 매번 못 보니, 그 검사를 자동화 안으로 끌어들이는 셈이다.

남긴다. 검증을 통과한 것만 반영하고, 무엇을 왜 바꿨는지 기록을 남긴다. audit trail에서 말한 그것이 무인 러너에서는 선택이 아니라 필수다 — 사람이 실시간으로 못 보니, 나중에 되짚을 기록이 없으면 무슨 일이 있었는지 영영 모른다.

곁에서 모는 도구와 분담한다

이렇게 쓰다 보니 Claude Code와 자연스럽게 자리가 갈렸다. 정해진 일을 사람 없이 정기적으로 도는 건 Codex 러너에, 그때그때 개발하고 판단이 끼는 건 곁에서 모는 도구에. 어느 쪽이 더 낫다기보다 작업의 성격이 다르다 — 한쪽은 “사람이 안 보는 동안 안전하게 도는 것”이 관건이고, 다른 쪽은 “사람과 빠르게 주고받는 것”이 관건이다. 이 분담 자체를 한 편으로 더 풀 생각이다(Claude Code vs Codex).

정리하면

Codex를 무인 러너로 쓰면서 배운 건, 러너의 품질이 모델의 품질이 아니라 가드레일의 품질이더라는 것이다. 똑똑한 모델이 가끔 자신만만하게 틀리는 것보다, 틀렸을 때 무엇을 안 하게 막아 뒀는지가 결과를 지켰다. 무인이라는 건 결국 “사람이 없는 동안의 실패를 어떻게 설계하느냐”의 문제고, 그건 백엔드에서 늘 하던 질문과 다르지 않다.

변경 로그
  • 초안에서 발행. 무인 러너·가드레일 3종(견디고·막고·남긴다) 정리 (성숙도: 탐색 중)
  • 검증 게이트(공개 안전 스캔·diff 점검)의 구체 구성 보강