- SonarSource의 Priyansh Trivedi·Olivier Schmitt가 “코드 청결도가 코딩 에이전트의 탐색·수정 능력에 영향을 주는가”를 통제 실험으로 측정함. “AI가 짜주니 코드 품질은 이제 안 중요하다”는 통념을 겨눈 첫 정량 검증
- 방법은 미니멀 페어(minimal-pair) — 아키텍처·의존성·외부 동작(=통과해야 할 테스트)은 완전히 똑같고 코드 품질만 다른 저장소 쌍을 만들어 다른 변수를 제거한 채 청결도 효과만 분리해서 봄
- Claude Code로 660회 시행 결과: 통과율(pass rate)은 청결도와 무관(더러워도 작업은 끝냄), 하지만 깨끗한 코드에서 토큰 7~8% 절감, 파일 재방문 34% 감소
- 결론 — 청결도가 작업 완료 자체를 막진 않지만 연산 비용과 탐색 효율을 크게 좌우한다. 유지보수성이 사람만이 아니라 에이전트를 위한 투자이기도 하다는 실증
무엇을, 왜 물었나
에이전트가 코드를 고칠 때, 코드의 구조적·문체적 품질(“청결도” — 죽은 코드가 없고, 데이터 흐름이 명확하고 캡슐화가 잘 된 정도)이 에이전트의 탐색(navigate)과 수정 능력에 실제로 영향을 주는가. 지금까지는 “AI가 어차피 다 읽으니 품질은 사람 편의 문제일 뿐”이라는 직관과 “지저분하면 AI도 헤맨다”는 경험담이 부딪혔는데, 이 논문은 그걸 단순 완료율 너머에서 숫자로 갈랐다.
미니멀 페어 — 핵심은 “다른 변수 제거”
이 실험의 값어치는 방법에 있다. 같은 작업을 청결도만 다른 두 저장소에서 시켜야 청결도 효과가 분리되는데, 연구진은 아키텍처·의존성·외부 동작이 동일하고 코드 품질 지표만 다른 저장소 쌍을 매칭했다. 외부 동작이 같다는 건 “통과해야 할 숨은 테스트(hidden tests)“가 같다는 뜻이라, 두 저장소에서 에이전트가 푸는 문제 자체는 똑같다.
편향을 줄이려 쌍을 양방향으로 만들었다 — 깨끗한 저장소를 일부러 열화(degrade)시키거나, 지저분한 저장소를 청소(clean)해서. “깨끗→더럽게”만 하면 인공적 지저분함이라는 편향이, “더럽→깨끗”만 하면 그 반대 편향이 생기니 양쪽을 다 넣었다. (뒤에 나오지만 HN은 바로 이 “AI가 청소한 쪽”의 대표성을 물고 늘어졌다.)
세 가지 숫자가 뜻하는 것
- 통과율(pass rate): 에이전트의 최종 상태를 숨은 테스트로 채점한 값. 청결도로 바뀌지 않았다 — 더러운 코드에서도 결국 작업은 완료한다. 즉 “AI가 지저분한 코드는 못 고친다”는 과장이다.
- 토큰 효율: 깨끗한 코드에서 7~8% 적게 소비. 완료는 하되 더러운 코드에선 더 비싸다. 청결도가 곧 API 비용이다.
- 파일 재방문(file revisitation): 깨끗한 코드에서 34% 감소. 에이전트도 사람처럼 검색하고 파일을 열어 훑는데, 예상 위치에 예상 이름으로 있으면 한 번에 찾고 아니면 같은 파일을 몇 번씩 되짚는다. 이 34%가 “헤맴”의 정량화다.
종합
품질이 완료를 좌우하진 않지만 비용과 헤맴을 좌우한다. 이게 이 실험의 미묘한 지점이다. 사람을 위한 유지보수성이 곧 에이전트를 위한 유지보수성이기도 하다. 그래서 청결도 투자를 정당화하는 실증 근거가 하나 더 생겼다. 다만 “깨끗함/지저분함”을 AI(Opus)로 합성했다는 설계 자체가 결과의 대표성을 얼마나 담보하는지는 여전히 열린 질문이다.
Loading comments...