Codex가 모든 바이트를 범죄자 취급하는데, 모델 문제인가요 아니면 하네스 문제인가요?
Codex treats every byte like a criminal, is that the model or the harness?
핵심 요약
Codex의 과도한 데이터 검증과 방어적 코딩 성향에 대한 개발자들의 고충과 해결책 공유.
- 과도한 검증 — 모델이 모든 데이터를 의심하여 불필요한 검증 코드를 생성함
- 유지보수 난항 — 프로젝트가 커질수록 검증 로직이 얽혀 관리가 불가능해짐
- 하네스 설정 — agent.md 등을 통해 모델의 과잉 행동을 제어하는 것이 효과적임
- 성능 저하 — 과도한 검증 코드가 컨텍스트 창을 낭비하고 실행 시간을 대폭 늘림
데이터 엔지니어링을 꽤 많이 하는 편인데, Codex가 짜는 데이터 검증 코드는 진짜 살다 살다 이렇게까지 유난 떠는 건 처음 본다. 뭐 하나 그냥 넘어가는 법이 없음. 다운로드한 파일은 죄다 깨졌을 거라 의심하고, 압축 풀 때마다 파일이 망가질까 봐 전전긍긍함. 데이터 포인트 하나하나마다 출처를 다 기록해서 어디서 꼬였는지 추적할 수 있게 만들어야 직성이 풀리나 봄.
오늘도 데이터 송신량(egress)이 갑자기 튀길래 확인해 봤더니, 똑같은 파일을 시간 간격 두고 여러 번 다운로드해서 복사본끼리 일치하는지 확인하는 코드를 짜놨더라.
솔직히 말해서 이런 꼼꼼함이 도움 될 때도 있긴 함. 나중에 터질 버그나 데이터 드리프트 같은 걸 미리 잡아주니까. 근데 이놈의 검증 로직 때문에 오히려 문제가 더 많이 생겨서, 맨날 코드 뜯어내느라 바쁘다.
이게 모델 자체의 고질적인 문제인 것 같기도 함. 뭐가 중요한지 우선순위를 잘 못 정하니까 모든 걸 똑같이 중요하게 취급하고, 결국 모든 게 완벽해야 한다고 집착하는 거지. 근데 이놈의 편집증이 도대체 어디서 튀어나오는 건지 궁금함. 모델 자체에 학습된 건지, 아니면 모델을 감싸고 있는 하네스(harness)가 이런 방어적인 검증을 하도록 유도하는 건지 모르겠네. 혹시 같은 모델을 다른 하네스에 돌려보고 차이점 확인해 본 사람 있음?


