T3 · 프롬프트
코드 리뷰 프롬프트 (Claude 특화)
Claude에게 코드 리뷰를 맡길 때 쓰는 프롬프트. 버그·보안·성능·가독성 4축을 고정하고 "칭찬은 빼고 개선점만" 지정해 피드백 밀도를 높입니다. Claude 4.5 Sonnet/Opus에 최적화.
추천 모델: claude
코드를 AI에게 리뷰해 달라고 하면 보통 세 가지로 빠집니다. “훌륭한 코드네요!” 같은 칭찬, “조금 더 개선할 수 있을 것 같습니다” 같은 뭉툭한 피드백, 그리고 본문과 무관한 일반론. Claude는 긴 코드의 맥락을 잘 유지하기 때문에 명시된 축으로만 리뷰를 요청하면 밀도 높은 피드백이 나옵니다. 이 프롬프트는 버그·보안·성능·가독성 4축으로 고정합니다.
프롬프트 본문
아래 [코드]를 리뷰해줘.
[코드 컨텍스트]
- 언어/프레임워크: {{예: TypeScript + Astro}}
- 이 코드가 하는 일: {{예: 블로그 글 목록을 가져와 필터링}}
- 걱정하는 부분: {{예: 성능, 빈 배열 처리}}
[코드]
{{코드를 여기에 붙여넣기}}
[리뷰 축]
1. 버그: 논리 오류, 엣지 케이스, 예외 처리
2. 보안: 입력 검증, 외부 데이터 신뢰, 비밀 정보 노출
3. 성능: 불필요한 반복, 메모리, 비동기 처리
4. 가독성: 이름, 구조, 주석 필요 지점
[출력 형식]
- 각 축마다 "문제 1문장 → 왜 문제인지 → 수정 제안(코드 블록)"
- 문제가 없는 축은 "이슈 없음" 한 줄로
- 칭찬, 일반론, 코드와 무관한 조언은 빼
[조건]
- 한국어로
- 수정 제안은 실제로 동작하는 코드여야 해
- "할 수 있습니다" 말고 "이렇게 바꿔 보세요"로
핵심은 **“칭찬, 일반론, 코드와 무관한 조언은 빼”**라는 조건입니다. 이 줄이 없으면 Claude도 “전반적으로 잘 작성된 코드입니다”로 시작합니다.
예시 입력
아래 [코드]를 리뷰해줘.
[코드 컨텍스트]
- 언어/프레임워크: TypeScript
- 이 코드가 하는 일: 숫자 배열에서 짝수만 제곱해서 합산
- 걱정하는 부분: 큰 배열일 때 성능
[코드]
function sumEvenSquares(nums: number[]): number { let sum = 0; for (let i = 0; i < nums.length; i++) { if (nums[i] % 2 === 0) { sum = sum + nums[i] * nums[i]; } } return sum; }
[리뷰 축]
1. 버그: 논리 오류, 엣지 케이스, 예외 처리
2. 보안: 입력 검증, 외부 데이터 신뢰, 비밀 정보 노출
3. 성능: 불필요한 반복, 메모리, 비동기 처리
4. 가독성: 이름, 구조, 주석 필요 지점
[출력 형식]
- 각 축마다 "문제 1문장 → 왜 문제인지 → 수정 제안(코드 블록)"
- 문제가 없는 축은 "이슈 없음" 한 줄로
- 칭찬, 일반론, 코드와 무관한 조언은 빼
[조건]
- 한국어로
- 수정 제안은 실제로 동작하는 코드여야 해
- "할 수 있습니다" 말고 "이렇게 바꿔 보세요"로
예시 출력
1. 버그
음수 % 2 결과가 -1이 될 수 있어 짝수 판정이 빠집니다.
JavaScript의 %는 음수에서 부호를 따라가므로 nums[i]가 음수인 경우 통과하지 못합니다.
수정 제안:
if (nums[i] % 2 === 0) → if (Math.abs(nums[i]) % 2 === 0)
또는 nums[i]가 음수인지 먼저 검사.
2. 보안
이슈 없음
3. 성능
매우 큰 배열(10만 개 이상)에서도 O(n)이라 성능 자체는 괜찮습니다.
다만 sum이 Number.MAX_SAFE_INTEGER를 넘을 수 있으니 BigInt 전환 고려.
수정 제안:
let sum = 0; → let sum = 0n;
sum + nums[i] * nums[i] → sum + BigInt(nums[i]) * BigInt(nums[i])
4. 가독성
for 루프보다 filter + reduce가 의미가 더 명확합니다.
수정 제안:
return nums
.filter((n) => Math.abs(n) % 2 === 0)
.reduce((acc, n) => acc + n * n, 0);
자주 하는 실수 2가지
- “리뷰해 줘”만 쓰기: Claude가 “전반적으로 좋은 코드입니다”를 두 문단으로 채웁니다. 리뷰 축을 명시해야 밀도가 올라갑니다.
- 컨텍스트를 안 주기: 이 코드가 왜 쓰이는지 모르면 일반론만 나옵니다. “이 코드가 하는 일” 한 줄만 넣어도 피드백 품질이 확 달라집니다.
더 보기
- 블로그 참고: 한국어 잘하는 AI 순위 (2026) — 코딩 보조 모델 비교 표