PR 리뷰, 이제 한국어로
GitHub PR이 열리면 자동으로 한국어로 코드 리뷰 코멘트를 게시합니다.
우아한테크코스 · 네이버 Hackday · 토스 Frontend Fundamentals 등 공식 공개 컨벤션 기반.
이미 많은 개발자들이 겪고 있는 문제
CodeRabbit 한국어 설정 후 실제 개발자들의 반응
"config 적용 안 되서 자꾸 영어로 말함"
— turtle0204.tistory (2025.09)
"경험상 영어로 받는 것이 문맥상 조금 더 정확"
— velog 사용기 (2025.11)
"코드래빗 한국어 안 됨 해결 방법"
— Google 자동 생성 답변
우린 검증 가능한 것만 약속합니다
많은 AI 코드 리뷰 도구가 "수십 개 컨벤션 지원"을 마케팅합니다. 하지만 상당수는 공식 문서가 없는 회사의 이름을 빌린 추정 규칙입니다. PRmate는 다릅니다.
✓우리의 원칙
- • 공식 공개 자료만 컨벤션 근거로 사용
- • 모든 컨벤션에 공식 출처 URL 명시
- • 프롬프트에 출처 링크를 Claude에게도 노출
- • 잘못된 설정 값 사용 시 친절한 안내 메시지
✗하지 않는 일
- • 공개 문서 없는 기업명으로 추정 규칙 마케팅
- • 출처 없는 "우리가 만든 XX 스타일"
- • 사용자 코드 수집/저장
- • 숨겨진 비용 (모든 PR에 정확한 금액 표시)
PRmate vs CodeRabbit
한국 개발자 기준 정직한 비교
| 기능 | PRmate | CodeRabbit |
|---|---|---|
| 한국어 리뷰 품질 | ✓공식 지원 (번역체 없음) | 설정 옵션 (실전 영어 많음) |
| 한국 IT사 공식 컨벤션 | ✓우아한/네이버/토스 3종 | 없음 |
| 비용 투명성 | ✓PR마다 USD/KRW 표시 | 구독제 |
| 가격 | ✓베타 유료기능 무료 / Starter ₩9,900 | $15/월 ~ |
| 커스텀 컨벤션 파일 | ✓.md 주입 기본 지원 | 제한적 |
| 설치 난이도 | YAML 한 줄 (5분) | ✓원클릭 (GitHub App) |
| Slack · Discord 알림 | ✓리뷰 즉시 알림 (무료) | 유료 예약 리포트만 |
| 원클릭 설치 | 추후 업데이트 예정 | ✓지원 |
| PIPA (개인정보보호법) 모드 | ✓있음 | 없음 |
| Zero Data Retention | ✓기본 내장 | 엔터프라이즈만 |
※ 2026-04 기준. CodeRabbit의 기능은 공개 자료 기반이며 실제 경험과 차이 있을 수 있음.
리뷰 품질 비교
동일한 코드에 대한 리뷰 — 타 도구 vs PRmate
❌ 타 도구 (한국어 설정 시)
This pull request introduces several improvements to the error handling logic. However, there are a few concerns that should be addressed before merging: 1. The `fetchUser` function does not validate the HTTP response status. This could lead to silent failures when the API returns 4xx or 5xx errors. 2. The magic number `18` in `isAdult` function should be extracted to a constant for better maintainability. Consider addressing these issues.
문제:
- • 영어 그대로
- • 번역체 한국어 혼합
- • 맥락 어색
- • 국내 컨벤션 무지
✅ PRmate
[위험] 에러 처리 없는 비동기 함수 fetchUser는 네트워크 오류나 HTTP 에러 응답(4xx, 5xx)을 전혀 처리하지 않습니다. res.ok 확인 없이 바로 res.json()을 호출하면, 서버가 에러 응답을 반환해도 조용히 잘못된 데이터를 반환하게 됩니다. [제안] 매직 넘버 상수 추출 18이라는 숫자는 "성인 기준 나이"라는 도메인 지식을 코드에서 숨깁니다. 상수로 추출하면 의도가 명확해집니다.
강점:
- • 자연스러운 한국어
- • 심각도 명시 ([위험]/[권장]/[제안])
- • 도메인 용어 한국어
- • 수정 코드 예시 포함
왜 PRmate인가?
12가지 차별점
처음부터 한국어 설계
번역체 없는 자연스러운 한국어. 실제 리뷰어 톤.
출처 투명 공개
모든 컨벤션에 공식 문서 URL. 추정 규칙 없음.
Zero Data Retention
코드 서버 미저장. 메모리 처리 후 즉시 삭제.
비밀 자동 마스킹
API 키 / 토큰 / 비밀번호 자동 [REDACTED].
비용 완전 공개
리뷰마다 USD + KRW 표시. Prompt Caching 50~90% 절감.
세밀한 커스터마이즈
Kill switch, 모델 선택, 파일 타입 규칙, Dry-run, 영어 혼용.
Inline 라인별 코멘트
전체 요약 + 특정 라인 직접 코멘트 (GitHub 네이티브).
Approve / Request Changes
위험 수준 기반 자동 판정 시그널.
PIPA 체크 모드
한국 개인정보보호법 위반 패턴 전용 스캔.
보안 전용 스캐너
SQL Injection, XSS, SSRF 등 보안 취약점만 집중.
대형 PR 자동 청킹
8+ 파일 변경 시 자동 분할 호출. 타임아웃 안전.
팀 스타일 학습
.prmate/style-guide.md로 팀 규칙 주입.
Slack · Discord 알림
리뷰 완료/실패 시 팀 채널로 즉시 알림. Webhook URL만 등록하면 끝.
어떤 컨벤션을 써야 하나요?
상황별 추천 가이드
Java 백엔드
woowa또는naver우아한테크코스 (Google Java Style 기반 + 4개 커스텀) 또는 Hackday
TypeScript/React 프론트
toss또는default토스 Frontend Fundamentals 4대 원칙 (가독성·예측가능성·응집도·결합도)
Python / Go / Rust
default또는custom클린 코드 범용 원칙. 팀 규칙이 있다면 custom + .md 파일
사내 규칙 이미 있음
custom또는default.prmate/our-style.md 파일로 팀 전용 규칙 직접 주입
공식 공개 자료 기반 컨벤션 5종
YAML에서 convention: 값 으로 선택
⚠️ 내부 문서로만 존재하는 기업(카카오·SK·LG·쿠팡·LINE 등) 컨벤션은 "추정 규칙"이 되기 쉬워 제공하지 않습니다. 팀 자체 규칙은 custom 옵션으로 `.md` 파일을 직접 주입하세요.
| 값 | 이름 | 주요 원칙 | 언어 | 공식 출처 |
|---|---|---|---|---|
default | 기본 | 클린 코드 범용 원칙 (Robert C. Martin) | 모든 언어 | — |
woowa | 우아한테크코스 | Google Java Style + 들여쓰기 4, 한 줄 120자 등 4개 차이점 | Java | github.com/woowacourse/woowacourse-docs ↗ |
naver | 네이버 Hackday | Checkstyle XML 포함 공식 문서 · K&R · UTF-8 · LF · import 순서 | Java | naver.github.io/hackday-conventions-java ↗ |
toss | 토스 Frontend Fundamentals | 가독성·예측가능성·응집도·결합도 4대 원칙 | TypeScript/JavaScript | frontend-fundamentals.com ↗ |
custom | 팀 커스텀 | .md 파일로 자체 규칙 주입 | - | — |
실제 PRmate 리뷰 예시
PR #1에서 PRmate가 실제로 생성한 리뷰 (네이버 Hackday 컨벤션)
## 📋 PR 요약
example.ts에 의도적으로 리뷰 포인트를 심은 테스트 PR입니다.
## ✅ 잘된 점
- package.json의 Jest 경로를 .bin/jest → jest/bin/jest.js로 수정한 것은
크로스 플랫폼 호환성 개선의 올바른 접근입니다.
- TIMEOUT_MS에 30_000처럼 숫자 구분자를 사용해 가독성을 높인 부분이 좋습니다.
## 🔍 리뷰 코멘트
### [위험] 에러 처리 없는 비동기 함수
fetchUser는 네트워크 오류나 HTTP 에러 응답을 전혀 처리하지 않습니다.
```diff
async function fetchUser(id: number): Promise<User> {
const res = await fetch(`/api/users/${id}`);
+ if (!res.ok) {
+ throw new Error(`사용자 조회 실패: ${res.status}`);
+ }
return res.json();
}
```
### [제안] 매직 넘버 상수 추출
18을 ADULT_AGE_THRESHOLD로 추출하면 의도가 명확해집니다.
## 📊 전체 평가
승인 가능하나 fetchUser의 에러 처리는 반드시 수정 필요.🤖 PRmate 메타 정보
🤖 PRmate 메타 정보 - 컨벤션: 네이버 Hackday - 리뷰 레벨: standard - 모델: claude-sonnet-4-6 (티어: sonnet) - 사용 토큰: 입력 1,612 / 출력 1,763 - 캐시 생성: 0 토큰 - 💰 비용: $0.0381 / ₩51
↑ GitHub PR Conversation 탭에 정확히 이렇게 보입니다.
4단계로 시작
YAML 파일 하나 복사-붙여넣기, 5분 완료
API 키 등록
console.anthropic.com에서 키 발급 후, 레포 Settings → Secrets에 ANTHROPIC_API_KEY 등록.
워크플로우 파일 추가
.github/workflows/review.yml 파일을 추가합니다.
name: PR 코드 리뷰
on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
permissions:
pull-requests: write
contents: read
jobs:
review:
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: prmate/prmate@v1
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}상세 설정 (.prmate.yml)
레포 루트에 .prmate.yml 파일을 만들어 세부 설정합니다. 없으면 기본값이 사용됩니다.
enabled: true # 전체 On/Off (Kill switch)
language: ko # ko | en
convention: naver # default | woowa | naver | toss | custom
review_level: standard # strict | standard | relaxed
model: sonnet # sonnet (권장) | haiku (빠름, 저렴)
mixed_language: false # 코드는 영어, 설명은 한국어
dry_run: false # 실제 게시 없이 로그만
max_files_per_pr: 20 # PR당 최대 리뷰 파일 수
exclude_paths:
- "*.md"
- "docs/**"
- "*.lock"
- "*.test.ts"
# 파일 타입별 세부 규칙
rules:
- pattern: "src/**/*.ts"
review_level: strict
- pattern: "*.spec.ts"
enabled: false
# 커스텀 프롬프트 주입
custom_prompt: |
우리 팀은 함수형 프로그래밍 원칙을 중시합니다.
가변 상태(mutation) 사용을 강하게 지적해주세요.
# Slack / Discord 알림 (선택)
notifications:
slack:
webhook_url_secret: SLACK_WEBHOOK_URL # GitHub Secret 이름
on_events: [review_completed, review_failed]
mention: "@channel" # 선택사항
discord:
webhook_url_secret: DISCORD_WEBHOOK_URL # GitHub Secret 이름
on_events: [review_completed, review_failed]PR 오픈 → 자동 리뷰 🎉
PR 열면 2~3분 내 한국어 리뷰 코멘트가 자동 게시됩니다.
Slack · Discord 알림
리뷰 완료 또는 실패 시 팀 채널로 즉시 알림을 받을 수 있습니다. CodeRabbit 등이 유료 플랜에서 예약 리포트 방식으로 제공하는 것과 달리, PRmate는 PR 이벤트 즉시 전송합니다.
Webhook URL을 GitHub Secret에 등록
레포 → Settings → Secrets and variables → Actions
SLACK_WEBHOOK_URLSlack Incoming Webhook URLDISCORD_WEBHOOK_URLDiscord Webhook URL.prmate.yml에 알림 설정 추가
위 CONFIG_YAML 예시 하단의 notifications 블록을 참고하세요.
• webhook_url_secret — 등록한 Secret 이름
• on_events — review_completed / review_failed
• mention — "@channel" 등 선택사항
알림에 포함되는 내용
✅ 리뷰 완료 시
- • 저장소명 및 PR 링크
- • 분석한 파일 수
- • Claude API 사용 비용
❌ 리뷰 실패 시
- • 오류 유형 및 내용
- • PR 링크
Slack은 Incoming Webhooks 앱을, Discord는 채널 설정 → 연동 → 웹후크에서 URL을 발급받을 수 있습니다.
PRmate 구독료 = 기능 이용권 (Claude 비용 별도)
PRmate는 BYOK (Bring Your Own Key) 방식입니다. Claude API 비용은 본인의 Anthropic API 키로 직접 결제됩니다 — PRmate 구독료와 완전히 별개입니다.
① PRmate 구독료
플랜별 기능 접근 권한
Free · Starter · Team · Growth
② Claude API 비용 (별도 · 본인 키)
PR 1건당 평균 $0.01~0.05
≈ ₩15~70 · Prompt Caching 50~90% 절감
가격 플랜
베타 기간 중 모든 유료기능 무료
🚧 2026년 말까지 베타 — 모든 유료기능 무료
베타 기간 중 GitHub ★ 누른 계정에 정식 출시 후 50% 할인 혜택 제공 예정
Starter
소규모팀 (5인↓)
월 100개 PR
- ✓Custom 프롬프트
- ✓파일 타입별 규칙
- ✓모델 선택 (sonnet/haiku/opus)
- ✓Dry-run
- ✓혼용 언어
Team
스타트업 (10인↓)
월 300개 PR
- ✓Starter 전체
- ✓Inline 코멘트
- ✓Approve/Changes 자동
- ✓팀 스타일 학습
- ✓Slack/Discord 알림
엔터프라이즈 / 커스텀 컨벤션 제작 · 문의하기
투명성
모든 코드를 검증할 수 있어야 진짜 신뢰
자주 묻는 질문
코드가 서버에 저장되나요?
아니요. Zero Data Retention 정책으로 코드는 메모리에서 처리 후 즉시 삭제됩니다. PR diff만 추출하여 분석하며, 전체 레포지토리에 접근하지 않습니다. API 키나 비밀번호는 자동 [REDACTED] 마스킹 처리됩니다.
CodeRabbit과 무엇이 다른가요?
CodeRabbit은 language: ko 설정이 있지만 실제로는 영어 리뷰가 많이 나온다는 불만이 있습니다. PRmate는 처음부터 한국어 리뷰를 위해 설계되었으며, 우아한테크코스 · 네이버 Hackday · 토스 Frontend Fundamentals 등 공식 공개 자료 기반 컨벤션을 내장합니다.
왜 카카오·SK·LG·쿠팡·LINE 컨벤션은 없나요?
해당 기업들은 공식으로 공개된 코딩 컨벤션 문서가 없습니다. 외부에 공개되지 않은 사내 규칙을 추정해서 제공하는 것은 정직하지 않다고 판단했습니다. 팀 내부 규칙이 있다면 convention: custom + convention_file 옵션으로 팀의 .md 파일을 직접 주입하세요.
리뷰 비용은 얼마인가요?
PR 1건당 평균 $0.01 ~ $0.05 (₩15~70). Prompt Caching으로 50~90% 절감. 모든 리뷰 코멘트에 정확한 비용을 USD + KRW로 투명하게 표시합니다.
어떤 언어를 지원하나요?
JavaScript, TypeScript, Python, Java, Go, Kotlin, Rust, Ruby, Swift, C# 등 주요 언어 전부 지원. 한국어/영어 혼용 코드베이스도 OK (mixed_language 옵션).
리뷰가 너무 시끄러우면 어떻게 하나요?
review_level: relaxed 또는 mode: summary로 변경하면 핵심만 지적합니다. 파일 타입별로 다른 규칙 적용도 가능 (rules 옵션). 특정 PR만 스킵하려면 제목에 [skip review] 포함.
AI가 잘못된 지적을 하면요?
Dry-run 모드로 실제 게시 전 결과 확인 가능. 팀 스타일 가이드 (.prmate/style-guide.md)를 작성하면 팀 컨텍스트를 학습하여 정확도 향상. 프리미엄 학습 모드는 Team 플랜부터.
설치가 복잡한가요?
YAML 파일 하나를 복사+붙여넣기, 5분 이내 완료. GitHub Action 방식이라 별도 서버 불필요.
베타 기간 중 무료인가요?
네, 베타 기간 중 모든 유료기능 무료입니다. 베타 기간 중 GitHub 레포지토리에 Star를 누른 계정에는 정식 출시 후 50% 할인 혜택을 제공할 예정입니다. 피드백은 GitHub Discussions에서 환영합니다.
월 PR 한도를 초과하면 어떻게 되나요?
베타 기간 중에는 한도 관계없이 모든 기능을 자유롭게 이용하실 수 있습니다. 정식 출시 후에는 한도 초과분이 해당 월 동안 대기 상태가 되며, 다음 달 1일 자동 초기화됩니다. 초과가 잦은 경우 상위 플랜 업그레이드 또는 추가 크레딧 구매로 해결 가능합니다.
리뷰 완료를 어떻게 알 수 있나요?
Slack 또는 Discord Webhook URL을 .prmate.yml에 등록하면 리뷰 완료/실패 시 팀 채널로 즉시 알림을 받을 수 있습니다. CodeRabbit 등 경쟁 도구가 유료 플랜에서 예약 리포트 방식으로 제공하는 것과 달리, PRmate는 PR 이벤트 즉시 전송합니다.
GitHub App으로도 쓸 수 있나요?
현재는 GitHub Action 방식만 지원. GitHub App은 2026년 하반기 출시 예정입니다.
지금 바로 시작하세요
2026년 말까지 베타 — 모든 유료기능 무료. 설치 5분. Claude API 키만 있으면 끝.
한국 개발자를 위해, 한국 개발자가 만든 코드 리뷰 도구 🇰🇷