코드가 지저분하면 AI도 헤맬까? '깨끗한 코드' 통념을 실험으로 검증한 연구
개발자라면 누구나 한 번쯤 들어봤을 말이 있습니다. “코드는 깨끗하게 짜라.” 변수 이름은 의미 있게, 함수는 짧게, 구조는 단정하게. 그런데 요즘은 코드를 사람만 읽지 않죠. AI 코딩 에이전트가 우리 저장소를 뒤지고 고치는 시대입니다. 그렇다면 질문이 생깁니다. 깨끗한 코드는 AI에게도 더 나은 결과를 만들어줄까요.
왜 지금 이 질문이 중요한가
지난 몇 년 동안 “AI에게 잘 시키는 법"에 대한 조언은 넘쳐났습니다. 유튜브만 봐도 그렇습니다. Matt Pocock의 AI 코딩 워크플로 영상은 조회수 113만을 넘겼고, “AI 코딩이 우리 개발팀을 어떻게 바꿨나"를 다룬 영상도 40만 조회를 기록했습니다. Builder.io의 Steve는 AGENTS.md 파일로 AI 출력 품질을 끌어올리는 팁을 공유하기도 했죠.
하지만 이런 조언들은 대부분 경험담입니다. “이렇게 했더니 잘 되더라"는 이야기죠. 정작 코드 자체의 깨끗함이 AI 성능에 얼마나 영향을 주는지를 엄밀하게 따진 연구는 드물었습니다. 여기서 통제된 실험(controlled study)이라는 접근이 등장합니다.
‘통제된 실험’이 왜 중요한가
여기서 잠깐 설명이 필요합니다. 통제된 실험이란, 딱 하나의 변수만 바꾸고 나머지는 똑같이 유지한 채 결과를 비교하는 방법입니다.
예를 들어볼까요. 똑같은 기능을 하는 코드를 두 벌 준비합니다. 하나는 깨끗하게 정리된 버전, 다른 하나는 뒤죽박죽인 버전입니다. 로직은 완전히 동일하고 오직 가독성과 구조만 다릅니다. 그리고 AI 에이전트에게 똑같은 작업을 시킵니다. 버그 수정이든 기능 추가든 말이죠.
이렇게 하면 성능 차이가 “코드가 깨끗해서” 생긴 것인지, 아니면 다른 우연 때문인지를 가려낼 수 있습니다. 개발자들이 흔히 하는 “느낌상 그런 것 같다"를 숫자로 바꾸는 작업입니다.
인간의 상식은 AI에게도 통할까
핵심은 이겁니다. 지저분한 코드가 사람을 헷갈리게 만드는 이유와, AI를 헷갈리게 만드는 이유가 같을까요.
사람은 이상한 변수 이름을 보면 머릿속에서 의미를 되짚느라 인지 부하가 걸립니다. 함수가 길고 중첩이 깊으면 흐름을 놓치기 쉽죠. 그런데 AI는 조금 다르게 작동합니다. AI는 코드를 토큰 단위로 처리하고, 학습 데이터에서 본 패턴에 기대어 다음 행동을 예측합니다.
여기서 흥미로운 가설이 갈립니다. 한쪽에서는 이렇게 봅니다. AI도 결국 사람이 쓴 코드로 학습했으니, 사람이 읽기 좋은 코드가 AI에게도 익숙한 패턴일 것이다. 즉 깨끗한 코드가 AI 성능도 높인다는 쪽입니다. 다른 쪽에서는 반박합니다. AI는 사람처럼 피로를 느끼지 않고 긴 맥락도 한 번에 삼킬 수 있으니, 코드가 좀 지저분해도 성능 저하가 크지 않을 수 있다는 겁니다.
통제된 실험은 바로 이 갈림길에서 어느 쪽이 맞는지 판정하려는 시도입니다. 유튜버 Awesome가 “실제로 AI 코딩을 써봤더니 생각보다 별로였다"는 영상을 올려 16만 조회를 얻은 것도 이런 기대와 현실의 간극을 보여줍니다.
이 결과가 실무에 주는 의미
만약 실험이 “깨끗한 코드가 AI 성능을 높인다"를 확인한다면, 이건 단순한 미덕 이상의 이야기가 됩니다. 코드 정리가 AI 협업을 위한 투자가 되는 셈이니까요.
그동안 리팩터링은 “나중에 사람이 유지보수하기 편하려고” 하는 일로 여겨졌습니다. 하지만 이제는 AI 에이전트가 내 코드를 더 정확하게 고치게 하려고, 즉 오늘 당장의 생산성을 위해 정리한다는 명분이 생깁니다. AGENTS.md 같은 안내 파일뿐 아니라 코드 본체의 품질 자체가 AI 출력의 품질을 좌우한다는 뜻이죠.
반대로 만약 “AI는 지저분한 코드에도 크게 개의치 않는다"가 결론이라면, 이것도 나름의 시사점입니다. 레거시 코드를 전부 갈아엎지 않아도 AI 도구를 붙여볼 만하다는 신호가 되니까요.
마치며
솔직히 말씀드리면, 이 주제는 아직 커뮤니티에서 활발하게 논의되는 단계는 아닙니다. 최근 30일간 관련 토론이 거의 잡히지 않았고, 대부분의 실무 콘텐츠는 여전히 “AI에게 잘 시키는 법"에 머물러 있습니다. 그만큼 이 arXiv 연구가 던지는 질문이 앞서 있다는 뜻이기도 합니다.
결국 우리가 오랫동안 믿어온 “깨끗한 코드"라는 상식이, 사람이 아닌 기계 앞에서도 유효한지를 데이터로 확인하려는 시도입니다. 여러분은 어떻게 생각하시나요. AI에게 일을 맡기기 전에, 먼저 코드부터 정리하시겠습니까. 아니면 그건 사람의 사정일 뿐이라고 보시나요.
댓글
댓글을 불러오는 중...