AI가 코드를 짜고 리뷰까지 하는 세상, 그런데 누가 통제하는가
AI 코딩 도구가 팀에 깊이 들어올수록 한 가지 질문이 선명해진다. 속도는 올라가는데, 통제권은 어디 있는가? Anthropic 내부 데이터에 따르면 지난 1년간 엔지니어 1인당 코드 생산량이 약 200% 증가했다. 코드는 두 배 이상 쏟아지는데, 사람이 리뷰하는 비율은 PR 기준 16%에 불과했다. 나머지 84%는 사실상 무검증 상태로 병합됐다는 뜻이다.
이 맥락에서 Anthropic이 최근 내놓은 세 가지 움직임—Claude Code Review 출시, Claude Code Hooks 자동화, AI 코딩 에이전트 보안 설계 패턴—은 따로 읽으면 각각 도구 소개지만, 같이 읽으면 하나의 아키텍처 질문으로 수렴한다. AI 에이전트가 개발 사이클 전반을 담당할 때, 팀은 어느 레이어에서 어떻게 통제권을 쥘 것인가.
레이어 1: 리뷰 자동화—AI가 AI를 검증한다
Claude Code Review는 멀티에이전트 방식으로 작동한다. PR이 생성되면 여러 에이전트가 서로 다른 관점에서 동시에 코드를 분석하고, 발견된 이슈를 교차 검증해 오탐(false positive)을 줄인 뒤 심각도 순으로 정렬해 단일 요약 코멘트와 라인별 주석으로 돌려준다. 평균 리뷰 시간은 약 20분. 즉각적인 린터 결과와는 다른 '깊이 있는 분석'을 목표로 설계됐다.
실제 사례가 의미심장하다. 단 한 줄짜리 코드 수정이 포함된 PR에서 인간 리뷰어는 단순 변경으로 보고 빠르게 승인하려 했지만, Claude Code Review는 그 한 줄이 서비스 인증 시스템 전체를 중단시킬 수 있는 치명적 결함임을 잡아냈다. 도입 이후 실질적인 리뷰 코멘트가 달린 PR 비율이 16%에서 54%로 뛰었다는 수치는, AI가 단순히 속도를 올린 게 아니라 품질 커버리지의 구조적 구멍을 메웠다는 신호다.
다만 냉정하게 짚자. PR당 비용은 15~25달러다. 코드 생산량이 200% 늘어난 팀이 모든 PR에 이 비용을 적용하면 리뷰 비용도 그에 비례해 폭증한다. Anthropic이 월간 비용 상한선 설정과 저장소 단위 선택적 활성화를 제공하는 이유가 여기 있다. 리스크가 높은 서비스에만 선별 적용하는 전략적 판단이 도입보다 먼저 필요하다.
레이어 2: Hooks—사후 검증이 아닌 사전 차단
Claude Code Review가 'AI가 만든 결과물을 사후 검증'하는 레이어라면, Claude Code Hooks는 '에이전트가 행동하기 전에 경계를 설정'하는 레이어다. Hooks는 Claude Code의 18개 라이프사이클 이벤트(PreToolUse, PostToolUse, SessionStart 등)에 결정론적(deterministic) 셸 커맨드를 연결하는 방식으로 작동한다. LLM의 판단이 아니라 코드가 실행 여부를 결정한다는 점이 핵심이다.
실전 패턴은 단순하지만 효과는 즉각적이다. rm -rf 같은 파괴적 명령어를 PreToolUse 훅으로 차단하면, 에이전트가 해당 커맨드를 실행하기도 전에 exit 2로 블록된다. .env 파일 같은 민감 파일에 Edit|Write 매처를 걸면 에이전트가 아무리 '컨텍스트 이해'를 위해 접근하려 해도 구조적으로 막힌다. PostToolUse로 파일 수정 직후 Prettier를 자동 실행하면 포매팅 수정 요청이 사라진다.
여기서 중요한 관찰이 하나 있다. Hooks가 필요한 근본 이유는 퍼미션 피로(permission fatigue) 때문이다. 에이전트가 작업하는 동안 50번째 "허용하시겠습니까?" 프롬프트가 뜰 때, 사람은 내용을 읽지 않고 클릭한다. 이 지점에서 사람의 판단은 이미 형식화된다. Hooks는 그 형식화된 승인을 코드 레벨의 규칙으로 대체해 실질적인 통제를 복원한다.
레이어 3: 퍼미션 매니페스트와 감사 추적—거버넌스의 기반
AI 코딩 에이전트 보안 설계에서 가장 자주 빠지는 단계가 있다. 프롬프트에 "민감한 파일은 건드리지 말아라"고 적는 것이다. 이건 작동하지 않는다. 대화가 길어질수록 컨텍스트가 희석되고, 에이전트는 그 지시를 잊는다.
구조적인 대안은 퍼미션 매니페스트다. 에이전트가 읽을 수 있는 경로(src/**, tests/**), 쓸 수 있는 경로, 명시적으로 차단할 경로(.env*, **/secrets/**, *.pem), 실행 가능한 커맨드 목록을 기계가 읽을 수 있는 형태로 정의하고, 툴 레이어에서 각 호출 전에 이를 검증한다. 프롬프트 기반 제약과의 차이는 명확하다. 매니페스트는 에이전트가 동의하는 것이 아니라 런타임이 강제한다.
세 번째 필수 요소는 감사 추적이다. CI 파이프라인에서 에이전트가 elevated permission으로 config 키를 12개 파일에 걸쳐 리팩터링하고 프로덕션을 40분간 다운시킨 사례처럼, 사고는 악의 없이 발생한다. 이 때 "무슨 일이 있었나"를 추적하려면 모든 툴 호출에 타임스탬프, 세션 ID, 에이전트가 명시한 이유가 기록된 로그가 있어야 한다. Hooks의 PostToolUse 감사 로그 패턴이 이 역할을 한다. 사고 후 재현이 아닌, 사고 전 경계와 사고 후 추적을 동시에 설계하는 것이 목표다.
세 레이어를 연결하면 보이는 것
이 세 가지를 같이 놓고 보면 AI-First 개발 워크플로우의 거버넌스 구조가 하나의 그림으로 정리된다.
- Hooks: 에이전트 행동 전 사전 차단과 사후 감사 (실시간 통제)
- 퍼미션 매니페스트: 에이전트 접근 범위의 구조적 경계 (범위 통제)
- Claude Code Review: AI가 생성한 코드를 AI가 다층 검증 (품질 통제)
세 레이어 중 하나만 있으면 허점이 생긴다. Hooks 없이 Code Review만 있으면 병합 전 최종 검증은 되지만 실행 중 파괴적 행동은 막지 못한다. 매니페스트 없이 Hooks만 있으면 블랙리스트 기반 패턴 매칭은 되지만 범위 밖 접근을 완전히 통제하지 못한다. Code Review 없이 매니페스트와 Hooks만 있으면 에이전트가 허용 범위 내에서 만들어낸 논리적 오류는 걸러지지 않는다.
AI 에이전트의 자율성이 높아질수록, 팀이 설계해야 할 통제의 레이어도 같이 높아진다. Anthropic이 이 세 가지를 거의 동시에 내놓은 건 우연이 아니다. 에이전트가 더 많은 권한을 갖는 방향으로 진화할수록, 그 권한을 구조적으로 묶는 도구가 없으면 팀의 자신감이 아니라 팀의 불안이 쌓인다.
테크 리드가 지금 해야 할 것
이론은 충분하다. 내일 당장 시작할 수 있는 순서로 정리하면 이렇다.
- deny 리스트부터 만든다.
.env*,**/secrets, 인증서, 락파일—무엇을 허용할지보다 무엇을 절대 허용하지 않을지를 먼저 정의한다. - Hooks로 감사 로그를 켠다.
PostToolUseBash 훅 하나면 에이전트가 실행한 모든 커맨드가 타임스탬프와 함께 기록된다. 이 로그가 없으면 사고 후 원인 분석이 불가능하다. - Code Review는 리스크 높은 저장소 하나부터. 전체 적용 전에 가장 크리티컬한 서비스 하나에 먼저 붙이고 비용 대비 발견 품질을 측정한다.
- 퍼미션 매니페스트를 CI에 연결한다. 에이전트가 CI에서 실행된다면, 매니페스트 검증이 파이프라인 단계 중 하나여야 한다. 프롬프트 지시가 아니라 런타임 강제여야 한다.
속도는 AI가 올려준다. 하지만 그 속도가 통제 가능한 속도인지를 설계하는 건 여전히 테크 리드의 일이다.