Skip to content

AI가 버그라고 단언했다. ​

Claude Code 팀의 코드 리뷰 방식을 읽으며 의문이 들었다. AI가 서비스 기능을 분석하고, 결함을 찾아 보고하고, 작업 결과까지 테스트한다면 검증의 기준은 누가 지켜야 할까.

기능 분석과 결함의 단언 ​

최근 회사 제품에 새로 추가된 기능을 직접 써보고, 문제로 보이는 지점을 분석해 버그가 맞으면 보고해달라고 Claude에 요청했다. Claude는 결함이라며 오류를 단언했고, 몇 번을 다시 물어도 같은 판단을 고수했다.

해당 기능을 구현한 개발자와 함께 확인해보니 버그가 아니라 의도된 동작이었다. 도메인 맥락을 모른 채 겉보기 동작만 보고 추정한 결과였다. 기능을 아는 사람이 개입하고 나서야 오판을 바로잡을 수 있었다.

반복이 근거가 되지는 않아요

여러 번 다시 물어도 똑같은 오판이 돌아왔어요. 확신에 찬 반복이 검증을 대신할 수는 없어요.

쏟아지는 버그 보고와 검증의 병목 ​

이런 오판과 단언은 개인의 경험에 그치지 않는다. 많은 기업과 오픈소스 프로젝트에서도 AI가 쏟아내는 결함 제보가 끊임없이 등록되고 있다.

최근 PostgreSQL 19의 출시 연기에서도 AI의 결함 보고가 쏟아지며 검증이 병목이 됐다. 나처럼 AI의 판단을 반박하기 어려워 '일단 올려보자'고 등록한 이슈까지, 실제 결함인지 가려내는 부담은 메인테이너에게 돌아간다.

AI의 판단에서 무엇이 잘못됐는지 짚어내지 못하면, '그렇구나' 하고 사실로 받아들이게 될 수 있다. 판단을 AI에 맡기는 인지적 외주화 가 근거를 확인하지 않는 맹신으로 이어질 수 있는 것이다.

지적과 검증의 속도 차이

결함을 지적하기는 쉬워졌지만, 진짜 결함인지 재현하고 가려내는 일은 결국 사람의 몫이에요.

개선을 맡기고 화면만 확인한다 ​

판단을 AI에 맡기는 흐름은 버그 보고에만 그치지 않는다. AI 에이전트와 달라진 개발 업무에 관한 글은 코드를 직접 검토하기보다 결과물의 QA와 제약 조건을 먼저 챙기는 쪽으로 바뀐 일상을 다룬다. 사내 도구를 관리하는 내 업무도 비슷하게 흘러간다.

AI는 도구의 업무 맥락을 충분히 이해하지 못한 채 스스로 개선점을 찾아 고치고 배포한다. 그러면 나는 QA 입장에서 화면을 눌러보며 평소 쓰던 기능이 여전히 잘 동작하는지 확인하게 된다. 기존 기능이 유지된다는 사실만으로는 방금 배포한 변경이 업무에 정말 필요한 개선이었는지 알 수 없다.

화면이 잘 돌아가는지보다 무엇을 왜 바꿨는지가 더 중요하다

사내 도구는 개선 목표가 뚜렷하지 않아 Codex의 Goals 대신 다음 요청 제안 기능을 주로 써요. 탭 키 하나로 수정과 배포가 빠르게 이어지지만, 그만큼 변경 이유를 따져보는 과정은 건너뛰기 쉬워요.

테스트를 통과시키려고 검증 조건을 바꿨다 ​

AI는 결함을 지적할 때 근거 없는 추정을 확신하기도 하고, 작업 결과를 검증할 때는 테스트 조건을 바꿔 실제 결함을 놓치기도 한다. 요기요 사례에서는 동시성 테스트를 순차 실행으로 바꾸자 테스트가 통과했고, 원래대로 복원한 뒤에야 버그가 드러났다.

AI의 결함 보고도, 테스트 통과 보고도 그대로 믿기 어려운 이유다.

통과했지만 다른 곳을 확인했다 ​

LINE Plus의 E2E 테스트 자동화 사례에서는 광고 영역 대신 공지 영역을 검사하거나, 여섯 항목 중 하나만 확인하고도 테스트가 통과했다. 실행은 성공했지만 의도한 검증은 빠져 있었다. 이후 기대 결과와 검증문을 연결하고, 모호한 조건은 사람에게 확인하도록 바꿨다.

실제 검증 대상을 스크린샷으로 남겨 사람이 직접 확인할 수 있도록 한 것 같다.

최선을 다해 이해하려고 하자 ​

서로 다른 모델로 교차 검증을 수행해도 판단이 갈릴 수 있다. 반대로 같은 추정을 바탕으로 모두 잘못된 판단을 내릴 수도 있다. 여러 모델이 동의했다는 사실만으로 검증이 끝났다고 보기는 어렵다.

리누스 토르발스가 강조한 것은 자신이 하는 일을 이해해야 한다 는 것이다. AI가 결함이라고 판단한 근거, 코드를 바꾼 이유, 테스트가 실제로 확인한 내용을 이해하려는 노력은 여전히 필요하다.

참고 자료 ​

Released under the MIT License.