PR 리뷰를 돕기 위해 적대적 코드 리뷰 워크플로우를 구축했습니다
I built an adversarial code review workflow to help me with PR reviews
핵심 요약
두 개의 AI 모델이 PR을 교차 검증하고 핵심 이슈만 추려내어 코드 리뷰 시간을 획기적으로 단축한 사례입니다.
- 적대적 리뷰 워크플로우 — 두 개의 AI 모델이 서로 검증하고 합의된 결과만 PR에 반영함
- 시간 효율성 극대화 — 단순 반복 작업은 AI가 처리하고 인간은 최종 핵심 검토에만 집중함
- 지속적 개선 — 워크플로우가 실패할 때마다 규칙을 추가하여 시스템을 고도화함
- 리뷰어 일지 활용 — 실패 사례를 기록하고 규칙화하여 향후 리뷰의 컨텍스트로 재사용함
세 줄 요약: 모델 두 마리가 맞짱 뜨고, 판사가 정리해서 살아남은 의견만 댓글로 달림.
난 백엔드 팀 이끄는 수석 엔지니어고, 관리하는 레포만 12개 정도 됨. 리뷰 요청은 계속 쌓이는데 내 할 일도 쳐내야 하니 미칠 노릇이지. 대충 훑어보고 버그 섞인 쓰레기 코드 배포할 순 없잖아? 그렇다고 내가 붙잡고 있으면 팀 전체가 멈추고. 그래서 나랑 팀원들 일거리 안 늘리면서 이 지옥 같은 리뷰 업무를 쳐낼 방법을 고민했음.
그래서 내 밥그릇 지키려고 적대적 코드 리뷰 워크플로우를 하나 만들었다.
이제 PR 할당받으면 내가 읽기도 전에 벌어지는 일:
'D'Brickashaw'라고 이름 붙인 Claude Code 세션에 PR 링크를 던져 넣음. 그럼 알아서 돌아감:
-
D'Brickashaw가 내 리뷰 플레이북을 실행함. GitHub cli로 PR 메타데이터 긁어오고, PR별 리포트 노트 만들고, 로컬 추적 테이블에 행 추가해서 중복 실행 방지함.
-
그다음, 플레이북이 세션 두 개를 새로 띄움. 하나는 structured code review를 돌리는 Claude Code, 다른 하나는 자체
/review명령어를 쓰는 Codex. 각 세션이 발견한 내용을 공유 리포트 노트에 적음. -
D'Brickashaw가 내용을 취합하고 필터링함. 설명이 필요하거나 의견이 갈리면 지들끼리 메시지 주고받으면서 합의 볼 때까지 싸움. 마지막으로 살아남은 의견만 PR 인라인 댓글로 달림. 팀원들이 이 봇을 증오하게 만들 순 없으니 사소한 지적(nit)은 다 걸러냄. 아예 댓글 안 달고 테스트만 해보는
dry_run플래그도 있음. -
그제야 내가 PR을 확인함. 이미 뻔한 잔챙이들은 다 걸러진 상태라, 나는 진짜 핵심적인 부분만 보면 됨.
AI 쓰기 전에는 덩치 큰 PR 하나 리뷰하는 데 몇 시간씩 걸렸는데, 이제는 워크플로우가 1시간도 안 걸리고, 나는 15분이면 끝남!
제일 좋은 건 이 워크플로우가 고장 날 때마다 점점 더 똑똑해진다는 거임. 에러 날 때마다 미션 노트에 규칙이 하나씩 추가되거든.
혹시 너희도 코드 리뷰할 때 이런 식으로 적대적 리뷰 써먹는 사람 있냐? 궁금하네.


