AI 생성 코드는 전부 읽지 않습니다: 영향 범위·증거·롤백으로 검토하는 위험 기반 코드 리뷰 | DAKER 커뮤니티

이 영상은 Meta의 Senior Staff Software Engineer라고 소개한 John Kim이 AI 생성 코드의 리뷰 병목을 어떻게 다루는지 설명합니다. 결론은 “코드를 읽지 말자”가 아니라, 모든 변경을 같은 깊이로 읽는 방식에서 벗어나 영향 범위, 검증 증거, 롤백 가능성에 따라 리뷰 강도를 조절하자는 것입니다.
핵심 요약
• 코드 리뷰는 전부 읽기 또는 전부 맡기기의 이분법이 아니라 위험도에 따른 연속선입니다.
• 코드베이스를 나무로 보고, 공통 인프라와 핵심 상태를 다루는 trunk 코드는 깊게 검토합니다.
• 독립된 UI 컴포넌트나 기능 플래그 뒤의 leaf 코드는 테스트와 실행 증거가 충분하면 빠르게 검토합니다.
• AI에게 코드만 제출하게 하지 말고 테스트, 로그, 스크린샷, 동영상 등 “작동한다는 증거”를 PR에 포함시킵니다.
• 코드를 작성한 에이전트와 다른 독립 에이전트가 적대적으로 재검토하게 합니다.
• 병합 가능 상태와 실제 출시 가능 상태는 다릅니다. 마지막 20%는 사람이 성능, 보안, 제품 완성도와 운영 안전성을 확인합니다.
1. 리뷰 깊이는 변경량보다 Blast Radius로 결정
영상은 코드베이스를 나무에 비유합니다.
Trunk·Root 코드
• 애플리케이션 진입점
• 공통 상태와 reducer
• 네트워크, 이미지 처리, 인증, 결제 등의 공유 인프라
• 다수 기능이 의존하는 공통 모듈
이 영역의 오류는 전체 서비스로 확산될 수 있으므로 사람이 설계와 코드를 깊게 읽어야 합니다. 특히 기존 동작을 바꾸거나 데이터·보안 경계를 건드리는 변경은 높은 검토 강도가 필요합니다.
Leaf 코드
• 독립된 신규 컴포넌트
• 기존 경로와 격리된 신규 로직
• 기능 플래그 뒤에서 비활성화된 기능
• 단위·컴포넌트·스냅샷 테스트로 경계를 확인할 수 있는 변경
Leaf 코드는 코드 전체를 한 줄씩 읽기보다 테스트 결과와 UI 증거를 확인하고 이상한 부분을 훑는 방식으로 속도를 높일 수 있습니다.
검토 전에 물어볼 질문
1) 이 변경이 실패하면 어디까지 영향을 주는가?
2) 기존 사용자 경험에서 절대 바뀌면 안 되는 것은 무엇인가?
3) 문제가 생겼을 때 즉시 끄거나 되돌릴 수 있는가?
4) 핵심 데이터, 권한, 보안, 상태 관리 경로를 건드리는가?
5) 독립적으로 검증할 수 있는가?
3번의 답이 명확하고 롤백이 쉬울수록 개별 코드에 쓰는 검토 시간을 줄일 수 있습니다.
2. 리뷰는 PR 단계가 아니라 기획 단계부터 시작
AI 에이전트는 계획, 구현, 검토, 출시의 전체 과정에 참여해야 합니다. 특히 새 기능은 처음부터 기능 플래그 또는 단순 Boolean gate 뒤에서 개발해 기존 사용자 경로와 분리하는 것이 중요합니다.
추천 흐름
• 기능을 독립된 leaf 작업과 기존 시스템에 연결하는 integration 작업으로 분리
• 공통 경로에 연결되는 부분은 별도 PR 또는 명확한 커밋으로 격리
• 완성 조건, 평가 기준, 실패 기준을 구현 전에 정의
• 문제가 생기면 기능을 끌 수 있도록 롤백 경로 준비
기능 플래그는 배포와 출시를 분리합니다. 코드는 미리 병합하되 실제 사용자 노출은 소수에서 시작하고, 문제가 발생하면 플래그로 기능을 끌 수 있습니다.
3. 모든 PR에 “증거”를 요구
AI가 “완료했습니다”라고 말하는 것만으로는 검증이 아닙니다. 영상은 PR에 다음 증거를 포함하도록 에이전트 스킬이나 템플릿에 명시하라고 권합니다.
정적 증거
• 타입 검사
• 린트와 포맷 검사
• 빌드 성공 결과
테스트 증거
• 단위 테스트와 핵심 assertion
• 통합 테스트
• 변경된 동작을 재현하는 회귀 테스트
실행 증거
• 실제 실행 로그
• API 응답과 오류 경로
• 성능 또는 메모리 측정치
시각 증거
• 변경 전·후 스크린샷
• UI 동작 녹화
• 주요 사용자 흐름의 E2E 결과
추가 정보
• 에이전트의 신뢰도와 불확실한 부분
• 테스트하지 못한 범위
• 롤백 방법
증거가 충분하면 사람은 코드 전체를 다시 수행해보는 대신, 증거가 요구사항을 실제로 입증하는지 검토할 수 있습니다. 단, AI가 테스트를 구현 코드에 맞춰 무의미하게 작성할 수 있으므로 테스트 이름과 assertion은 사람이 빠르게 확인해야 합니다.
4. 작성 에이전트와 리뷰 에이전트를 분리
코드를 만든 에이전트는 이전 대화의 가정과 자기 결정에 고정되기 쉽습니다. 영상은 기존 맥락이 없는 새 sub-agent 또는 별도 모델을 이용한 adversarial review를 권합니다.
리뷰 에이전트에게 줄 질문
• 요구사항과 다른 동작이 있는가?
• 정상 경로는 통과하지만 경계값에서 깨지는가?
• 권한, 인증, 개인정보, 멀티테넌시 문제가 있는가?
• 동시성, 재시도, 중복 실행에서 문제가 발생하는가?
• 변경하지 않은 기능에 회귀가 생기는가?
• 롤백과 하위 호환이 가능한가?
OpenAI Codex와 Claude Code 모두 GitHub PR 또는 로컬 diff 리뷰 기능을 제공합니다. 공식 문서 기준으로 Codex는 AGENTS.md의 저장소별 규칙을 따르며 GitHub에서는 심각한 P0·P1 문제에 집중할 수 있습니다. Claude Code Review는 여러 전문 에이전트가 로직 오류, 보안 취약점, 경계 사례와 회귀를 병렬로 찾으며 CLAUDE.md 또는 REVIEW.md로 기준을 조정할 수 있습니다.
5. 스타일 논쟁보다 안전성에 집중
명명, 포맷, 사소한 작성 취향은 린트, 타입 검사, 포매터와 정적 분석으로 자동화합니다. 사람과 고비용 AI 리뷰는 다음에 집중하는 편이 효율적입니다.
• 정확성
• 보안과 데이터 경계
• 성능과 확장성
• 장애 전파 범위
• 기존 동작의 회귀
• 롤백 가능성
즉 “내가 선호하는 코드 모양인가”보다 “실패하면 사용자가 피해를 보는가”가 우선입니다.
6. Merge-ready는 Launch-ready가 아님
영상에서는 AI로 빠르게 기능을 완성하고 병합 가능한 상태까지 만드는 것을 broad strokes, 즉 전체 작업의 약 80%로 설명합니다. 나머지 20%는 실제 출시를 위한 단계입니다.
출시 전 사람이 확인할 항목
• 요구사항과 실제 동작의 일치
• 성능 병목과 불필요한 복잡성
• 보안과 개인정보 위험
• 오류 메시지와 예외 흐름
• UI 애니메이션, 문구, 접근성 등 제품 완성도
• 모니터링 지표와 경보
• 기능 플래그, 카나리 배포, 즉시 롤백 경로
이 마지막 20%가 앞의 80%만큼 오래 걸릴 수 있지만, 사람의 판단과 제품 감각이 가장 많이 필요한 구간입니다.
7. 실무 적용 체크리스트
PR 작성 에이전트
□ 변경 목적과 영향을 3줄 이내로 설명
□ 변경 파일과 trunk·leaf 분류 표시
□ 테스트, 빌드, 타입 검사 결과 첨부
□ UI 변경은 스크린샷 또는 영상 첨부
□ 미검증 범위와 위험 요소 명시
□ 기능을 끄거나 되돌리는 방법 명시
독립 리뷰 에이전트
□ 원래 구현 대화 없이 새 컨텍스트에서 실행
□ 정확성, 보안, 회귀, 경계값 중심으로 검토
□ 파일과 줄 번호가 포함된 근거 제시
□ 스타일 문제보다 실제 장애 가능성을 우선
사람 리뷰어
□ trunk와 integration 코드는 직접 깊게 확인
□ 테스트가 구현을 그대로 따라 쓴 것은 아닌지 확인
□ 증거가 실제 요구사항을 입증하는지 확인
□ 병합 후 출시 범위와 롤백 조건 결정
영상 구간
• 02:34 코드 리뷰는 위험도에 따른 연속선
• 03:47 코드베이스 나무와 Blast Radius
• 05:05 기능 플래그 뒤에서 개발
• 06:31 PR마다 검증 증거 요구
• 09:00 Leaf 코드와 Trunk 코드
• 10:20 스타일보다 안전성
• 12:31 독립적인 적대적 에이전트 리뷰
• 14:05 Codex GitHub 리뷰와 PR 반복 대응
• 16:20 병합 가능과 출시 가능의 차이
• 17:52 카나리 배포와 롤백
출처
1) 원본 영상: John Kim, “How I Review AI Code - (Meta Senior Staff Engineer)”
https://www.youtube.com/watch?v=b2QkhmQ0sT0
2) OpenAI 공식 문서, Codex code review in GitHub
https://developers.openai.com/codex/integrations/github
3) Anthropic 공식 문서, Claude Code Review
https://code.claude.com/docs/en/code-review
4) LaunchDarkly 공식 문서, Release flags
https://launchdarkly.com/docs/home/flags/release
5) Google Cloud 공식 문서, Canary deployment strategy
https://docs.cloud.google.com/deploy/docs/deployment-strategies/canary