AI 리뷰 봇이 당신에게 무시하는 법을 가르치고 있다
요약
AI 리뷰 봇이 과도한 잡음(noise)을 발생시키면 개발자들이 점차 무시하게 되므로, 봇의 신뢰도를 높이는 것이 중요합니다. 단순히 모든 오류를 찾는 재현율(recall)보다, 실제로 주목할 가치가 있는 고정밀도의 정보가 핵심입니다. 따라서 사소한 스타일 문제는 linter로 분리하고, 봇은 조용히 있다가 매우 높은 신뢰도가 있을 때만 발언해야 합니다.
핵심 포인트
- AI 리뷰어는 잡음이 많으면 무시당하기 쉽습니다.
- 재현율보다 정밀도(precision)를 높이는 것이 중요합니다.
- 사소한 스타일 문제는 linter로 분리하는 것이 좋습니다.
- 봇은 조용히 있다가 고신뢰 정보만 제공해야 합니다.
1년 전, 우리는 모든 PR(Pull Request)에 AI 리뷰어를 도입했습니다. 지난달에는 대부분의 기능을 비활성화했습니다. 잘못되어서가 아니라, 너무 잡음이 많았기 때문입니다. 그리고 잡음은 리뷰 도구가 날카로움을 잃게 만드는 원인입니다.
감쇠는 예측 가능하다
첫 주: 모두가 모든 댓글을 읽습니다. 3주 차: 봇이 41번째 줄의 형식적 사소함(formatting nit), 88번째 줄의 가능한 null 값, 그리고 변수 이름에 대한 질문을 제기합니다. 이 중 두 개는 본질적으로 중요하지 않은 문제입니다(bikesheds). 6주 차가 되면, 병합(merge)이 막혔는지 확인하기 위해 맨 아래로 스크롤하고 나머지는 건너뜁니다.
이것이 함정입니다. 봇이 거짓말을 하는 것이 아닙니다. 단지 자신이 아는 모든 검사를 모든 diff에 실행할 뿐이며, 그 검사들 대부분은 정밀도(precision)가 낮습니다. 그래서 신호 대 잡음비(signal-to-noise ratio)가 감쇠하여 댓글들이 배경화면처럼 느껴집니다.
그러다 진짜 중요한 것을 발견해도 아무도 읽지 않습니다.
여기서는 재현율(recall)보다 정밀도가 중요하다
리뷰 봇에게 있어 재현율은 잘못된 목표입니다. 모든 것을 찾게 하는 것이 아니라, 봇이 말하는 내용들이 주목할 가치가 있도록 해야 합니다. 말할 때 80%의 확률로 맞는 봇은 읽힙니다. 말할 때 40%의 확률로 맞는 봇은 배경으로 취급됩니다.
핵심은 신뢰도가 낮은 규칙들을 낮추는 것입니다. 스타일 관련 사소한 문제는 PR 댓글에 넣을 것이 아니라 linter에 넣어야 합니다. 의도에 대한 추측은 차단하는 스레드가 아니라 제안(suggestion)에 포함되어야 합니다. 봇은 기본적으로 조용해야 하며, 기계적이고 신뢰도가 높은 무언가가 있을 때만 크게 말해야 합니다.
고신뢰 정보가 존재하는 곳
제거 과정을 거치고 살아남는 검사들은 '진실 값(ground truth)'을 가진 것들입니다.
리뷰 봇의 기록을 열어보고, 규칙별로 사람이 거부하거나 무시한 횟수를 세어보세요. 가장 낮은 '스트라이크율(strike rate)'을 가진 규칙부터 비활성화됩니다. 그 결과, 이전에 모든 PR에 댓글을 달던 봇이 이제는 다섯 개 중 하나에만 댓글을 달게 되는데, 그렇게 할 때 사람들은 그것을 읽습니다.
아무도 읽지 않는 리뷰어는 리뷰어가 없는 것보다 더 나쁩니다. 왜냐하면 '검토가 이루어지고 있다'는 느낌을 주기 때문입니다. 당신의 AI 리뷰어가 남긴 모든 댓글을 실제로 읽은 것이 마지막으로 언제였나요?
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기