Skip to main content
블로그로 돌아가기
블로그

AI 에이전트로 코드 리뷰를 자동화하는 방법

한 에이전트가 코드를 작성하고 다른 에이전트가 리뷰하는 자동화된 AI 코드 리뷰 파이프라인을 실용적인 예제와 설정으로 구성하는 방법입니다.

코드 리뷰는 소프트웨어 개발에서 가장 가치가 높은 활동 중 하나입니다. 버그를 잡고, 표준을 지키게 하고, 팀 전체에 지식을 전파합니다. 동시에 병목이기도 합니다. 리뷰어는 자기 일과 들어오는 PR 사이를 오가며 작업 전환을 반복하고, 리뷰는 대기열에 쌓입니다.

AI 에이전트는 코드를 즉시 리뷰할 수 있습니다. 그리고 적절하게 구성하면 전체 흐름을 자동화할 수 있습니다. 한 에이전트가 코드를 작성하고, 다른 에이전트가 리뷰하고, 문제를 고치고, 다시 리뷰하는 과정을 사람의 개입 없이 진행할 수 있습니다.

설정 방법은 다음과 같습니다.

기본 패턴

Writer Agent → Review Agent → Writer Agent (fix) → Review Agent (approve)
  1. 작성 에이전트가 기능이나 버그 수정을 구현합니다.
  2. 완료되면 출력이 자동으로 리뷰 에이전트에게 전달됩니다.
  3. 리뷰어가 변경 사항을 분석하고 문제를 보고합니다.
  4. 문제는 수정용으로 다시 작성 에이전트에게 전달됩니다.
  5. 리뷰어가 승인하거나 라운드 제한에 걸릴 때까지 이 과정을 반복합니다.

1단계: 리뷰 기준 정의

리뷰 에이전트는 명확한 기준이 필요합니다. 기준이 없으면 "에러 처리를 추가해보세요" 같은 일반적인 피드백만 내놓게 됩니다. 별 도움이 되지 않습니다.

좋은 리뷰 프롬프트에는 구체적인 기준이 포함되어야 합니다.

다음 기준으로 변경 사항을 리뷰하세요:
1. 정확성 - 로직이 엣지 케이스를 포함한 모든 경우를 처리하는가?
2. 보안 - SQL 인젝션, XSS, 인증 우회 위험이 있는가?
3. 성능 - N+1 쿼리, 불필요한 할당, 블로킹 호출이 있는가?
4. 에러 처리 - 오류가 올바르게 포착, 로깅, 전파되는가?
5. 일관성 - 코드베이스의 기존 패턴을 따르는가?

모든 기준이 통과하면 "LGTM" (Looks Good To Me)이라고 응답하세요.
문제가 있으면 파일 경로와 줄 번호를 포함해 각 항목을 나열하세요.

"LGTM" 키워드는 중요합니다. 리뷰가 통과되었음을 나타내며, 라우팅 루프를 멈추는 신호가 됩니다.

2단계: 작성 에이전트 설정

작성 에이전트에게는 집중된 작업을 줍니다.

/api/auth/login 엔드포인트에 속도 제한을 구현하세요.
IP당 분당 5회 시도로 제한하는 슬라이딩 윈도우 알고리즘을 사용하세요.
기존 Redis 클라이언트가 있는 src/lib/redis.ts를 사용해 윈도우를 저장하세요.

구체적인 작업일수록 구체적인 변경이 나오고, 리뷰 품질도 좋아집니다.

3단계: 라우팅 연결 구성

작성자에서 리뷰어로 다음 설정으로 연결합니다.

설정값이유
Triggeron-idle리뷰 전에 작성이 완전히 끝날 때까지 기다림
Transformai-routingAI가 문맥을 고려한 리뷰 프롬프트 생성
Max rounds3무한 리뷰 루프 방지
Stop keywordLGTM리뷰어가 승인하면 종료
Cooldown5s에이전트가 완전한 응답을 낼 수 있도록 충분한 시간 확보

여기서 ai-routing 변환이 중요합니다. 작성 에이전트의 전체 응답을 읽고(Claude Code의 경우 JSONL 세션 해석을 통해), 무엇이 구현되었는지 이해한 뒤, 변경된 파일과 구현 맥락을 포함한 리뷰 프롬프트를 생성합니다.

4단계: 역방향 연결 구성

리뷰 루프가 동작하려면 리뷰어에서 작성자 쪽으로의 연결도 필요합니다.

설정값이유
Triggeron-idle전체 리뷰가 끝날 때까지 기다린 뒤 되돌림
Transformai-routing리뷰 피드백을 수정 지시로 변환
Max rounds3정방향과 동일한 제한
Stop keywordLGTM리뷰어가 승인했다면 되돌리지 않음

역방향 변환은 리뷰 코멘트를 실행 가능한 수정 지시로 바꿉니다. 예: "src/middleware/rate-limit.ts:42의 속도 제한 우회 문제를 고치세요. 프록시 뒤에서 X-Forwarded-For 헤더를 처리하지 못합니다."

기대할 수 있는 것

전형적인 자동화 리뷰 사이클:

라운드 1 (작성자 → 리뷰어):

  • 작성자가 3개 파일에 걸쳐 속도 제한을 구현합니다.
  • 라우터가 구현 요약을 추출해 리뷰어에게 보냅니다.
  • 리뷰어가 2개의 문제를 찾습니다. X-Forwarded-For 처리 누락과 429 응답 테스트 부재입니다.

라운드 2 (리뷰어 → 작성자 → 리뷰어):

  • 라우터가 리뷰 피드백을 수정 지시로 변환합니다.
  • 작성자가 두 문제를 수정하고 누락된 테스트를 추가합니다.
  • 라우터가 업데이트된 구현을 리뷰어에게 보냅니다.
  • 리뷰어가 "LGTM - 속도 제한이 프록시 헤더를 올바르게 처리하고 테스트 커버리지도 있습니다."라고 응답합니다.

종료: "LGTM" 키워드가 중지 조건을 트리거합니다. 총 소요 시간은 약 8분, 2라운드입니다.

자동 리뷰가 특히 잘 맞는 경우

  • 범위가 분명한 변경 - 단일 기능이나 버그 수정처럼 범위가 명확한 작업
  • 명확한 기준 - 좋은 결과가 무엇인지 정확히 정의할 수 있는 경우
  • 점진적 개선 - 첫 구현이 대략 80% 맞고, 완전한 재작성보다는 다듬기가 필요한 경우

인간 리뷰를 쓰는 편이 나은 경우

  • 아키텍처 결정 - AI 에이전트는 구현 품질은 검토하지만, 접근 방식이 옳은지 판단하지는 못합니다.
  • 팀 간 영향 - 다른 팀에 영향을 주는 변경은 조직 우선순위에 대한 사람의 맥락이 필요합니다.
  • 민감한 코드 - 인증, 암호화, 금융 로직은 AI 리뷰와 더불어 반드시 사람의 검토가 필요합니다.

자동화된 AI 리뷰는 인간 리뷰를 대체하는 것이 아니라 보완합니다. 기계적으로 잡을 수 있는 문제를 먼저 걸러내고, 사람 리뷰어는 더 전략적인 질문에 집중하게 하세요.

자동 리뷰를 위한 도구

이 파이프라인은 두 개의 터미널 창으로 수동 구성할 수 있지만, 리뷰 출력을 복사하고 수정 지시로 다시 포맷하고, 작성자에게 붙여 넣는 과정은 번거롭습니다.

MadoHub은 이 전체 흐름을 자동화합니다. 캔버스에 두 개의 터미널 에이전트를 배치하고, 서로 연결한 뒤, trigger/transform/stop 설정을 구성하고 작성자를 시작하세요. 나머지는 라우팅 시스템이 처리합니다. 추출, 변환, 전달, 루프 종료까지 모두 포함됩니다.

요약

자동화된 AI 코드 리뷰는 다중 에이전트 워크플로 중 ROI가 가장 높은 사례 중 하나입니다.

  • 빠름 - 리뷰가 몇 시간 대신 몇 초 만에 일어납니다.
  • 일관됨 - 리뷰 기준이 매번 같습니다.
  • 반복적 - 이슈가 후속 PR이 아니라 즉시 수정됩니다.
  • 보완적 - 인간 리뷰와 함께 쓰면 더 완전한 검토가 가능합니다.

설정은 5분이면 됩니다. 시간 절감 효과는 매일 복리처럼 쌓입니다.