4 4
5# Code Review5# Code Review
6 6
7> 다중 에이전트 분석을 통해 전체 코드베이스를 검토하여 논리 오류, 보안 취약점 및 회귀를 감지하는 자동화된 PR 검토를 설정합니다7> Code Review로 GitHub 풀 리퀘스트의 버그를 찾아냅니다. Claude가 각 변경 사항을 리뷰하고, 결과를 검증하며, 인라인 댓글을 남깁니다. Team 및 Enterprise 플랜용
8 8
9<Note>9Code Review를 사용하면 Claude가 GitHub 저장소의 풀 리퀘스트를 리뷰합니다. 여러 에이전트가 각 변경 사항을 주변 코드와 함께 읽으며 논리 오류, 보안 취약점, 손상된 엣지 케이스와 같은 문제를 찾습니다. 검증 단계에서는 결과를 보고하기 전에 코드와 대조하여 확인합니다.
10 Code Review는 리서치 프리뷰 상태이며 [Team 및 Enterprise](https://claude.ai/admin-settings/claude-code) 구독에서 사용 가능합니다. [Zero Data Retention](/docs/ko/zero-data-retention)이 활성화되었거나 [HIPAA 구성](/docs/ko/hipaa-setup)이 적용된 조직에서는 사용할 수 없으며, Anthropic의 BAA 적용 대상이 아닙니다. 다른 플랜에서는 `/code-review` 명령으로 [로컬에서 diff 검토](#review-a-diff-locally)할 수 있습니다.
11</Note>
12
13Code Review는 GitHub 풀 요청을 분석하고 문제를 발견한 코드 라인에 인라인 댓글로 결과를 게시합니다. 전문화된 에이전트 집합이 전체 코드베이스의 맥락에서 코드 변경 사항을 검토하여 논리 오류, 보안 취약점, 손상된 엣지 케이스 및 미묘한 회귀를 찾습니다.
14
15결과는 심각도별로 태그가 지정되며 PR을 승인하거나 차단하지 않으므로 기존 검토 워크플로우는 그대로 유지됩니다. 리포지토리에 `CLAUDE.md` 또는 `REVIEW.md` 파일을 추가하여 Claude가 플래그하는 항목을 조정할 수 있습니다.
16
17관리되는 서비스 대신 자신의 CI 인프라에서 Claude를 실행하려면 [GitHub Actions](/docs/ko/github-actions) 또는 [GitLab CI/CD](/docs/ko/gitlab-ci-cd)를 참조하십시오. 자체 호스팅 GitHub 인스턴스의 리포지토리의 경우 [GitHub Enterprise Server](/docs/ko/github-enterprise-server)를 참조하십시오.
18
19이 페이지에서 다루는 내용:
20
21* [검토 작동 방식](#how-reviews-work)
22* [설정](#set-up-code-review)
23* [`@claude review` 및 `@claude review always`를 사용한 수동 검토 트리거](#manually-trigger-reviews)
24* [`CLAUDE.md` 및 `REVIEW.md`를 사용한 검토 사용자 정의](#customize-reviews)
25* [가격](#pricing)
26* [실패한 실행 및 누락된 댓글 문제 해결](#troubleshooting)
27* [로컬에서 diff 검토](#review-a-diff-locally) - `/code-review` 명령 사용
28
29<h2 id="how-reviews-work">
30 검토 작동 방식
31</h2>
32
33관리자가 조직에 대해 Code Review를 [활성화](#set-up-code-review)하면 리포지토리의 구성된 동작에 따라 PR이 열릴 때, 모든 푸시 시 또는 수동으로 요청할 때 검토가 트리거됩니다. PR에서 `@claude review`를 [댓글로 작성](#manually-trigger-reviews)하면 모든 모드에서 검토가 시작됩니다.
34
35검토가 실행되면 여러 에이전트가 Anthropic 인프라에서 병렬로 diff 및 주변 코드를 분석합니다. 각 에이전트는 다른 클래스의 문제를 찾고, 검증 단계에서 후보를 실제 코드 동작과 비교하여 거짓 양성을 필터링합니다. 결과는 중복 제거되고 심각도별로 순위가 지정되며 문제가 발견된 특정 라인에 인라인 댓글로 게시됩니다. 문제가 발견되지 않으면 Code Review는 GitHub 확인 실행을 업데이트하여 문제가 감지되지 않았음을 표시합니다. Claude는 또한 PR에 짧은 확인 댓글을 게시할 수 있습니다.
36
37검토는 PR 크기 및 복잡도에 따라 비용이 증가하며 평균 20분 내에 완료됩니다. 관리자는 [분석 대시보드](#view-usage)를 통해 검토 활동 및 지출을 모니터링할 수 있습니다.
38
39<h3 id="severity-levels">
40 심각도 수준
41</h3>
42
43각 결과는 심각도 수준으로 태그가 지정됩니다:
44
45| 마커 | 심각도 | 의미 |
46| :- | :- | :- |
47| 🔴 | Important | 병합 전에 수정해야 하는 버그 |
48| 🟡 | Nit | 경미한 문제, 수정할 가치가 있지만 차단하지는 않음 |
49| 🟣 | Pre-existing | 코드베이스에 존재하지만 이 PR에서 도입되지 않은 버그 |
50
51결과에는 확장 가능한 **이 항목이 플래그된 이유** 섹션이 포함되어 있으므로 Claude가 문제를 플래그한 이유와 문제를 검증한 방법을 읽을 수 있습니다.
52
53<h3 id="rate-and-reply-to-findings">
54 결과에 대한 평가 및 응답
55</h3>
56
57Claude의 각 검토 댓글은 이미 👍 및 👎가 첨부되어 있으므로 두 버튼 모두 GitHub UI에 나타나 한 번의 클릭으로 평가할 수 있습니다. 결과가 유용했으면 👍을 클릭하고 잘못되었거나 노이즈가 많으면 👎를 클릭합니다. Anthropic은 PR이 병합된 후 반응 개수를 수집하고 이를 사용하여 검토자를 조정합니다. 반응은 재검토를 트리거하거나 PR의 어떤 것도 변경하지 않습니다.
58
59인라인 댓글에 응답해도 Claude가 응답하거나 PR을 업데이트하도록 프롬프트하지 않습니다. 결과에 대해 조치하려면 코드를 수정하고 푸시합니다. PR이 푸시 트리거 검토에 구독되어 있으면 다음 실행이 문제가 수정되었을 때 스레드를 해결합니다. 푸시하지 않고 새로운 검토를 요청하려면 [최상위 PR 댓글](#manually-trigger-reviews)로 `@claude review`를 댓글로 작성합니다.
60
61결과를 코드 변경 없이 해제하려면 해당 스레드를 해결합니다. 응답하는 것은 해제하지 않습니다.
62
63<h3 id="check-run-output">
64 확인 실행 출력
65</h3>
66
67인라인 검토 댓글 외에도 각 검토는 CI 확인과 함께 나타나는 **Claude Code Review** 확인 실행을 채웁니다. **Details** 링크를 확장하여 심각도별로 정렬된 모든 결과의 요약을 한 곳에서 확인합니다:
68
69| 심각도 | 파일:라인 | 문제 |
70| - | - | - |
71| 🔴 Important | `src/auth/session.ts:142` | 토큰 새로고침이 로그아웃과 경쟁하여 오래된 세션이 활성 상태로 유지됨 |
72| 🟡 Nit | `src/auth/session.ts:88` | `parseExpiry`가 잘못된 입력에서 자동으로 0을 반환함 |
73
74각 결과는 **Files changed** 탭의 주석으로도 나타나며 관련 diff 라인에 직접 표시됩니다. Important 결과는 빨간색 마커로 렌더링되고, nit은 노란색 경고로, 기존 버그는 회색 공지로 렌더링됩니다. 주석과 심각도 테이블은 인라인 검토 댓글과 독립적으로 확인 실행에 기록되므로 GitHub가 이동한 라인의 인라인 댓글을 거부하더라도 사용 가능한 상태로 유지됩니다.
75
76확인 실행은 항상 중립적인 결론으로 완료되므로 분기 보호 규칙을 통해 병합을 차단하지 않습니다. Code Review 결과에 따라 병합을 제어하려면 자신의 CI에서 확인 실행 출력에서 심각도 분석을 읽으십시오. Details 텍스트의 마지막 라인은 워크플로우가 `gh` 및 jq로 구문 분석할 수 있는 기계 판독 가능한 댓글입니다. 확인 실행 ID를 찾으려면 커밋의 확인 실행을 `gh api repos/OWNER/REPO/commits/<commit-sha>/check-runs --jq '.check_runs[] | {id, name}'`로 나열하고 `Claude Code Review` 실행의 `id`를 가져옵니다. `OWNER`, `REPO`, `CHECK_RUN_ID`를 리포지토리 소유자, 리포지토리 이름, 해당 ID로 바꿉니다:
77
78```bash theme={null}
79gh api repos/OWNER/REPO/check-runs/CHECK_RUN_ID \
80 --jq '.output.text | split("bughunter-severity: ")[1] | split(" -->")[0] | fromjson'
81```
82
83이는 심각도별 개수가 포함된 JSON 객체를 반환합니다(예: `{"normal": 2, "nit": 1, "pre_existing": 0}`). `normal` 키는 Important 결과의 개수를 보유합니다. 0이 아닌 값은 Claude가 병합 전에 수정할 가치가 있는 버그를 발견했음을 의미합니다.
84
85<h3 id="what-code-review-checks">
86 Code Review가 확인하는 항목
87</h3>
88
89기본적으로 Code Review는 정확성에 중점을 두고 있습니다: 형식 기본 설정이나 누락된 테스트 범위가 아닌 프로덕션을 중단할 버그입니다. 리포지토리에 [지침 파일을 추가](#customize-reviews)하여 확인하는 항목을 확장할 수 있습니다.
90
91<h2 id="set-up-code-review">
92 Code Review 설정
93</h2>
94
95관리자는 조직에 대해 한 번 Code Review를 활성화하고 포함할 리포지토리를 선택합니다.
96
97<Steps>
98 <Step title="Claude Code 관리자 설정 열기">
99 [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code)로 이동하여 Code Review 섹션을 찾습니다. Claude 조직에서 Owner 또는 Primary Owner 역할이 필요하며 GitHub 조직에 GitHub 앱을 설치할 수 있는 권한이 필요합니다.
100 </Step>
101
102 <Step title="설정 시작">
103 **Setup**을 클릭합니다. 이렇게 하면 GitHub 앱 설치 흐름이 시작됩니다.
104 </Step>
105
106 <Step title="Claude GitHub 앱 설치">
107 프롬프트를 따라 Claude GitHub 앱을 설치합니다. GitHub 조직을 선택하여 검토하려는 리포지토리를 소유하고, 앱이 액세스할 수 있는 리포지토리를 선택하고, 요청된 권한을 승인합니다.
108
109 PR을 검토하기 위해 Claude는 앱의 읽기 액세스를 통해 리포지토리 콘텐츠를 읽고, 쓰기 액세스를 통해 PR 및 확인에 댓글과 [확인 실행](#check-run-output)을 게시합니다. 설치 중에 [GitHub Actions](/docs/ko/github-actions)와 같은 다른 Claude 기능에서 공유하는 더 광범위한 권한 집합을 부여합니다. 전체 목록은 [GitHub 앱 권한](/docs/ko/github-actions#github-app-permissions)을 참조하십시오.
110 </Step>
111
112 <Step title="리포지토리 선택">
113 Code Review를 활성화할 리포지토리를 선택합니다. 리포지토리가 보이지 않으면 설치 중에 Claude GitHub 앱에 액세스 권한을 부여했는지 확인하십시오. 나중에 더 많은 리포지토리를 추가할 수 있습니다.
114 </Step>
115
116 <Step title="리포지토리별 검토 트리거 설정">
117 설정이 완료되면 Code Review 섹션에 리포지토리가 테이블에 표시됩니다. 각 리포지토리에 대해 **Review Behavior** 드롭다운을 사용하여 검토가 실행되는 시기를 선택합니다:
118
119 * **Once after PR creation**: PR이 열리거나 검토 준비 완료로 표시될 때 한 번 검토가 실행됩니다
120 * **After every push**: PR 브랜치에 대한 모든 푸시에서 검토가 실행되어 PR이 진화함에 따라 새로운 문제를 감지하고 플래그된 문제를 수정할 때 스레드를 자동으로 해결합니다
121 * **Manual**: PR을 열거나 푸시해도 검토가 시작되지 않습니다. [`@claude review`](#manually-trigger-reviews)를 댓글로 작성하여 검토를 요청하거나, `@claude review always`를 작성하여 이후 푸시에 대한 검토에 PR을 구독합니다
122
123 어떤 옵션을 선택하든 Claude는 [포크에서 PR을 검토](#review-pull-requests-from-forks)할 때만 누군가 `@claude review`를 댓글로 작성합니다.
124
125 모든 푸시에서 검토하면 가장 많은 검토가 실행되고 비용이 가장 많이 듭니다. 수동 모드는 특정 PR을 검토에 옵트인하려는 트래픽이 많은 리포지토리나 PR이 준비될 때까지만 검토를 시작하려는 경우에 유용합니다.
126 </Step>
127</Steps>
128
129리포지토리 테이블은 최근 활동을 기반으로 각 리포지토리의 평균 검토 비용도 표시합니다. 행 작업 메뉴를 사용하여 리포지토리별로 Code Review를 켜거나 끄거나 리포지토리를 완전히 제거할 수 있습니다.
130
131설정을 확인하려면 테스트 PR을 열어보십시오. 자동 트리거를 선택한 경우 **Claude Code Review**라는 확인 실행이 몇 분 내에 나타납니다. 수동을 선택한 경우 PR에서 `@claude review`를 댓글로 작성하여 첫 번째 검토를 시작합니다. 확인 실행이 나타나지 않으면 리포지토리가 관리자 설정에 나열되어 있고 Claude GitHub 앱이 액세스할 수 있는지 확인하십시오.
132 10
133<h2 id="manually-trigger-reviews">11결과는 [심각도](/docs/ko/code-review-pull-requests#severity-levels)별로 순위가 매겨져 해당 라인에 인라인 댓글로 게시되며, 풀 리퀘스트에는 요약과 확인 실행(check run)이 함께 표시됩니다. 리뷰는 풀 리퀘스트를 승인하거나 차단하지 않으므로 병합 결정은 팀에 그대로 남습니다.
134 수동으로 검토 트리거
135</h2>
136
137댓글 명령은 요청 시 검토를 시작합니다. 이들은 리포지토리의 구성된 트리거와 관계없이 작동하므로 수동 모드에서 특정 PR을 검토에 옵트인하거나 다른 모드에서 즉시 재검토를 받을 수 있습니다.
138 12
139| 명령 | 수행 작업 |13<img src="https://mintcdn.com/claude-code/gLJVaPQEgKC8ZyUD/images/code-review-pipeline.svg?fit=max&auto=format&n=gLJVaPQEgKC8ZyUD&q=85&s=0351c96df9efa3105172eb00a672f130" className="dark:hidden" alt="네 단계로 이루어진 리뷰 다이어그램. GitHub의 풀 리퀘스트가 Anthropic 인프라에서 병렬로 탐색하는 여러 에이전트에게 전달됩니다. 검증 단계에서 거짓 양성을 제거하고, 남은 결과는 중복 제거 후 심각도별로 순위가 매겨지며, 리뷰는 인라인 댓글, 요약 및 확인 실행을 GitHub에 다시 게시합니다." width="760" height="300" data-path="images/code-review-pipeline.svg" />
140| :- | :- |
141| `@claude review` | 향후 푸시에 PR을 구독하지 않고 단일 검토를 시작합니다 |
142| `@claude review always` | 검토를 시작하고 앞으로 푸시 트리거 검토에 PR을 구독합니다 |
143| `@claude review once` | `@claude review`와 동일합니다: 구독하지 않고 단일 검토를 시작합니다 |
144 14
145수동 모드로 설정된 리포지토리의 높은 우선순위 PR과 같이 PR에 대한 모든 후속 푸시가 새로운 검토를 시작하기를 원할 때 `@claude review always`를 사용합니다. 기본 명령이 PR을 구독하지 않으므로 이후 푸시가 검토를 트리거하는지 여부를 변경하지 않고 일회성 두 번째 의견을 요청할 수 있습니다.15<img src="https://mintcdn.com/claude-code/gLJVaPQEgKC8ZyUD/images/code-review-pipeline-dark.svg?fit=max&auto=format&n=gLJVaPQEgKC8ZyUD&q=85&s=9cf26bde98f4e999d0d9ff5bf5bdff40" className="hidden dark:block" alt="네 단계로 이루어진 리뷰 다이어그램. GitHub의 풀 리퀘스트가 Anthropic 인프라에서 병렬로 탐색하는 여러 에이전트에게 전달됩니다. 검증 단계에서 거짓 양성을 제거하고, 남은 결과는 중복 제거 후 심각도별로 순위가 매겨지며, 리뷰는 인라인 댓글, 요약 및 확인 실행을 GitHub에 다시 게시합니다." width="760" height="300" data-path="images/code-review-pipeline-dark.svg" />
146 16
147<Note>17<Note>
148 2026년 7월 업데이트 이전에는 `@claude review`가 PR을 푸시 트리거 검토에 구독했습니다. 해당 동작에 의존했다면 대신 `@claude review always`를 댓글로 작성하세요. `@claude review once`는 여전히 작동하며 기본 명령과 동일하게 동작합니다.18 Code Review는 AI를 사용하여 코드를 리뷰하므로 버그, 보안 취약점 또는 기타 문제를 놓칠 수 있습니다. 결과가 없는 리뷰가 코드에 오류가 없거나 안전하다는 것을 의미하지는 않습니다.
149</Note>19</Note>
150 20
151이러한 명령 중 하나가 검토를 트리거하려면:21<span id="review-a-diff-locally" />
152
153* 최상위 PR 댓글로 게시하고 diff 라인의 인라인 댓글로는 게시하지 않습니다
154* 댓글의 시작 부분에 명령을 입력하고, `once` 또는 `always`를 명령의 나머지 부분과 같은 라인에 입력합니다
155* 리포지토리에 대한 쓰기, 유지 관리 또는 관리자 권한이 있어야 합니다
156* PR은 열려 있어야 합니다
157
158자동 트리거와 달리 수동 트리거는 명시적 요청이 초안 상태와 관계없이 지금 검토를 원한다는 신호이므로 초안 PR에서 실행됩니다.
159
160해당 PR에서 검토가 이미 실행 중인 경우 요청은 진행 중인 검토가 완료될 때까지 대기열에 추가됩니다. PR의 확인 실행을 통해 진행 상황을 모니터링할 수 있습니다.
161
162<h3 id="review-pull-requests-from-forks">
163 포크에서 풀 요청 검토
164</h3>
165
166Claude는 리포지토리의 **검토 동작** 설정과 관계없이 포크의 풀 요청을 자동으로 검토하지 않습니다. 검토를 시작하려면 풀 요청에 `@claude review`를 댓글로 작성하세요. [댓글 명령의 요구 사항](#manually-trigger-reviews)은 여전히 적용되며 필요한 쓰기 액세스는 포크가 아닌 기본 리포지토리에 대한 것입니다.
167 22
168포크 풀 요청의 다른 검토를 받으려면 새로운 `@claude review` 댓글을 게시하세요. `@claude review always`도 작동하지만 나중의 푸시에 대한 검토에 풀 요청을 구독하지 않습니다. 댓글 명령 외에는 포크 풀 요청에 대한 검토를 시작하지 않습니다:23Code Review를 켜려면 Claude 조직의 Owner가 [Code Review 설정](/docs/ko/code-review-setup)을 따릅니다. Claude는 이 서비스 없이도 코드를 리뷰할 수 있습니다. 모든 플랜에서 Claude Code 세션에서 [`/code-review`](/docs/ko/code-review-local)를 실행하거나, [모든 옵션을 비교](#compare-ways-to-get-a-review)해 보십시오.
169 24
170* 확인 실행에서 **다시 실행**을 클릭해도 검토를 시작하지 않습니다25<h2 id="availability">
171* 새 커밋을 푸시해도 검토를 시작하지 않습니다. **모든 푸시 후**로 설정된 리포지토리에서도 마찬가지입니다26 사용 가능 여부
172
173<h2 id="customize-reviews">
174 검토 사용자 정의
175</h2>27</h2>
176 28
177Code Review는 리포지토리에서 두 개의 파일을 읽어 플래그할 항목을 안내합니다. 이들은 검토에 영향을 미치는 강도가 다릅니다:29Code Review를 설정하기 전에 조직이 자격 요건을 충족하는지 확인하십시오:
178
179* **`CLAUDE.md`**: Claude Code가 검토뿐만 아니라 모든 작업에 사용하는 공유 프로젝트 지침입니다. Code Review는 이를 프로젝트 컨텍스트로 읽고 새로 도입된 위반을 nit으로 플래그합니다.
180* **`REVIEW.md`**: 검토 전용 지침으로 검토 파이프라인의 에이전트가 결과를 찾고 검증하며 에이전트가 결과를 순위 지정하고 보고할 때 참조합니다. 이를 사용하여 팀이 플래그하려는 항목, 심각도 및 결과 보고 방식을 지정합니다.
181
182<h3 id="claude-md">
183 CLAUDE.md
184</h3>
185
186Code Review는 리포지토리의 `CLAUDE.md` 파일을 읽고 새로 도입된 위반을 [nit 수준](#severity-levels) 결과로 처리합니다. 이는 양방향으로 작동합니다: PR이 `CLAUDE.md` 문을 오래된 것으로 만드는 방식으로 코드를 변경하면 Claude는 문서도 업데이트해야 한다고 플래그합니다.
187
188Claude는 디렉토리 계층 구조의 모든 수준에서 `CLAUDE.md` 파일을 읽으므로 하위 디렉토리의 `CLAUDE.md`의 규칙은 해당 경로 아래의 파일에만 적용됩니다. `CLAUDE.md` 작동 방식에 대한 자세한 내용은 [메모리 설명서](/docs/ko/memory)를 참조하십시오.
189 30
190일반 Claude Code 세션에 적용하지 않으려는 검토 전용 지침의 경우 대신 [`REVIEW.md`](#review-md)를 사용하십시오.31* **플랜**: [Team 및 Enterprise](/docs/ko/feature-availability)
191 32* **코드 호스트**: [GitHub Enterprise Server](/docs/ko/github-enterprise-server) 및 데이터 레지던시가 적용된 GitHub Enterprise Cloud를 포함하여 GitHub에 호스팅된 저장소. 데이터 레지던시의 경우 Owner가 [GitHub Enterprise Server 관리자 설정](/docs/ko/github-enterprise-server#admin-setup)을 따르고 엔터프라이즈의 `ghe.com` 호스트 이름을 입력해야 합니다.
192<h3 id="review-md">33* **데이터 보존**: Code Review는 [Zero Data Retention](/docs/ko/zero-data-retention)이 활성화되었거나 [HIPAA 구성](/docs/ko/hipaa-setup)이 적용된 조직에서는 사용할 수 없으며, Anthropic의 Business Associate Agreement(BAA) 적용 대상이 아닙니다.
193 REVIEW\.md34* **암호화 키**: Code Review는 아직 고객 관리형 암호화 키(CMEK)를 사용하는 조직에서 사용할 수 없습니다.
194</h3>35* **클라우드 제공업체**: 개발자가 Amazon Bedrock, Google Cloud의 Agent Platform 또는 Microsoft Foundry를 통해 Claude Code를 사용하더라도 이러한 플랜 중 하나의 Claude 조직이 필요합니다
195 36
196`REVIEW.md`는 리포지토리 루트의 파일로 Code Review를 리포지토리에 맞게 조정합니다. 검토 파이프라인에서 결과를 찾고 검증하는 에이전트는 Code Review의 기본 검토 지침과 함께 리포지토리의 검토 지침으로 그 내용을 받으며, 결과를 순위 지정하고 보고하는 에이전트는 심각도를 결정하고 검토를 작성하기 전에 이를 참조합니다.37<h2 id="set-up-and-use-code-review">
197 38 Code Review 설정 및 사용
198`REVIEW.md`에 적용하려는 규칙을 직접 입력합니다.
199
200<h4 id="what-you-can-tune">
201 조정할 수 있는 항목
202</h4>
203
204`REVIEW.md`는 자유 형식 마크다운이므로 검토 지침으로 표현할 수 있는 모든 것이 범위 내입니다. 아래 패턴은 실제로 가장 큰 영향을 미칩니다.
205
206**심각도**: 리포지토리에 대해 🔴 Important가 의미하는 바를 재정의합니다. 기본 보정은 프로덕션 코드를 대상으로 합니다. 문서 리포지토리, 구성 리포지토리 또는 프로토타입은 훨씬 더 좁은 정의를 원할 수 있습니다. Important인 결과 클래스와 최대 Nit인 결과 클래스를 명시적으로 명시합니다. 다른 방향으로도 확대할 수 있습니다. 예를 들어 기본 nit이 아닌 Important로 `CLAUDE.md` 위반을 처리합니다.
207
208**Nit 볼륨**: 단일 검토가 게시하는 🟡 Nit 댓글의 수를 제한합니다. 산문 및 구성 파일은 영원히 다듬어질 수 있습니다. "최대 5개의 nit을 보고하고 나머지를 요약에 개수로 언급"과 같은 제한은 검토를 실행 가능하게 유지합니다.
209
210**규칙 건너뛰기**: Claude가 결과를 게시하지 않아야 하는 경로, 분기 패턴 및 결과 카테고리를 나열합니다. 일반적인 후보는 생성된 코드, lockfile, 공급된 종속성 및 기계 작성 분기이며, linting 또는 맞춤법 검사와 같이 CI가 이미 적용하는 모든 것입니다. 완전한 정밀 검사를 보장하지 않지만 일부 검토를 보장하는 경로의 경우 완전히 건너뛰는 대신 더 높은 기준을 설정합니다: "`scripts/`에서는 거의 확실하고 심각한 경우에만 보고합니다."
211
212**리포지토리별 확인**: 모든 PR에서 플래그하려는 규칙을 추가합니다. 예: "새 API 경로에는 통합 테스트가 있어야 합니다." `REVIEW.md`가 모든 결과 찾기 및 검증 에이전트에 직접 도달하기 때문에 이들은 긴 `CLAUDE.md`의 동일한 규칙보다 더 안정적으로 도착합니다.
213
214**검증 기준**: 결과 클래스가 게시되기 전에 증거를 요구합니다. 예를 들어 "동작 주장은 명명에서의 추론이 아닌 소스의 `file:line` 인용이 필요합니다"는 그렇지 않으면 작성자에게 왕복을 비용으로 하는 거짓 양성을 줄입니다.
215
216**재검토 수렴**: PR이 이미 검토되었을 때 Claude가 어떻게 작동해야 하는지 알려줍니다. "첫 번째 검토 후 새로운 nit을 억제하고 Important 결과만 게시"와 같은 규칙은 한 줄 수정이 스타일만으로 7라운드에 도달하는 것을 방지합니다.
217
218**요약 형태**: 검토 본문이 `2 factual, 4 style`과 같은 한 줄 집계로 시작하도록 요청하고 그것이 경우일 때 "factual 문제 없음"으로 시작하도록 요청합니다. 작성자는 세부 사항 전에 작업의 형태를 알고 싶어합니다.
219
220<h4 id="example">
221 예시
222</h4>
223
224이 `REVIEW.md`는 백엔드 서비스의 심각도를 재보정하고, nit을 제한하고, 생성된 파일을 건너뛰고, 리포지토리별 확인을 추가합니다.
225
226```markdown theme={null}
227# 검토 지침
228
229## Important가 여기서 의미하는 바
230
231동작을 중단하거나 데이터를 유출하거나 롤백을 차단할 결과에 대해 Important를 예약합니다: 잘못된 논리, 범위가 지정되지 않은 데이터베이스 쿼리, 로그 또는 오류 메시지의 PII, 그리고 역호환되지 않는 마이그레이션입니다. 스타일, 명명 및 리팩토링 제안은 최대 Nit입니다.
232
233## Nit 제한
234
235검토당 최대 5개의 Nit을 보고합니다. 더 많이 발견한 경우 인라인으로 게시하는 대신 요약에서 "plus N similar items"라고 말합니다. 발견한 모든 것이 Nit인 경우 "No blocking issues"로 요약을 시작합니다.
236
237## 보고하지 않음
238
239- CI가 이미 적용하는 모든 것: lint, 형식, 타입 오류
240- `src/gen/` 아래의 생성된 파일 및 모든 `*.lock` 파일
241- 의도적으로 프로덕션 규칙을 위반하는 테스트 전용 코드
242
243## 항상 확인
244
245- 새 API 경로에는 통합 테스트가 있습니다
246- 로그 라인에 이메일 주소, 사용자 ID 또는 요청 본문이 포함되지 않습니다
247- 데이터베이스 쿼리는 호출자의 테넌트로 범위가 지정됩니다
248```
249
250<h4 id="keep-it-focused">
251 초점 유지
252</h4>
253
254길이는 비용이 있습니다: 긴 `REVIEW.md`는 가장 중요한 규칙을 희석합니다. 검토 동작을 변경하는 지침으로 유지하고 일반 프로젝트 컨텍스트는 `CLAUDE.md`에 남겨둡니다.
255
256<h2 id="view-usage">
257 사용량 보기
258</h2>39</h2>
259 40
260[claude.ai/analytics/code-review](https://claude.ai/analytics/code-review)로 이동하여 조직 전체의 Code Review 활동을 확인합니다. 대시보드는 다음을 표시합니다:41<span id="set-up-code-review" />
261 42
262| 섹션 | 표시 내용 |43<span id="pricing" />
263| :- | :- |
264| PRs reviewed | 선택한 시간 범위 동안 검토된 풀 요청의 일일 개수 |
265| Code Review cost | 이번 달 현재까지의 Code Review 지출 |
266| Feedback | 개발자가 문제를 해결하여 자동으로 해결된 검토 댓글의 개수 |
267| Repository breakdown | 저장소별로 검토된 PR 개수, 해결된 댓글 개수, 리뷰 실행 횟수와 함께 추정 비용 및 PR별 보기 |
268 44
269Code Review cost 카드는 현재 월이 선택된 경우에만 금액을 표시합니다. 분석의 비용 수치는 청구서와 다를 수 있습니다. Repository breakdown 비용은 할인이나 크레딧이 적용되기 전의 정가 기준으로 추정되며, Claude가 풀 리퀘스트에 게시한 리뷰만 포함합니다. 청구서와 정확히 일치하는 지출은 Anthropic 청구서를 참조하십시오.45<span id="manually-trigger-reviews" />
270 46
271<h2 id="pricing">47<span id="customize-reviews" />
272 가격
273</h2>
274
275Code Review는 토큰 사용량을 기반으로 청구됩니다. 각 검토는 평균 \$15-25의 비용이 소요되며, PR 크기, 코드베이스 복잡도 및 검증이 필요한 문제의 수에 따라 확장됩니다. Code Review 사용량은 [사용량 크레딧](https://support.claude.com/ko/articles/12429409-extra-usage-for-paid-claude-plans)을 통해 별도로 청구되며 계획에 포함된 사용량에 포함되지 않습니다.
276
277선택한 검토 트리거는 총 비용에 영향을 미칩니다:
278
279* **PR 생성 후 한 번**: PR당 한 번 실행됩니다
280* **모든 푸시 후**: 각 푸시에서 실행되어 푸시 수만큼 비용이 곱해집니다
281* **수동**: 열린 PR이나 푸시에서 자동으로 검토가 실행되지 않으므로 누군가 요청한 검토에서만 비용이 발생합니다
282 48
283PR 생성 후 한 번 또는 수동 모드에서 `@claude review always` [댓글을 작성](#manually-trigger-reviews)하면 PR이 푸시 트리거 검토에 옵트인되므로 해당 댓글 이후 푸시당 추가 비용이 발생합니다. 모든 푸시 후 모드에서는 푸시가 이미 검토를 트리거하므로 구독이 푸시당 비용을 변경하지 않습니다. `@claude review`를 댓글로 작성하면 향후 푸시에 구독하지 않고 단일 검토를 실행합니다. Claude는 [포크에서 풀 요청](#review-pull-requests-from-forks)을 누군가 `@claude review`를 댓글로 작성할 때만 검토하므로, 포크 풀 요청은 어떤 모드에서도 푸시당 비용이 발생하지 않습니다.49<span id="troubleshooting" />
284 50
285비용은 조직이 다른 Claude Code 기능에 Amazon Bedrock 또는 Google Cloud의 Agent Platform을 사용하는지 여부와 관계없이 Anthropic 청구서에 나타납니다. Code Review의 월간 지출 한도를 설정하려면 [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage)로 이동하여 Claude Code Review 서비스의 한도를 구성합니다.51필요한 작업에 맞는 페이지를 선택하십시오:
286 52
287지출을 모니터링하려면 [분석 대시보드](#view-usage)를 사용합니다.53<CardGroup cols={2}>
54 <Card title="Code Review 설정" icon="toggle-on" href="/docs/ko/code-review-setup">
55 요구 사항을 확인하고, Claude GitHub App을 설치하고, 저장소, 리뷰 수준 및 리뷰 실행 시기를 선택합니다
56 </Card>
288 57
289<h2 id="troubleshooting">58 <Card title="Code Review 사용자 정의" icon="sliders" href="/docs/ko/code-review-customize">
290 문제 해결59 저장소의 `REVIEW.md` 및 `CLAUDE.md` 파일로 플래그되는 항목을 조정합니다
291</h2>60 </Card>
292
293검토 실행은 최선의 노력입니다. 실패한 실행은 PR을 차단하지 않습니다. Code Review는 중단된 일부 검토를 자동으로 재시도합니다. 이 섹션에서는 검토를 다시 실행하는 방법과 확인 실행이 찾을 수 없는 문제를 보고할 때 어디를 봐야 하는지 다룹니다.
294 61
295<h3 id="retrigger-a-failed-or-timed-out-review">62 <Card title="풀 리퀘스트에서 리뷰 읽기 및 요청" icon="code-pull-request" href="/docs/ko/code-review-pull-requests">
296 실패하거나 시간 초과된 검토 재트리거63 결과와 심각도를 읽고, 댓글로 다른 리뷰를 요청합니다
297</h3>64 </Card>
298 65
299검토가 실패하거나 시간 제한을 초과하면 확인 실행이 **Code review failed** 또는 **Code review timed out** 같은 제목으로 완료됩니다. 결론은 여전히 중립적이므로 병합을 차단하는 것은 없습니다. 확인 실행의 요약에서 커밋의 새로운 검토가 자동으로 대기열에 추가되었다고 말하지 않으면 검토를 직접 다시 실행하십시오.66 <Card title="Code Review 문제 해결" icon="wrench" href="/docs/ko/code-review-troubleshooting">
67 시작되지 않았거나, 실패했거나, 예산 때문에 건너뛴 리뷰를 해결합니다
68 </Card>
300 69
301검토를 다시 실행하려면 PR에서 `@claude review`를 댓글로 작성하십시오. 이렇게 하면 PR을 향후 푸시에 구독하지 않고 새로운 검토를 시작합니다. PR이 [포크에서](#review-pull-requests-from-forks) 나온 것이 아니면 GitHub의 Checks 탭에서 **Claude Code Review** 확인 옆의 **Re-run**을 클릭할 수 있습니다. 재실행도 PR을 구독하지 않고 새로운 검토를 시작합니다.70 <Card title="Code Review 비용 및 사용량" icon="chart-line" href="/docs/ko/code-review-costs">
71 리뷰 청구 방식을 확인하고, 지출을 추정하고, 월간 지출 한도를 설정하고, 리뷰 활동을 추적합니다
72 </Card>
73</CardGroup>
302 74
303<h3 id="review-didn’t-run-and-the-pr-shows-a-budget-message">75<h2 id="how-reviews-work">
304 검토가 실행되지 않았고 PR이 예산 메시지를 표시합니다76 리뷰 작동 방식
305</h3>
306
307조직의 Code Review 월간 지출 한도에 도달하거나 사용량 크레딧 잔액이 소진되면 Code Review는 검토를 건너뛰고 PR에 단일 댓글을 게시합니다. 댓글과 확인 실행 카드 모두 원인을 명시하고, 관리자가 문제를 해결할 수 있는 관리자 페이지로 연결됩니다:
308
309* **지출 한도 도달**: 검토는 다음 청구 기간의 시작 시 재개되거나 관리자가 [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage)에서 한도를 높이면 즉시 재개됩니다
310* **사용량 크레딧 소진**: 관리자가 [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage)에서 [사용량 크레딧](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)을 추가하면 검토가 재개됩니다
311
312<h3 id="find-issues-that-aren’t-showing-as-inline-comments">
313 인라인 댓글로 표시되지 않는 문제 찾기
314</h3>
315
316확인 실행 제목이 문제가 발견되었다고 말하지만 diff에서 인라인 검토 댓글을 보지 못하면 결과가 표시되는 다른 위치를 확인하십시오:
317
318* **Check run Details**: Checks 탭의 Claude Code Review 확인 옆에 있는 **Details**를 클릭합니다. 심각도 테이블은 인라인 댓글이 수락되었는지 여부와 관계없이 파일, 라인 및 요약과 함께 모든 결과를 나열합니다.
319* **Files changed annotations**: PR의 **Files changed** 탭을 엽니다. 결과는 검토 댓글과 별도로 diff 라인에 직접 첨부된 주석으로 렌더링됩니다.
320* **Review body**: 검토가 실행 중인 동안 PR을 푸시한 경우 일부 결과는 현재 diff에 더 이상 존재하지 않는 라인을 참조할 수 있습니다. 이들은 인라인 댓글이 아닌 검토 본문 텍스트의 **Additional findings** 제목 아래에 나타납니다.
321
322<h2 id="review-a-diff-locally">
323 로컬에서 diff 검토
324</h2>77</h2>
325 78
326[`/code-review` 명령](/docs/ko/commands)은 GitHub 앱을 설치하지 않고 터미널에서 diff를 검토합니다. 정확성 버그를 보고합니다. 모델과 effort 수준에 따라 검토에는 재사용, 단순화 및 효율성 정리도 포함됩니다.79<span id="what-code-review-checks" />
327 80
328`/review`는 `/code-review`의 별칭입니다. v2.1.223 이전에는 GitHub pull request의 단일 패스, 읽기 전용 검토를 실행하는 별도의 명령이었습니다.81기본적으로 Code Review는 정확성에 중점을 둡니다. 형식 선호나 누락된 테스트 범위가 아니라 프로덕션을 중단시킬 버그입니다. 플래그되는 항목을 변경하려면 저장소에 [지침 파일을 추가](/docs/ko/code-review-customize)하십시오.
329 82
330<Steps>83리뷰는 Anthropic 인프라에서 네 단계로 실행됩니다:
331 <Step title="/code-review 실행">
332 작업 중인 세션에서 다음 명령을 실행합니다:
333 84
334 ```text theme={null}851. **찾기**: 여러 에이전트가 diff와 주변 코드를 병렬로 검사합니다.
335 /code-review862. **검증**: 검증 단계에서 후보 결과를 코드와 대조하여 확인하고 거짓 양성을 걸러냅니다.
336 ```873. **순위 지정**: 남은 결과는 중복 제거된 후 심각도별로 순위가 매겨집니다.
884. **게시**: 리뷰가 풀 리퀘스트에 결과를 게시합니다.
337 89
338 이 명령은 업스트림보다 앞선 브랜치의 커밋과 커밋되지 않은 변경 사항을 검토하므로, 보고할 내용이 있으려면 브랜치에서 작업하거나 작업 트리에서 작업해야 합니다. 다른 항목을 검토하려면 대상을 전달합니다: 파일 경로, PR 번호, 브랜치 이름 또는 `main...my-feature`와 같은 ref 범위입니다.90각 리뷰는 풀 리퀘스트에 다음을 남깁니다:
339 91
340 다음 플래그를 추가할 수도 있습니다:92* **결과**: 해당 라인의 인라인 댓글과 리뷰 본문의 요약
93* **확인 실행**: 이름은 **Claude Code Review**이며, 결과가 [세부 정보](/docs/ko/code-review-pull-requests#check-run-output)에 나열됩니다. 확인 실행은 실패로 종료되지 않습니다.
94* **아무것도 찾지 못한 경우**: 확인 실행의 제목이 **Code review found no issues**로 표시되며, Claude가 풀 리퀘스트에 같은 내용의 짧은 메모를 게시합니다
341 95
342 * `--fix`: 검토 후 결과를 작업 트리에 적용합니다96Code Review는 리뷰가 실행될 Claude 모델을 선택하며, 관리자 설정에서는 모델 선택을 제공하지 않습니다. 리뷰를 더 철저하게 또는 덜 철저하게 하려면 [리뷰 수준](#review-levels)을 변경하십시오.
343 * `--comment`: GitHub 풀 리퀘스트에 인라인 댓글로 결과를 게시하거나, GitLab merge request에 단일 노트로 게시합니다
344 * `--post`: `github.com` 풀 리퀘스트의 `ultra` 클라우드 검토에서 시작 대화 상자에 완료된 결과를 PR에 게시하는 것을 미리 선택합니다. [풀 리퀘스트에 결과 게시](/docs/ko/ultrareview#post-findings-to-the-pull-request)를 참조하십시오. Claude Code v2.1.227 이상이 필요합니다
345 * `--max-findings <n>`, `--max-findings all` 또는 `--max-findings default`: 검토의 일반적인 제한 대신 최대 `n`개의 결과를 보고하거나, `all`을 사용하면 모든 결과를 보고합니다. 이후 검토는 `--max-findings default`를 전달할 때까지 입력한 값을 재사용합니다. Claude Code v2.1.288 이상이 필요합니다
346 97
347 GitLab merge request에 대해 `--comment`를 전달하면, Claude Code는 GitLab의 `glab` CLI를 통해 결과를 게시합니다. Claude Code v2.1.257 이상이 필요합니다. `glab`이 설치되지 않은 경우, Claude는 대신 터미널에 결과를 출력합니다.98Owner가 Code Review를 켜면 각 저장소에는 [리뷰 실행 시기](/docs/ko/code-review-setup#set-when-reviews-run)에 대한 설정이 있습니다. 풀 리퀘스트가 열릴 때 한 번, 모든 푸시 후, 또는 요청 시에만 실행됩니다. 어떤 설정이든 저장소에 대한 쓰기 권한이 있는 사용자는 풀 리퀘스트에 `@claude review`를 댓글로 작성하여 [리뷰를 시작](/docs/ko/code-review-pull-requests#comment-commands)할 수 있습니다.
348 99
349 merge request를 URL 또는 `!123` 참조로 전달합니다. Claude Code는 체크아웃의 origin이 `gitlab.com`에 있을 때만 숫자 또는 브랜치 이름을 merge request로 취급합니다. 자체 관리 GitLab 인스턴스에서는 URL 또는 `!123` 형식으로 전달합니다.100<h3 id="review-levels">
350 </Step>101 리뷰 수준
351
352 <Step title="계속 작업">
353 검토는 자체 컨텍스트 윈도우를 가진 백그라운드 [subagent](/docs/ko/sub-agents)로 실행되므로 대화를 채우지 않습니다. 검토가 완료되면 결과가 대화에 도착합니다.
354 </Step>
355
356 <Step title="결과에 대해 조치">
357 Claude에게 검토에서 발견한 내용을 수정하도록 요청합니다. `--fix` 또는 `--comment`를 전달한 경우, 검토가 이미 결과를 적용하거나 게시했습니다.
358 </Step>
359</Steps>
360
361Claude는 호스트 애플리케이션이 아래에 설명된 결과 목록을 요청하는 경우에도 두 가지 실행 모두에서 회신의 텍스트로 결과를 보고합니다:
362
363* 터미널 세션에서, `/code-review`는 [forked subagent](/docs/ko/skills#run-skills-in-a-subagent)로 검토를 실행합니다
364* 텍스트 또는 JSON 출력이 있는 `-p` 실행에서
365
366결과 목록을 요청하는 호스트 애플리케이션(예: [데스크톱 앱](/docs/ko/desktop#review-your-code))에서는, Claude가 대신 [`ReportFindings` 도구](/docs/ko/tools-reference)를 통해 검토의 결과를 보고합니다. Claude Code는 보고서를 결과 목록으로 렌더링하며, 각 항목은 파일 위치, 한 문장 요약 및 결과에 카테고리 태그가 있을 때 `correctness`와 같은 카테고리 태그를 표시합니다. 호스트 요청은 모든 effort 수준에서 적용되며 Claude Code v2.1.218 이상이 필요합니다.
367
368Claude가 나중에 세션에서 보고된 결과를 수정할 때, 다시 보고하며, Claude Code는 업데이트된 결과 목록의 각 결과를 수정됨, 건너뜀 또는 변경 필요 없음으로 표시합니다.
369
370<h3 id="what-the-review-reads-and-edits">
371 검토가 읽고 편집하는 내용
372</h3>102</h3>
373 103
374검토는 모든 Claude Code 세션처럼 `CLAUDE.md`를 따르지만, [`REVIEW.md`](#review-md)는 읽지 않습니다. 백그라운드 검토는 `--fix` 편집을 세션의 [checkpoints](/docs/ko/checkpointing#subagent-edits-not-restored) 외부에 적용하므로, `/rewind`는 이를 취소하지 않습니다. git을 사용하여 이를 되돌립니다. 검토가 [포그라운드에서 실행](#run-in-the-foreground)될 때, 자신의 차례 동안 작업 트리를 편집하므로, `/rewind`는 평소대로 편집을 복원합니다.104리뷰 수준은 각 리뷰의 철저함을 설정하며, 더 철저한 리뷰일수록 비용이 더 많이 듭니다:
375 105
376<h3 id="tune-effort-and-arguments">106* **Quick**: 더 가벼운 검토입니다. 가장 빠른 수준이며 비용이 가장 낮습니다.
377 노력 및 인수 조정107* **Standard**: 깊이, 속도, 비용의 균형을 맞춥니다. 기본 수준입니다.
378</h3>108* **Deep**: 가장 철저한 검토입니다. 시간이 가장 오래 걸리고 비용이 가장 많이 듭니다.
379 109
380[effort 수준](/docs/ko/model-config#adjust-effort-level)을 전달하여 범위와 신뢰도를 교환합니다. `low`에서 검토는 가장 확신하는 결과를 보고하므로 거짓 양성이 적습니다. `medium`부터 `max`까지는 검토가 범위를 확대합니다.110Owner는 [조직에 대해 하나의 수준을 선택](/docs/ko/code-review-setup#set-the-default-review-level)하고, 일상적인 코드베이스에는 Quick, 중요한 코드베이스에는 Deep처럼 개별 저장소에 별도의 수준을 지정할 수 있습니다. 각 리뷰의 비용에 영향을 주는 다른 요인은 [Code Review 비용 및 사용량](/docs/ko/code-review-costs)을 참조하십시오.
381 111
382수준을 입력하지 않으면, 검토는 이전 세션에서도 입력한 `low`부터 `max`까지의 마지막 수준을 재사용하며, Claude Code는 `Reusing high effort, the level you typed last time`과 같은 알림을 표시합니다. `/code-review high`와 같은 수준을 입력하여 나중에 실행이 재사용할 내용을 변경합니다. 비대화형 `-p` 실행에서 전달하는 수준은 이를 업데이트하지 않습니다. `ultra`는 기억된 수준을 업데이트하거나 사용하지 않습니다. 수준을 입력한 적이 없으면, 검토는 세션의 현재 노력을 사용합니다. v2.1.223 이전에는 수준 없는 `/code-review`는 항상 세션의 현재 노력을 사용했습니다.112<h3 id="what-a-review-can-access">
383 113 리뷰가 액세스할 수 있는 항목
384노력 수준과 플래그 후, Claude Code는 다음 두 가지 방법 중 하나로 줄의 나머지를 읽습니다:
385
386* **`ultra` 없음**: 남은 모든 것이 검토 대상입니다. 다른 명령 이름으로 시작하더라도 마찬가지입니다. `/code-review /fix-issue 123`은 `/fix-issue 123`을 대상 텍스트로 검토하며, 두 번째 [stacked skill](/docs/ko/skills#pass-arguments-to-skills)로 `/fix-issue`를 로드하지 않습니다. v2.1.218 이전에는 `/code-review` 후에 스택된 명령이 자체 스킬로 확장되었습니다.
387* **`ultra` 포함**: Claude Code는 단일 단어를 기본 브랜치 또는 PR 번호로 읽고, 브랜치 또는 PR을 명명하지 않는 더 긴 텍스트를 [검토에 첨부된 노트](/docs/ko/ultrareview#pass-a-request-in-plain-words)로 변환합니다. `/code-review ultra check my auth changes`는 현재 브랜치를 검토하며, Claude는 결과를 노트와 연관시킵니다.
388
389<h3 id="run-in-the-foreground">
390 포그라운드에서 실행
391</h3>114</h3>
392 115
393검토는 기본적으로 백그라운드에서 실행됩니다. v2.1.218 이전에는 대화 내에서 실행되었습니다. 다음과 같은 경우에는 포그라운드에서 실행됩니다:116리뷰는 Owner가 [설정 중에 설치](/docs/ko/code-review-setup#turn-on-code-review)한 Claude GitHub App을 통해 저장소에 접근합니다:
394 117
395* 이전 검토가 아직 진행 중인 동안 `/code-review`를 다시 실행합니다118* **실행 위치**: Anthropic 인프라의 관리형 환경에서 실행됩니다. 리뷰는 [자체 호스팅 환경](/docs/ko/self-hosted-environments)에서 실행되지 않습니다.
396* 비대화형 모드에서 실행합니다. `-p` 플래그 또는 Agent SDK를 사용합니다. Claude Code는 검토를 기다리고 응답에 결과를 포함합니다. 단, `ultra`는 예외로, [클라우드 검토를 기다리지 않습니다](/docs/ko/ultrareview#run-ultrareview-non-interactively)119* **읽고 쓰는 항목**: 리뷰 내에서 저장소에 대한 액세스는 읽기 전용이며, 리뷰는 커밋을 푸시하지 않습니다. 풀 리퀘스트에서는 댓글과 [확인 실행](/docs/ko/code-review-pull-requests#check-run-output)을 게시하고, 자신의 이전 댓글 스레드를 해결하며, 댓글 명령에 👀로 반응할 수 있습니다. 앱 자체는 다른 Claude 기능과 공유하는 [더 광범위한 권한 집합](/docs/ko/github-actions#github-app-permissions)을 보유합니다.
397* [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](/docs/ko/env-vars)를 `1`로 설정합니다. 이는 다른 모든 백그라운드 작업 기능도 끕니다120* **코드 검사 방식**: 리뷰는 코드를 빌드하거나 실행하지 않고 diff와 주변 코드를 읽는 방식으로 작동합니다.
398 121
399<h3 id="let-claude-start-the-review">122<h3 id="who-controls-a-review">
400 Claude가 검토를 시작하도록 허용123 리뷰를 제어하는 주체
401</h3>124</h3>
402 125
403Claude는 자체적으로 `/code-review`를 시작할 수 있습니다. 일반 언어로 변경 사항을 검토하도록 요청하면 명령을 입력하지 않고도 스킬을 실행할 수 있으며, `/code-review`를 프롬프트로 하는 [scheduled task](/docs/ko/scheduled-tasks)는 검토를 실행합니다.126* **시작할 수 있는 사람**: 리뷰가 자동으로 실행되는 경우, 풀 리퀘스트를 열거나 푸시하면 리뷰가 시작됩니다. 단, [초안과 포크는 예외](/docs/ko/code-review-pull-requests#review-drafts-and-pull-requests-from-forks)입니다. [댓글 명령](/docs/ko/code-review-pull-requests#comment-commands)은 저장소에 대한 쓰기 권한이 있는 사람이 작성한 경우에만 리뷰를 시작합니다.
404 127* **따르는 지침**: base 또는 기본 브랜치의 `REVIEW.md`를 따르며, [풀 리퀘스트 자체의 변경 사항에서는 절대 읽지 않습니다](/docs/ko/code-review-customize#which-branch-review-md-is-read-from).
405예약된 작업은 [클라우드 검토](#escalate-to-ultrareview)를 시작하지 않으므로, `ultra` 인수 없이 `/code-review`를 예약합니다.
406 128
407Claude와 예약된 작업이 검토를 시작하는 것을 중지하면서 `/code-review`를 입력할 수 있도록 유지하려면, `~/.claude/settings.json`과 같은 [settings file](/docs/ko/settings#where-settings-live)에 [`skillOverrides`](/docs/ko/skills#override-skill-visibility-from-settings) 항목을 추가합니다:129<h2 id="compare-ways-to-get-a-review">
408 130 리뷰를 받는 방법 비교
409```json theme={null}131</h2>
410{
411 "skillOverrides": {
412 "code-review": "user-invocable-only"
413 }
414}
415```
416
417v2.1.246 이전에는 Claude가 Anthropic에서 가져온 기능 플래그가 켜진 경우에만 자체적으로 `/code-review`를 시작했습니다. [기능 플래그를 가져오지 않는 세션](/docs/ko/env-vars#features-that-need-feature-flag-fetching)에서는 `/code-review`가 입력할 때만 실행되었으며, 예약된 `/code-review`는 Claude에 일반 텍스트로 도달했습니다.
418
419<h3 id="escalate-to-ultrareview">
420 ultrareview로 확대
421</h3>
422
423`/code-review ultra --fix`는 클라우드에서 더 깊은 [ultrareview](/docs/ko/ultrareview)를 실행한 다음, 세션으로 돌아올 때 결과를 작업 트리에 적용합니다.
424
425Ultrareview는 자체 범위를 사용합니다: 현재 브랜치와 저장소의 기본 브랜치, 그리고 작업 트리의 커밋되지 않은 및 스테이징된 변경 사항입니다. 자격 증명 또는 키처럼 명명된 파일의 커밋되지 않은 변경 사항(예: `.env` 및 `*.tfvars` 파일)의 경우, Claude Code는 [클라우드 세션에 로컬 저장소 업로드](/docs/ko/claude-code-on-the-web#send-local-repositories-without-github)에 대한 규칙을 따릅니다. 다른 기본과 비교하려면 `/code-review ultra develop`과 같은 브랜치 이름을 전달합니다.
426
427대상이 `github.com` pull request인 경우, Claude가 [완료된 결과를 PR에 게시](/docs/ko/ultrareview#post-findings-to-the-pull-request)하도록 GitHub 계정의 댓글로 할 수 있습니다. Claude Code v2.1.227 이상이 필요합니다.
428
429<Note>
430 Ultrareview는 claude.ai 계정으로 인증이 필요하며 Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry에서 사용할 수 없으며, Zero Data Retention이 활성화되었거나 [HIPAA 구성](/docs/ko/hipaa-setup)이 적용된 조직에서도 사용할 수 없습니다. ultrareview를 사용할 수 없으면, `/code-review ultra`는 대신 세션에서 로컬 검토를 실행합니다.
431</Note>
432 132
433스크립트 또는 CI 작업에서 클라우드 검토를 실행하려면 [`claude ultrareview` 하위 명령](/docs/ko/ultrareview#run-ultrareview-non-interactively)을 사용합니다. 이 명령은 결과를 기다린 후 stdout에 출력합니다.133사용 가능한 옵션을 찾으려면 **사용 가능 대상** 열을 플랜 및 코드 호스트와 비교하여 확인하십시오:
434 134
435이 명령은 v2.1.147 이전에 `/simplify`로 명명되었으며, 기본적으로 수정 사항을 적용했습니다. `/simplify`는 버그를 찾지 않고 수정 사항을 적용하는 별도의 정리 전용 검토를 실행합니다. 버그 찾기를 위해 `/simplify`를 스크립트했다면, `/code-review --fix`로 전환합니다.135| 옵션 | 리뷰를 시작하는 방법 | 실행 위치 | 사용 가능 대상 |
136| :- | :- | :- | :- |
137| [Code Review](#how-reviews-work) | 각 저장소 설정에 따른 풀 리퀘스트 활동 또는 `@claude review` 댓글 | Anthropic 인프라 | Owner가 켠 후, GitHub 저장소를 보유한 Team 또는 Enterprise 플랜의 조직 |
138| [`/code-review`](/docs/ko/code-review-local) | 브랜치에서 명령을 실행 | Claude Code 세션 | 모든 플랜의 모든 사용자 |
139| [Ultrareview](/docs/ko/ultrareview) | Claude Code에서 시작 | 클라우드 샌드박스 | claude.ai 계정으로 로그인해야 합니다. 사용할 수 없는 환경은 [Ultrareview](/docs/ko/ultrareview)를 참조하십시오 |
140| [GitHub Actions](/docs/ko/github-actions) 또는 [GitLab CI/CD](/docs/ko/gitlab-ci-cd)를 사용한 자체 CI의 Claude | 모든 풀 리퀘스트 또는 merge request와 같은 파이프라인 이벤트 | 자체 CI 러너 | GitHub 또는 GitLab에서 Claude API 키 또는 클라우드 제공업체 자격 증명이 있는 모든 사용자 |
141| [서브에이전트](/docs/ko/sub-agents) 또는 [스킬](/docs/ko/skills)로 만든 자체 리뷰어 | 세션 중에 사용자 또는 Claude가 호출 | Claude Code를 실행하는 모든 위치 | 직접 작성하는 모든 사용자 |
436 142
437<h2 id="related-resources">143<h2 id="related-resources">
438 관련 리소스144 관련 리소스
439</h2>145</h2>
440 146
441* [Commands](/docs/ko/commands): 로컬 Claude Code 세션에서 `/code-review`를 실행하여 푸시 전에 diff를 확인합니다147* [GitHub Enterprise Server](/docs/ko/github-enterprise-server): 자체 호스팅 GitHub 인스턴스에서 Code Review를 사용합니다
442* [GitHub Actions](/docs/ko/github-actions): 코드 검토 이상의 사용자 정의 자동화를 위해 자신의 GitHub Actions 워크플로우에서 Claude를 실행합니다148* [GitHub App 권한](/docs/ko/github-actions#github-app-permissions): Claude GitHub App이 요청하는 전체 권한 집합
443* [GitLab CI/CD](/docs/ko/gitlab-ci-cd): GitLab 파이프라인을 위한 자체 호스팅 Claude 통합149* [How Anthropic secures its AI-native software development lifecycle](https://claude.com/blog/how-anthropic-secures-its-ai-native-software-development-lifecycle): 자동화된 리뷰가 Anthropic의 안전한 개발 프로세스의 한 계층으로 어떻게 적합한지에 대한 설명
444* [Memory](/docs/ko/memory): Claude Code 전체에서 `CLAUDE.md` 파일이 작동하는 방식
445* [Analytics](/docs/ko/analytics): 코드 검토 이상으로 Claude Code 사용량을 추적합니다
446* [How Anthropic secures its AI-native software development lifecycle](https://claude.com/blog/how-anthropic-secures-its-ai-native-software-development-lifecycle): 자동화된 검토가 Anthropic의 안전한 개발 프로세스의 한 계층으로 어떻게 적합한지에 대한 설명