16. AI 협업 코드리뷰 가이드
0. 먼저 알고 가기 (30초 요약)
- AI 제안은 작업 속도를 올리지만 최종 판단은 사람의 맥락 이해입니다.
- 제안은 테스트/근거/리스크를 분리해서 검토하면 오탐을 줄입니다.
- 사람의 리뷰가 지표와 정책을 통과하면 바로 반영, 아니면 재요청하세요.
왜 중요한가: AI 리뷰는 노이즈를 줄이고 사람의 주의력을 위험 구간에 모으는 도구입니다. 사람의 승인 책임을 대체하면 사고가 났을 때 책임 소재가 사라집니다.
일상 비유: 공장의 자동 검사 라인과 같습니다. 카메라(AI)가 1차로 결함을 걸러주지만, 출고 전 최종 인장 도장은 검사관(사람)이 찍습니다.
초심자용 한눈에 보기
AI는 속도 보조 도구이지 최종 결정권이 아닙니다. 사람이 최종 판단합니다.
flowchart LR D[작성자] -->|작은 PR| AI[AI 1차 리뷰] AI -->|시그널 정리| H[사람 reviewer] H -->|blocking 해결 확인| O[Code Owner 승인] O --> M[Merge + 모니터링]
핵심 용어 빠르게 정리
| 용어 | 쉬운 뜻 |
|---|---|
AI 제안 |
생성된 수정안이나 리뷰 코멘트 |
근거 링크 |
변경 이유를 뒷받침하는 문서/로그 |
triage |
finding 분류(즉시 반영/보류/제거) |
검증 |
로컬 테스트, 리뷰, 정책 검토로 실제 동작 확인 |
인수인계 |
AI 제안을 사람이 최종 승인/결정하고 반영하는 과정 |
| 분류 | 협업 & 품질 | 상태 | Stable |
|---|---|---|---|
| 연관 가이드 | 07. 테스팅, 15. 의사결정, 18. AI 워크플로우 | 도구 원칙 | 벤더 중립 |
| 핵심 테마 | 작은 PR, 리뷰 기준, AI 보조 검토, Conventional Comments, merge 책임 | Update | 최신 기준 |
코드리뷰 표준은 특정 AI 리뷰 서비스가 아니라 변경 의도, 위험도, 검증 증적, 사람의 책임 있는 승인을 일관되게 남기는 협업 방식입니다.
추천 항목 (실무 우선순위)
- 시작 추천: AI 제안 요청 템플릿을 만들고 근거 링크/테스트 산출물을 함께 요구하세요.
-
안정 추천: PR template에
사람 최종 승인라인과리스크 사전 검토를 넣어 오탐을 줄입니다. - 운영 추천: 반복 오류는 같은 루프에서 반복하지 않도록 체크리스트 자동화로 학습합니다.
추천 항목 고도화 체크
-
첫 적용— AI finding triage와 사람 승인 책임 중 하나를 실제 PR이나 운영 이슈에 붙이고, 변경 전 기준을 먼저 적는다. -
증거 정리— finding disposition, 최신 head SHA review, 사람 reviewer 승인를 같은 작업 기록에 남긴다. -
재점검— false positive, 미해결 thread, 재리뷰 횟수가 나아졌는지 30일 안에 확인하고 기준을 유지, 수정, 폐기 중 하나로 판정한다.
추천 항목 실행 기록 템플릿
-
작업: AI finding triage와 사람 승인 책임 적용 범위를 어느 화면, 패키지, 문서에 둘지 적는다. -
증거: finding disposition, 최신 head SHA review, 사람 reviewer 승인 중 실제로 남긴 항목만 링크한다. 판정: 유지/수정/폐기 중 하나와 이유를 한 문장으로 남긴다.-
다음 점검: false positive, 미해결 thread, 재리뷰 횟수를 다시 볼 날짜와 담당자를 지정한다.
문서 책임 범위
| 이 문서가 결정하는 것 | 단일 출처로 따르는 문서 |
|---|---|
| PR 크기, 리뷰 관점, merge 책임, Conventional Comments | 15. 의사결정, 11. CI/CD |
| 테스트/보안/성능/접근성 증적을 리뷰에서 확인하는 기준 | 07. 테스팅, 06. 보안, 08. 성능, 19. 웹 접근성 |
| AI 보조 리뷰의 non-blocking/blocking 판단 기준 | 18. AI 개발 워크플로우 |
| 신규 구성원이 리뷰 기준을 학습하는 경로 | 17. 온보딩 |
0. 모든 프론트엔드 그룹 공통 Baseline
| 영역 | 공통 기준 | 실패 시 |
|---|---|---|
| PR 크기 | 리뷰 가능한 작은 단위로 분리 | 분할 요청 |
| 변경 의도 | 문제, 해결 방식, 영향 범위, 검증 방법 기재 | 리뷰 보류 |
| 자동 검증 | lint, type, test, build, security gate 통과 | merge 차단 |
| 리뷰 관점 | correctness, security, performance, accessibility, maintainability | 누락 관점 추가 요청 |
| AI 역할 | 초안 검토, 위험 후보 제안, 테스트 누락 탐지 | 사람 승인 전 참고만 |
| 책임 | 최종 merge 책임은 reviewer와 owner에게 있음 | AI 단독 승인 금지 |
| 증적 | 중요한 논의와 결정은 PR/RFC/ADR에 남김 | 추적 불가 시 보완 |
0.0 리뷰 플로우(사람+AI)
flowchart TD
A[PR 생성] --> B[자동 체크 lint/type/test/security]
B --> C{필수 게이트 통과}
C -->|실패| D[작성자 수정]
D --> B
C -->|통과| E[AI 보조 리뷰]
E --> F{블록킹 여부}
F -->|있음| G[수정 후 재요청]
G --> E
F -->|없음| H[Review/Owner 승인]
H --> I[Merge]
I --> J[배포 후 모니터링]
J --> K[피드백 반영]
0.0.1 사람과 AI의 역할 분담
flowchart TB
subgraph AI역할["AI가 잘하는 영역"]
A1[diff 요약]
A2[테스트 누락 후보]
A3[보안/접근성 체크리스트]
A4[유사 패턴 검색]
A5[PR 분할 제안]
end
subgraph Human역할["사람이 책임지는 영역"]
H1[비즈니스 의도 확인]
H2[보안/규제/계약 판단]
H3[Merge approval]
H4[운영 rollback 책임]
H5[ADR/RFC 결정 기록]
end
AI역할 -.근거 제공.-> Human역할
Human역할 -.피드백/규칙 보정.-> AI역할
비유: 의료 영상 판독 보조 AI와 같습니다. AI가 의심 영역을 강조해주지만, 진단서 서명은 의사가 합니다.
0.1 교차 검증 매트릭스
| 권고 | 1차 출처 | 실행 증거 | 운영 증거 | 철회 조건 |
|---|---|---|---|---|
| 작은 PR | 코드리뷰 연구와 팀 cycle time | PR size report | escaped defect, review latency | 대형 변경은 stacked PR로 분할 |
| AI 보조 리뷰 | 18. AI 워크플로우 정책 | AI finding 재현 test | false positive/false negative | 검증 없는 AI blocking 금지 |
| Merge 책임 | CODEOWNERS/ownership 기준 | approval record | rollback/incident owner 추적 | owner 불명확 PR merge 금지 |
0.1.1 AI finding 처리 판정표
flowchart TD
START["AI finding 도착"] --> REPRO{"재현 가능한가?"}
REPRO -->|"아니오"| LABEL_FALSE["false positive로 표시<br/>규칙 보정 후보 등록"]
REPRO -->|"예"| RISK{"보안/데이터/접근성/성능<br/>위험인가?"}
RISK -->|"예"| BLOCK["blocking finding<br/>수정 또는 명시적 거절 사유 필요"]
RISK -->|"아니오"| TEST{"테스트나 로그로<br/>확인 가능한가?"}
TEST -->|"예"| FOLLOW["follow-up 또는 현재 PR 반영"]
TEST -->|"아니오"| HUMAN["사람 reviewer 판단으로<br/>non-blocking 처리"]
BLOCK --> VERIFY["수정 commit + 최신 head 재리뷰"]
FOLLOW --> VERIFY
VERIFY --> OWNER{"owner 승인 완료?"}
OWNER -->|"예"| MERGE["merge 가능"]
OWNER -->|"아니오"| WAIT["승인 대기"]
0.2 운영 게이트
| Gate | Evidence | Owner | Rollback |
|---|---|---|---|
| PR readiness | 변경 의도, 위험도, 검증 결과, 관련 링크 | Author | draft 전환 또는 PR 분할 |
| AI review | 재현 가능한 finding, test/link, false-positive 표시 | Reviewer | AI 코멘트 non-blocking 처리 |
| Merge approval | owner approval, 품질 gate, rollback owner | Code owner | merge 보류 또는 revert owner 지정 |
| Review latency | review SLA, PR size, blocking reason | Team lead | reviewer 재배정 또는 stacked PR 전환 |
1. PR 작성 기준
| 항목 | 작성 기준 |
|---|---|
| Summary | 무엇을 바꿨는지 3줄 이내 |
| Motivation | 왜 필요한 변경인지 |
| Scope | 포함/미포함 범위 |
| Risk | 사용자 영향, rollback 난이도, migration 여부 |
| Test | 실행한 테스트와 결과 |
| Screenshot/Trace | UI 변경, E2E, 성능 변경 증적 |
| Links | 관련 issue, RFC, ADR, design, incident |
좋은 PR 설명은 reviewer가 코드를 열기 전에 위험도를 판단할 수 있게 합니다.
2. 리뷰 관점
| 관점 | 질문 |
|---|---|
| Correctness | 요구사항을 실제로 만족하는가, edge case가 처리되는가 |
| Type safety | API boundary와 external input이 검증되는가 |
| Security | 인증/인가/secret/PII/XSS/CSRF 위험이 없는가 |
| Performance | 렌더링, bundle, network, cache 비용이 증가하지 않는가 |
| Accessibility | keyboard, focus, name/role/value, contrast가 유지되는가 |
| Reliability | 실패 상태, retry, fallback, rollback이 있는가 |
| Maintainability | ownership, layering, naming, duplication이 적절한가 |
| Testability | 변경 위험에 맞는 테스트가 있는가 |
리뷰어는 취향보다 기준을 근거로 코멘트합니다. 기준이 없다면 새 표준/RFC 후보로 올립니다.
3. AI 리뷰 사용 기준
왜 중요한가: AI 리뷰를 무차별 적용하면 false positive로 리뷰 피로가 누적되고, 결국 정작 중요한 경고도 무시되는 "양치기 소년" 상태가 됩니다.
AI는 다음 작업에 유용합니다.
- diff 요약과 위험 후보 정리
- 누락된 테스트 케이스 제안
- 보안/성능/접근성 체크리스트 적용
- 큰 PR 분할 제안
- RFC/ADR과 구현의 일치 여부 점검
AI 사용 제한:
- AI 코멘트는 merge approval이 아닙니다.
- AI가 만든 수정안은 로컬 테스트와 사람이 읽는 리뷰를 거칩니다.
- private code, secret, 고객 데이터, 내부 로그는 정책에 맞게 마스킹합니다.
- AI가 찾은 문제는 재현 코드, 테스트, 링크 중 하나로 검증합니다.
3.1 AI finding triage 흐름
flowchart TD
F[AI finding] --> Q1{재현 가능한가}
Q1 -->|아니오| REJECT[reject<br/>오탐 마킹 + 규칙 보정 후보]
Q1 -->|예| Q2{현재 PR<br/>범위 내인가}
Q2 -->|아니오| FU[follow-up<br/>issue + owner + due date]
Q2 -->|예| Q3{기존 정책/ADR과<br/>충돌하는가}
Q3 -->|예| REJECT_DOC[reject<br/>근거 문서 링크 첨부]
Q3 -->|아니오| Q4{blocking 위험인가}
Q4 -->|예| ACCEPT_B[accept blocking<br/>수정 + 테스트 추가]
Q4 -->|아니오| ACCEPT_S[accept suggestion<br/>작성자 판단]
ACCEPT_B --> COMMIT[수정 commit + 검증 명령]
ACCEPT_S --> COMMIT
REJECT --> RULE[규칙 보정 backlog]
REJECT_DOC --> RULE
비유: 우편물 분류와 같습니다. 광고지(reject), 다음 주 처리할 청구서(follow-up), 즉시 처리할 등기우편(accept blocking)으로 나누어야 책상이 정돈됩니다.
4. Conventional Comments
리뷰 코멘트는 의도를 분명히 합니다.
| Prefix | 의미 |
|---|---|
blocking: |
merge 전 반드시 해결 |
suggestion: |
개선 제안, 작성자 판단 가능 |
question: |
의도 확인 |
nit: |
사소한 스타일/표현 |
praise: |
좋은 패턴 강조 |
thought: |
장기 개선 아이디어 |
blocking: 이 API 응답은 외부 입력이므로 runtime validation이 필요합니다.
테스트에는 잘못된 enum 값이 들어왔을 때 fallback되는 케이스도 추가해 주세요.
5. PR 크기와 분할
왜 중요한가: PR 크기는 리뷰 누락률과 거의 선형으로 관련됩니다. 큰 PR은 reviewer가 끝까지 보지 않고 LGTM을 누를 위험이 큽니다.
| 크기 | 기준 | 정책 |
|---|---|---|
| XS | 50줄 이하 | 빠른 승인 가능 |
| S | 200줄 이하 | 권장 |
| M | 400줄 이하 | 변경 의도와 테스트 명확해야 함 |
| L | 800줄 이하 | 분할 검토 |
| XL | 800줄 초과 | 원칙적으로 분할 |
큰 변경은 preparatory refactor -> behavior change -> cleanup 순서로
나누면 리뷰가 쉬워집니다.
5.1 PR 크기와 리뷰 시간/결함의 상관
flowchart LR XS[XS<br/>~50줄] -->|리뷰 5~15분<br/>결함 검출 높음| Q[정상 머지] S[S<br/>~200줄] -->|리뷰 15~30분<br/>핵심 logic 추적 가능| Q M[M<br/>~400줄] -->|리뷰 30~60분<br/>피로 누적 시작| Q L[L<br/>~800줄] -->|리뷰 1~2시간<br/>스킵 위험| WARN[분할 권장] XL[XL<br/>800줄+] -->|LGTM 의례화<br/>escaped defect 급증| SPLIT[필수 분할]
비유: 식사량과 같습니다. 한 끼에 한 끼분만 먹어야 소화가 됩니다. 일주일치를 한 번에 먹으면 탈이 납니다.
5.2 큰 PR 분할 전략
flowchart TB BIG[큰 변경 1개<br/>800줄+] --> P1[1. preparatory refactor<br/>동작 변경 없음, 테스트 그대로 통과] P1 --> P2[2. behavior change<br/>실제 로직 변경, 테스트 새로 추가] P2 --> P3[3. cleanup<br/>죽은 코드/dead config 제거] P3 --> DONE[모든 단계 reviewable]
6. Merge 기준
| 조건 | 기준 |
|---|---|
| Gate | 필수 CI 통과 |
| Approval | 코드 owner 또는 책임 reviewer 승인 |
| Discussion | blocking thread 해결 |
| Documentation | 표준/RFC/ADR 영향이 있으면 문서 업데이트 |
| Release | feature flag, migration, rollback 계획 확인 |
| Ownership | 배포 후 모니터링 owner 확인 |
승인은 "읽었다"가 아니라 "이 변경을 해당 위험도로 배포해도 된다고 판단했다"는 의미입니다.
7. 리뷰 메트릭
왜 중요한가: 메트릭이 없으면 "리뷰 잘하고 있다"는 감각만 남고, 어디가 막혔는지 데이터로 말할 수 없습니다.
| 지표 | 목적 |
|---|---|
| PR size | 리뷰 가능성 관리 |
| Time to first review | 병목 확인 |
| Rework count | 요구사항/설계 불명확성 탐지 |
| Escaped defects | 리뷰 품질 확인 |
| Flaky gate rate | 자동화 신뢰도 관리 |
| Review coverage | owner 없는 영역 탐지 |
메트릭은 사람 평가보다 프로세스 개선에 사용합니다.
7.1 PR 상태 다이어그램
stateDiagram-v2 [*] --> Draft: 작성 시작 Draft --> Open: ready for review Open --> CIRunning: 자동 게이트 진행 CIRunning --> CIFail: 실패 CIRunning --> AIReview: 통과 CIFail --> Draft: 수정 필요 AIReview --> ChangesRequested: AI/사람 blocking AIReview --> ApprovedReady: blocking 없음 ChangesRequested --> Draft: 작성자 수정 ApprovedReady --> Merged: owner approval Merged --> Monitored: 배포/모니터링 Monitored --> [*]: 안정 Monitored --> Reverted: 회귀 감지 Reverted --> Draft: 재설계
8. 체크리스트
- [ ] PR 설명에 변경 의도, 영향 범위, 테스트 결과가 있는가
- [ ] 변경 크기가 리뷰 가능한 단위인가
- [ ] 보안/성능/접근성/장애 대응 관점이 검토되었는가
- [ ] AI 리뷰 결과를 사람이 검증했는가
- [ ] blocking 코멘트가 모두 해결되었는가
- [ ] 문서/RFC/ADR 업데이트가 필요한 변경인지 확인했는가
- [ ] 배포 후 모니터링 owner가 명확한가
9. 제외한 벤더 종속 항목
공통 개발 가이드에는 특정 코드리뷰 SaaS, 특정 SCM bot, 특정 AI 에이전트 제품, 특정 가격/벤치마크, 특정 PR 자동화 action을 팀 표준으로 강제하지 않습니다. 다만 도구를 도입한 저장소가 일관되게 운영할 수 있도록 CodeRabbit 같은 AI 리뷰 도구의 설정 예시는 선택 가이드로 제공합니다.
10. CodeRabbit 설정 운영 예시
CodeRabbit은 사람 리뷰를 대체하지 않고 PR 초안 검토, 반복 품질 규칙, 경로별 체크리스트를 자동으로 상기시키는 도구로 사용합니다.
10.1 .coderabbit.yaml 기본값
# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json
language: ko-KR
tone_instructions: '간결하게, 파일/라인 근거와 재현 가능한 검증 명령을 우선한다.'
early_access: false
reviews:
profile: assertive
request_changes_workflow: false
high_level_summary: true
review_status: true
review_details: true
auto_review:
enabled: true
drafts: false
path_filters:
- '!dist/**'
- '!node_modules/**'
- '!coverage/**'
- '!public/mockServiceWorker.js'
- 'src/**'
- 'public/개발가이드/**'
path_instructions:
- path: 'src/**/*.test.{ts,tsx}'
instructions: 'MSW handler가 실제 API 계약과 같은 fixture를 쓰는지, 성공/실패/empty/error 경로가 모두 있는지 확인한다.'
- path: 'src/**/api/**/*.{ts,tsx}'
instructions: 'hidden side effect, 인증 wrapper 이름, Result/error 반환 계약, timeout/retry/idempotency 정책을 확인한다.'
- path: 'public/개발가이드/**/*.md'
instructions: 'Frontend Fundamentals의 가독성, 예측 가능성, 응집도, 낮은 결합도 기준과 PR 완료 기준이 실무적으로 연결되는지 확인한다.'
tools:
eslint:
enabled: true
markdownlint:
enabled: true
github-checks:
enabled: true
chat:
auto_reply: true
10.2 경로별 리뷰 지침
-
path_filters는 generated code, build output, lockfile, coverage처럼 리뷰 가치가 낮은 파일을 제외합니다. -
path_instructions는 테스트, API, 문서, 보안 파일처럼 관점이 다른 경로에 별도 체크 기준을 둡니다. - CodeRabbit의 third-party tool 연동은 저장소의 ESLint/markdownlint 같은 기존 설정을 기준으로 삼습니다. 도구 설정이 없으면 기본 profile이 쓰일 수 있으므로 중요한 rule은 repository config에 명시합니다.
10.3 주석 룰
-
TODO,FIXME,XXX는 ESLintno-warning-comments로 감지하고, owner 또는 issue 링크가 없는 항목은 PR에서 제거합니다. -
inline comment는 ESLint
no-inline-comments또는 review rule로 제한합니다. 같은 줄 설명이 필요할 정도로 표현이 어려우면 변수명, predicate 함수, 타입명으로 먼저 옮깁니다. -
eslint-disable주석은 한 줄 단위로 제한하고, 규칙명과 사유를 함께 적습니다. - 주석으로 코드 동작을 설명하기보다 "왜 이 예외가 필요한지", "언제 제거할지", "어떤 외부 계약 때문인지"를 남깁니다.
10.4 AI finding 처리
| 상태 | 의미 | PR에 남길 것 |
|---|---|---|
| accept | 실제 결함 또는 품질 개선으로 반영 | 수정 commit과 검증 명령 |
| reject | 오탐 또는 의도된 예외 | 공식 문서, 테스트 결과, ADR 링크 |
| follow-up | 현재 PR 범위를 넘는 개선 | issue 링크, owner, due date |
10.5 CodeRabbit 리뷰 게이트
CodeRabbit을 merge 조건으로 쓰는 저장소는 .coderabbit.yaml과 별도로
CodeRabbit review gate 체크를 둡니다. 이 체크는 PR의 최신 head SHA에 달린
CodeRabbit 리뷰만 인정합니다. 과거 commit에서 승인된 리뷰는 새 commit 이후의 변경을
검토하지 않았으므로 merge 근거가 될 수 없습니다.
| 조건 | 처리 |
|---|---|
| 최신 head SHA 리뷰 없음 |
게이트 실패, CodeRabbit 리뷰를 기다리거나 @coderabbitai review로
재요청
|
APPROVED |
게이트 통과, 사람 reviewer의 위험 항목 확인 후 merge 가능 |
CHANGES_REQUESTED |
수정 commit push, CodeRabbit 재리뷰 후 재검증 |
COMMENTED / DISMISSED / 기타
|
명시적 승인으로 보지 않고 재리뷰 또는 사람 reviewer 판단 필요 |
브랜치 보호 규칙에는 CodeRabbit review gate를 required status check로
등록하고 required conversation resolution을 켭니다. workflow 파일만 추가하면 빨간
체크나 미해결 리뷰 스레드가 보여도 설정에 따라 merge가 가능할 수 있으므로, 실제
강제력은 브랜치 보호 설정에서 완성됩니다.
CodeRabbit 적용 저장소에는 .github/workflows/branch-protection.yml을
두고, GH_ADMIN_TOKEN 시크릿으로 수동 실행합니다. 이 워크플로우는 저장소별
quality aggregator 체크와 CodeRabbit review gate를 required status
checks로 묶고, 미해결 리뷰 스레드가 남아 있으면 auto-merge도 대기하게 만듭니다. 사람
승인까지 필수로 둘 저장소는 dispatch 입력값
required_approving_review_count를 1 이상으로 실행합니다.
자동 머지는 Dependabot safe bump 정책 또는 automerge/auto-merge
라벨처럼 병합 의도가 명확한 PR에만 활성화합니다. Dependabot이라도 production
dependency major는 자동 머지하지 않습니다. CodeRabbit이
CHANGES_REQUESTED를 남긴 상태에서는 required check가 빨간 상태로 유지되어
auto-merge가 대기해야 하며, 수정 commit 후 최신 head SHA에 대한 재승인이 있어야
병합됩니다. 리뷰 스레드가 열린 상태라면 conversation resolution이 auto-merge를 계속
대기시킵니다.
운영자는 CodeRabbit review gate를 사람 승인 카운트와 혼동하지 않습니다.
기본 브랜치 보호는 사람 승인 수를 0으로 두고 CodeRabbit/CI required
checks와 conversation resolution으로 자동화 게이트를 강제할 수 있습니다. 사람 리뷰도
반드시 요구하는 저장소는 같은 branch-protection.yml을
required_approving_review_count=1 이상으로 다시 실행해 정책을 올립니다.
AI 리뷰 도구를 새 저장소에 도입할 때는 다음 순서로 적용합니다.
-
.coderabbit.yaml을 먼저 추가하고 PR에서 실제 CodeRabbit 리뷰가 생성되는지 확인한다. -
.github/workflows/coderabbit-gate.yml을 추가해 최신 head SHA 승인만 통과하게 한다. -
.github/workflows/branch-protection.yml의 required check 목록에 저장소의 quality aggregator와CodeRabbit review gate를 넣는다. - GitHub 원격 main 브랜치 보호에 required checks와 required conversation resolution을 적용한다.
-
automerge/auto-merge라벨 workflow는 브랜치 보호가 검증된 뒤 활성화한다.
실무 적용 가이드
언제 이 문서를 펼칠까
- AI 리뷰를 도입했지만 지적사항이 피상적이거나 노이즈가 많을 때
- AI가 만든 코드가 테스트 없이 merge될 위험이 있을 때
- PR이 커져 사람이 변경 의도를 따라가기 어려울 때
적용 순서
- PR을 기능, 리팩터, 테스트, 문서 변경으로 작게 나눈다.
- AI 리뷰에는 변경 의도, 위험 영역, 확인할 파일을 명확히 준다.
- AI finding을 accept, reject, follow-up으로 triage한다.
- 보안, 접근성, 성능 항목은 사람 reviewer가 최종 승인한다.
- 리뷰 결과와 검증 명령을 PR description에 남긴다.
함께 두는 파일
- 리뷰 체크리스트는 PR template과 가이드 문서에 둔다.
- AI가 생성한 fixture/test는 기능 코드 가까이에 둔다.
- review metric은 repository 단위로 보되 finding taxonomy는 도메인별로 기록한다.
흔한 실수
- AI approve를 사람 리뷰 대체로 사용한다.
- 큰 PR 하나에 기능, 구조 변경, 스타일 수정이 섞인다.
- AI가 제안한 dependency나 API를 공식 문서로 확인하지 않는다.
- false positive가 많아도 규칙을 조정하지 않는다.
PR 완료 기준
- [ ] PR 크기와 의도가 명확하다.
- [ ] AI finding disposition이 남아 있다.
- [ ]
CodeRabbit review gate가 최신 head SHA 기준으로 통과했다. - [ ] 사람 reviewer가 위험 항목을 확인했다.
- [ ] 테스트/보안/접근성 증거가 연결되어 있다.
추천 항목 실행 우선순위 매핑
-
P1(7일 내)— AI finding triage와 사람 승인 책임 중 하나를 작은 변경 1건에 적용하고 증거(finding disposition)를 남긴다. -
P2(30일 내)— AI 리뷰 기준을 팀 템플릿, 체크리스트, CI 중 한 곳에 고정한다. -
P3(90일 내)— false positive, 미해결 thread, 재리뷰 횟수 추이를 보고 기준을 유지할지 조정할지 결정한다. -
완료 기준— 리뷰 오너가 증거와 철회 조건을 확인했다는 기록을 남긴다.
추천 항목 실행 체크리스트
-
[ ]
1단계(7일): AI finding triage와 사람 승인 책임 적용 대상을 1개로 좁힌다. -
[ ]
2단계(30일): 증거(finding disposition, 최신 head SHA review, 사람 reviewer 승인)를 PR, ADR, 회고 중 한 곳에 연결한다. -
[ ]
3단계(60일): false positive, 미해결 thread, 재리뷰 횟수가 기준 안에 들어왔는지 확인한다. -
[ ]
문제 대응: 미달성 사유와 다음 조치, 중단 여부를 같은 기록에 남긴다.
추천 항목 실행 운영 규칙
-
실행 게이트: AI approve가 사람의 위험 판단을 대체하지 않는지 확인한다. -
승인 체계: 리뷰 오너가 영향 범위와 rollback 담당자를 적용 전에 확인한다. -
재개 조건: 최신 head SHA 리뷰와 사람 승인 근거가 맞으면 merge를 진행한다. -
정지 조건: AI 제안이 테스트 없이 바로 반영되거나 thread가 미해결이면 멈춘다. 리스크 점수: PR 크기, 자동 수정량, 민감 파일 변경으로 산정한다.리더 승인자: 코드리뷰 리드가 최종 승인 책임을 맡는다.-
승인 역할: AI 리뷰 작성자, 검토자, 운영 확인자를 분리해 기록한다. 재평가 주기: 2주마다 false positive와 blocking 기준을 조정한다.