# 코드 리뷰 (/ko/docs/verdent-manager/advanced-features/code-review)

> 내장 Reviewer 서브에이전트, 다중 모델 리뷰, 원클릭 수정으로 코드 변경 사항을 검토합니다



Verdent에는 **Reviewer**라는 내장 서브에이전트가 포함되어 있으며, 이 에이전트의 유일한 역할은 코드를 리뷰하는 것입니다. 코드 작성을 마친 뒤 `@Reviewer`만 태그하면, 여러 관점에서 변경 사항을 검사하고 심각도순으로 정렬된 구조화된 이슈 목록을 출력합니다. 수정하려는 항목을 선택하면 변경 사항이 자동으로 적용됩니다. 댓글을 작성하거나 문서를 직접 찾아볼 필요가 없습니다.

***

## 코드 리뷰 실행 방법 [#코드-리뷰-실행-방법]

가장 직접적인 방법은 그룹에서 팀원을 멘션하듯 채팅에 `@Reviewer`를 입력하는 것입니다.

```
@Reviewer please review the authentication logic I just wrote
```

Reviewer는 현재 컨텍스트를 자동으로 읽고 리뷰를 시작합니다. 별도 지시 없이 `@Reviewer`만 호출해도 됩니다. 그러면 Reviewer가 무엇을 검사할지 스스로 결정합니다.

수동 실행 외에도, Agent는 워크플로의 마지막 **VERIFY** 단계에서 Reviewer를 자동으로 호출할 수 있습니다. 코드 작성이 끝나면 따로 신경 쓰지 않아도 됩니다. 시스템이 Reviewer를 불러 결과를 검증합니다.

***

## 리뷰 출력 형태 [#리뷰-출력-형태]

리뷰가 끝나면 구조화된 **Findings** 목록이 표시됩니다. 각 항목에는 다음이 포함됩니다.

* **제목** — 이슈를 한 줄로 설명
* **상세 설명** — 왜 문제가 되는지와 잠재적 영향
* **파일 경로 + 줄 번호** — 선택하면 해당 코드로 바로 이동
* **신뢰도 점수** — Reviewer가 얼마나 확신하는지 표시(0–1)

이슈는 세 가지 심각도 수준으로 분류됩니다.

| 우선순위   | 의미              | 일반적인 예시               |
| ------ | --------------- | --------------------- |
| **P0** | 치명적, 반드시 수정해야 함 | 로직 오류, SQL 인젝션, 권한 상승 |
| **P1** | 중요, 수정하는 것이 좋음  | 누락된 엣지 케이스, 잠재적 성능 문제 |
| **P2** | 제안              | 코드 스타일, 가독성 개선        |

상단에는 `P0: 1 / P1: 3 / P2: 5`와 같은 요약이 표시되어 심각도 분포를 즉시 파악할 수 있습니다. 마지막에는 `overall_explanation`가 변경 사항에 대한 상위 수준 평가를 제공합니다.

***

## 원클릭 수정 [#원클릭-수정]

각 이슈를 직접 수정할 필요가 없습니다. 각 Finding에는 체크박스가 포함됩니다.

1. 수정하려는 이슈를 선택합니다(전체 선택 지원)
2. **Fix**를 선택합니다
3. Reviewer가 변경 사항을 자동으로 적용합니다
4. 상태가 **Fix done**으로 업데이트됩니다

일부 경우 Reviewer가 변경 사항의 위험도가 낮다고 판단하면, 확인을 요구하지 않고 모든 이슈를 자동으로 선택해 수정을 실행할 수 있습니다.

***

## 다중 모델 협업 리뷰 [#다중-모델-협업-리뷰]

Reviewer의 가장 강력한 기능 중 하나는 **다중 모델 코드 리뷰**입니다. 여러 AI 모델이 같은 코드를 병렬로 리뷰하며, 서로 다른 배경을 가진 세 명의 엔지니어가 구현을 독립적으로 평가하는 것과 비슷합니다.

**활성화 방법**

**Settings → Chat → Reviewer → "Multi-model review" 활성화**로 이동합니다.

**모델 선택 모드**

| 모드               | 설명                                           |
| ---------------- | -------------------------------------------- |
| **Default mode** | Verdent가 작업 복잡도에 따라 최적의 모델 조합을 자동으로 선택합니다    |
| **User mode**    | 1–3개 모델을 직접 선택합니다(Claude, GPT, Gemini 혼합 가능) |

최대 **3개 모델**을 선택할 수 있습니다. 첫 번째 모델은 기본 리뷰어이고, 나머지는 보조 리뷰어입니다. 모델 수가 많을수록 더 넓게 검토할 수 있지만 실행 속도는 느려집니다. 단순한 변경에는 보통 모델 하나로 충분합니다.

***

## 리뷰 규칙(사용자 지정 리뷰 정책) [#리뷰-규칙사용자-지정-리뷰-정책]

Reviewer는 기본적으로 많은 일반적인 이슈를 잡아내지만, 팀마다 고유한 기준이 있습니다. **Review Rules**를 사용하면 엔지니어링 가이드라인을 직접 정의할 수 있습니다.

**설정 위치**

Settings → Chat → Reviewer → Review Rules 편집기(Markdown을 지원하는 Monaco 편집기).

**정의할 수 있는 항목**

* 모든 SQL 쿼리는 문자열 연결 없이 파라미터화된 문을 사용해야 합니다
* 비동기 작업에는 적절한 try/catch 오류 처리가 포함되어야 합니다
* props가 안정적일 때 React 컴포넌트는 `memo`를 사용해야 합니다
* 모든 공개 API는 사용자 권한을 검증해야 합니다

이 규칙들은 Reviewer의 컨텍스트에 자동으로 주입되며, 모든 리뷰 중에 검사됩니다. 업데이트는 약 500ms 후 자동으로 적용됩니다. 수동 저장은 필요하지 않습니다.

***

## 실시간 워크플로 [#실시간-워크플로]

리뷰 중에는 Reviewer의 **Working Tree Stream**을 실시간으로 볼 수 있습니다. 어떤 파일을 읽고 어떤 로직을 분석하는지 표시됩니다. 펼치면 전체 작업 트리가 나타납니다. 더 단순한 보기를 원하면 접을 수 있으며, 결과에는 영향을 주지 않습니다.

***

## 사용 사례 [#사용-사례]

### 최종 품질 점검 [#최종-품질-점검]

복잡한 로직을 구현한 뒤 `@Reviewer`를 실행하면 피로 때문에 놓쳤을 수 있는 엣지 케이스와 미묘한 버그를 잡을 수 있습니다.

### PR 전 검증 [#pr-전-검증]

풀 리퀘스트를 제출하기 전에 리뷰를 실행합니다. 먼저 모든 P0/P1 이슈를 수정하면 오가는 논의를 줄이고 팀원의 리뷰 부담을 낮출 수 있습니다.

### 보안 감사 [#보안-감사]

보안 중심의 Review Rules(예: "모든 입력은 XSS 방지를 위해 정제되어야 함")를 추가하면 모든 변경 사항이 보안 정책에 맞게 자동으로 검사됩니다.

### 팀 기준 적용 [#팀-기준-적용]

ESLint 규칙, API 디자인 규약, 네이밍 기준을 Review Rules에 인코딩하면 신규 기여자도 팀 가이드라인을 자동으로 따르게 됩니다.

### 여러 관점의 아키텍처 결정 [#여러-관점의-아키텍처-결정]

큰 변경에는 다중 모델 리뷰를 활성화해 독립적인 평가를 받고 사각지대를 찾아낼 수 있습니다.

### 초보자를 위한 학습 도구 [#초보자를-위한-학습-도구]

Reviewer 피드백을 학습 자료로 사용합니다. P0 이슈가 왜 중요한지 이해하면 문서를 읽는 것보다 핵심 엔지니어링 원칙을 더 빠르게 배울 수 있습니다.

***

## 참고 사항 [#참고-사항]

* **단일 모델 vs 다중 모델**: 다중 모델은 더 넓게 검토하지만 더 느리고 비용이 더 듭니다. 단순하거나 긴급한 작업에는 보통 단일 모델로 충분합니다.
* **무료 티어 제한**: User mode의 무료 사용자는 Eco Mode 풀의 모델만 선택할 수 있습니다. 프리미엄 모델은 구독이 필요합니다.
* **모델 지원 중단**: 선택한 모델이 retired되면 비활성화되며 교체해야 합니다.
* **Review Rules는 전역입니다**: 모든 프로젝트에 적용됩니다. 규칙이 프로젝트 전용이라면 메모를 추가하거나 사용 후 제거하세요.
* **BYOK 상태**: 자체 API 키를 사용하는 경우, 키가 만료되었거나 잔액이 부족하면 해당 모델이 비활성화되고 업데이트 전까지 리뷰가 실패합니다.

***

## 함께 보기 [#함께-보기]

<CardGroup cols="2">
  <Card title="서브에이전트" icon="robot" href="/docs/verdent-manager/configuration/subagents">
    내장 서브에이전트에 대해 알아보기
  </Card>

  <Card title="BYOK" icon="key" href="/docs/verdent-manager/configuration/byok">
    자체 API 키 사용하기
  </Card>

  <Card title="Plan Mode" icon="clipboard-list" href="/docs/verdent-manager/advanced-features/plan-mode">
    구현 전에 플랜 세우기
  </Card>
</CardGroup>
