PR이 열리면 Sai는 단순히 차이점을 읽는 것이 아니라 미리 보기 배포를 열고 테스트 계정에 로그인한 다음 영향을 받는 사용자 흐름을 단계별로 클릭합니다.모든 상태 전환을 스크린샷하고 문제가 있는 경우 플래그를 지정하여 리뷰어에게 코드 주석 대신 시각적 증거를 제공합니다.
스크린샷에서 자동 버그 복제
사용자의 버그 스크린샷을 Sai에 붙여넣습니다.앱을 탐색하고 문제를 유발하는 정확한 클릭 순서를 찾고, 재현 단계, 예상 행동과 실제 행동, 주석이 달린 스크린샷이 포함된 엔지니어링 지원 티켓을 생성하여 모호한 보고서를 Claude Code의 실행 가능한 컨텍스트로 전환합니다.
폐쇄형 루프 수정 검증
Claude Code가 코드를 패치한 후 Sai는 동일한 테스트 흐름을 자동으로 다시 실행합니다.이전 및 이후 스크린샷을 캡처하고, Sentry에서 새로운 오류가 있는지 확인하고, 구조화된 합격/불합격 보고서를 Slack 또는 GitHub에 게시하므로 팀에서 제품에서 실제로 작동하는지 확인하지 않고는 수정 사항을 병합할 필요가 없습니다.
아무도 말하지 않는 코드 리뷰 병목 현상
팀이 검토하는 것보다 더 빨리 배송합니다.
AI 코딩 에이전트 (클로드 코드, 커서, GitHub Copilot) 는 실제 리뷰어가 읽을 수 있는 것보다 빠르게 풀 리퀘스트를 생성합니다.점심 식사 전에 3개의 PR을 검토하던 선임 엔지니어가 이제 열두 개를 맞이하게 되었습니다.코드가 깔끔해 보입니다.테스트를 통과했습니다.린터가 조용해요.
하지만 결제 페이지가 깨졌습니다.
이것이 2025년의 코드 리뷰 격차입니다. “코드가 정확함”과 “제품이 작동함” 사이의 거리입니다.사람이든 AI이든 관계없이 기존의 코드 리뷰에는 차이가 있습니다.로직, 패턴, 구문을 검사합니다.앱을 열고 결제 과정을 클릭해서 쿠폰을 적용해도 총 금액이 마이너스 4달러로 떨어지는 것을 확인할 수는 없습니다.
대부분의 AI 코드 검토 도구는 이러한 격차를 좁히는 것이 아니라 더 넓게 만듭니다.더 많은 댓글, 더 많은 제안, 더 많은 노이즈를 생성합니다.Reddit의 엔지니어들은 이 패턴을 다음과 같이 설명합니다. “모든 댓글이 진짜인지 여부를 확인하기 위해 사람이 필요하기 때문에 AI 검토는 절약하는 것보다 더 많은 작업을 생성합니다.”
문제는 코드 검토가 너무 느리다는 것이 아닙니다.문제는 코드 검토가 불완전하다는 것입니다.코드를 검토합니다.아무도 제품을 리뷰하지 않습니다.
이 가이드에서는 코드 검토 자동화의 세 가지 계층을 살펴봅니다.
수동 검토 — 오늘날 대부분의 팀이 하는 방식
클로드 코드 리뷰 — 자동 차이 분석을 통한 /리뷰 및 깃허브 액션
행동 우선 검토 — Sai가 제품을 테스트하는 동안 클로드 코드가 코드를 읽습니다.
마지막으로 각 등급을 설정하는 방법, 사용 시기, 실시간 비용 절감 효과를 정확히 알 수 있습니다.
클로드 코드가 풀 리퀘스트를 검토하는 방법
클로드 코드는 터미널에서 실행되는 앤트로픽의 AI 코딩 에이전트입니다.코드베이스를 읽고 프로젝트 컨텍스트를 이해하며 단순한 린팅을 훨씬 뛰어넘는 수준에서 코드를 검토할 수 있습니다.
/리뷰 명령
Claude Code 리뷰를 받는 가장 빠른 방법은 내장 코드입니다. /리뷰 명령:
# Review your current working changesclaude review
# Review a specific PRclaude review --pr 142
클로드 코드는 여러 특수 하위 에이전트를 사용하여 차이를 분석합니다.
로직 리뷰어 — 정확성, 엣지 케이스 및 회귀 검사
보안 검토자 — 취약성, 비밀 노출, 인젝션 벡터 스캔
스타일 리뷰어 — 명명 규칙, 패턴 및 가독성 표준을 적용합니다.
아키텍처 리뷰어 — 구조적 문제 및 패턴 위반에 대해 플래그를 지정합니다.
각 하위 에이전트는 해당 도메인에 초점을 맞추고 독립적으로 보고합니다.그 결과 범주별로 분류된 결과, 심각도 수준, 제안된 수정 사항이 포함된 구조화된 검토가 이루어집니다.
깃허브 액션으로서의 클로드 코드
클로드 코드는 모든 푸시에 대한 자동화된 PR 검토를 위해 GitHub 작업을 제공합니다.
재현 단계:1.오렌지 3개를 개당 $2에 추가하세요.장바구니 총액: 6.002달러.쿠폰 코드 SAVE5 적용.장바구니 총액: 1.003달러.오렌지 한 개를 제거합니다.장바구니 총액: -1.004달러.결제를 클릭하세요.오류: “음수 합계를 처리할 수 없습니다.” 예상: 합계는 $4.00 - $4.00 (상한) = $0.00실제: 총 쇼 -$1.00스크린샷: [before_coupon.png] [after_remove.png] 콘솔 오류: 없음Entry: 새 오류가 기록되지 않음
이것은 차이점에 대한 모호한 설명이 아닙니다.증거가 있는 QA 티켓입니다.
6 단계: 클로드 코드가 코드를 수정합니다.
Claude Code는 Sai로부터 구조화된 복제 단계, 스크린샷 및 오류 컨텍스트를 수신합니다.무엇이 잘못되었는지 추측하는 대신 정확히 다음과 같은 사실을 알아냅니다.
영향을 받는 페이지
버그를 유발하는 작업 순서는 무엇입니까?
예상되는 동작은 무엇이어야 하는가
실제 행동은 무엇인가
추측성 제안이 아닌 타겟팅된 수정 사항을 생성합니다.
7단계: Sai가 수정 사항을 다시 테스트합니다.
클로드 코드가 코드를 패치한 후 Sai는 동일한 테스트 시퀀스를 다시 실행합니다.
쿠폰 적용 → 상품 삭제 → 총액 확인
합계가 더 이상 마이너스가 되지 않는지 확인합니다.
전/후 스크린샷 캡처
Sentry에서 새 오류를 확인하십시오.
8단계: 슬랙/GitHub에 구조화된 보고서 작성
최종 결과물은 팀 채널에 게시된 구조화된 QA 보고서입니다.
Sai QA Review: PR #247 — Coupon Discount Logic
Status: ✅ Fixed and verified
Issue found:
Cart total became negative when removing items after applying coupon.
Root cause:
Coupon discount was applied as fixed amount without
recalculating against updated cart total.
Fix applied:
Added cap logic — discount cannot exceed current cart subtotal.
Verification:
- Before fix: Total = -$1.00 after removing item [screenshot]
- After fix: Total = $0.00, coupon capped correctly [screenshot]
- Sentry: No new errors
- Checkout flow: Completes successfully
When a PR modifies files in /src/checkout/:
1. Open preview deployment URL
2. Log inwith test account
3. Add 3 items to cart
4. Apply coupon TESTCOUPON
5. Modify quantities
6. Remove one item
7. Proceed to checkout
8. Screenshot each step
9. Report any total that is negative or mismatched
4단계: 보고 구성
Sai가 결과를 보낼 위치를 선택하세요.
깃허브 홍보 댓글 — 코드 리뷰와 함께
슬랙 채널 — 팀 가시성 확보
선형 티켓 — 트래킹이 필요한 블로커용
5단계: 실행 및 반복
처음 몇 개의 PR은 시스템을 보정합니다.Sai는 어떤 흐름이 중요한지, “올바른” 것이 무엇인지, 어디에서 오탐이 발생하는지 알아냅니다.일주일이 지나면 코드 수준과 제품 수준의 문제를 자동으로 찾아내는 리뷰 파이프라인을 갖게 됩니다.
Aspect
Tier 1: Manual
Tier 2: Claude Code
Tier 3: Claude Code + Sai
Setup time
None
15 min (GitHub Action)
30 min (webhook + flows)
Review speed
30-60 min / PR
2-5 min / PR
3-7 min / PR
Catches logic bugs
✅
✅
✅
Catches visual bugs
❌
❌
✅
Tests user flows
❌
❌
✅
Provides evidence
Text comments
Inline comments
Screenshots + STR
Verifies fixes
Manual re-review
❌
✅ Automated re-test
Human time / PR
30-60 min
10-15 min
2-5 min
다섯 가지 실제 시나리오
시나리오 1: 전자 상거래 결제 버그
트리거: PR은 결제 처리 로직을 업데이트합니다.
클로드 코드는 다음을 발견합니다. 거부된 카드에 대한 오류 처리가 누락되었습니다.
Sai는 다음을 찾습니다. 카드를 거부한 후에는 사용자가 유효한 카드를 입력하더라도 “주문하기” 버튼이 비활성화된 상태로 유지됩니다.로딩 스피너는 절대 지워지지 않습니다.
결과: 클로드 코드는 오류 처리를 수정합니다.Sai는 카드 입력에 성공하면 버튼이 다시 활성화되는지 확인합니다.QA 보고서가 Slack에 게시되었습니다.
시나리오 2: 대시보드 반응형 디자인 브레이크
트리거: PR은 대시보드 그리드 레이아웃을 리팩터링합니다.
클로드 코드는 다음을 발견합니다. 논리적 문제는 없습니다.CSS 변경이 정확해 보입니다.
Sai는 다음을 찾습니다. 태블릿 뷰포트 (768px) 에서 사이드바는 기본 콘텐츠 영역과 겹칩니다.두 개의 차트 위젯이 탐색 패널 뒤에 완전히 숨겨져 있습니다.
결과: Sai는 세 개의 중단점에서 오버랩을 스크린샷합니다.클로드 코드는 그리드 중단점 값을 조정합니다.Sai는 레이아웃이 어떤 크기에서든 깔끔한지 다시 테스트하고 확인합니다.
시나리오 3: 인증 흐름 회귀
트리거: PR은 구글 로그인을 위한 OAuth 통합을 업데이트합니다.
클로드 코드는 다음을 발견합니다. 토큰 새로고침 로직이 올바른 것 같습니다.범위가 제대로 구성되었습니다.
Sai는 다음을 찾습니다. 콜백 URL이 코드에서 업데이트되었지만 Google 클라우드 콘솔 구성에서는 업데이트되지 않았기 때문에 Google에 로그인하면 리디렉션이 404 페이지에 표시됩니다.
결과: 사이는 404를 스크린샷으로 찍었습니다.팀에서 Google 클라우드 콘솔을 업데이트합니다.Sai는 로그인, 리디렉션, 세션 생성 등 전체 OAuth 흐름을 다시 테스트하고 처음부터 끝까지 작동하는지 확인합니다.
시나리오 4: 스크린샷에서 사용자 버그 리포트 재현
트리거: 사용자가 Slack에 스크린샷을 게시합니다. “이 페이지는 깨진 것 같습니다.”
클로드 코드만 해도: 스크린샷을 처리할 수 없습니다.코드 컨텍스트가 필요합니다.
사이: 동일한 페이지를 열고, 깨진 레이아웃을 식별하고, 클릭하여 정확한 상태를 재현합니다.주석이 달린 스크린샷 3개를 사용하여 재현 단계를 생성합니다.Hands Claude Code에 파일 경로, 페이지 URL, 예상 동작과 실제 동작을 비교하세요.
결과: 클로드 코드는 최근에 병합된 PR에서 z-인덱스 충돌을 식별합니다.문제를 수정했습니다.Sai는 페이지가 제대로 렌더링되는지 확인합니다.
시나리오 5: API 변경으로 프런트엔드가 자동으로 중단됨
트리거: 백엔드 PR은 응답 형태를 변경합니다. /api/주문 — 이름 변경 총액_금액 에 총 금액.
클로드 코드는 다음을 발견합니다. API 변경은 새로운 명명 규칙과 일치합니다.백엔드 테스트를 통과했습니다.
Sai는 다음을 찾습니다. 프런트엔드 주문 내역 페이지에는 모든 주문 총액에 대해 “$NaN”이 표시됩니다.프론트엔드 코드는 여전히 참조합니다. 총액_금액.
결과: Sai는 고장난 주문 내역을 스크린샷으로 찍습니다.클로드 코드는 프론트엔드 레퍼런스를 찾아 업데이트합니다.Sai는 실제 데이터로 주문 내역 페이지를 다시 테스트합니다.
Stop doing repetitive tasks. Let Sai handle them for you.
Sai is your AI computer use agent — it operates your apps, automates your workflows, and gets work done while you focus on what matters.