728x90
반응형
바쁘면 코드 리뷰가 "LGTM"으로 끝납니다. 아래 프롬프트는 보안·성능·가독성·테스트를 빠짐없이 보는 PR 리뷰 체크리스트를 AI에게 맡기는 복붙 템플릿입니다.
언제 쓰면 좋은가
- PR diff가 길어서 1차 자동 리뷰가 필요할 때
- 주니어·크로스팀 PR에 공통 기준을 적용하고 싶을 때
- 보안/개인정보 관련 변경을 실수 없이 걸러야 할 때
- 리뷰어 시간을 아껴 "사람 리뷰는 설계·비즈니스 로직"에 집중하고 싶을 때
변수
{{REPO_CONTEXT}}— 언어/프레임워크/아키텍처 한 줄{{PR_TITLE}}·{{PR_DESCRIPTION}}{{DIFF_OR_FILES}}— diff 또는 변경 파일 내용{{RISK_LEVEL}}— low|medium|high (인증, 결제, 마이그레이션이면 high){{STYLE_GUIDE}}— 팀 컨벤션 요약(없으면 "일반 모범사례")
복붙용 프롬프트
당신은 시니어 스태프 엔지니어이자 AppSec 리뷰어입니다.
아래 PR을 **보안·성능·가독성·테스트·운영** 관점에서 리뷰하세요.
# 프로젝트
{{REPO_CONTEXT}}
스타일: {{STYLE_GUIDE}}
위험도 힌트: {{RISK_LEVEL}}
# PR
제목: {{PR_TITLE}}
설명: {{PR_DESCRIPTION}}
# 변경 내용
{{DIFF_OR_FILES}}
# 리뷰 규칙
1. 칭찬만 하지 말고, **차단급(Blocker) / 중요(Major) / 제안(Nit)** 으로 등급
2. 각 이슈에 파일경로:라인(가능하면), 문제, 왜 문제인지, 수정 예시 코드 포함
3. 보안 체크리스트를 반드시 통과/실패로 표기:
- 인증·인가 우회, IDOR
- 입력 검증·SQL/Command/XSS 인젝션
- 시크릿·토큰·PII 로그 유출
- SSRF, 경로순회, 안전하지 않은 역직렬화
- 의존성/라이선스 위험(보이는 범위)
4. 성능: N+1, 불필요 동기 I/O, 핫패스 할당, 캐시 무효화, 페이징 부재
5. 가독성: 이름, 복잡도, 중복, 에러 메시지, 주석 필요성
6. 테스트: 누락된 경계 조건, 회귀 테스트 제안
7. 확신이 낮으면 Confidence를 명시하고 추측성 단정 금지
8. 마지막에 **Merge 권고**: Approve / Request changes / Comment only
9. 한국어로 작성. 코드 식별자는 원문 유지.
# 출력 형식
## Summary (3줄)
## Blockers
## Major
## Nits
## Security Checklist (Pass/Fail 표)
## Performance Notes
## Test Plan 제안
## Merge Recommendation
예시 입력 (요약)
REPO: Node.js Express + Postgres, 결제 웹훅 서비스
PR: 웹훅 서명 검증 추가 및 재시도 큐 도입
DIFF 요지:
- crypto.timingSafeEqual로 서명 비교
- raw body 미사용, JSON.stringify 재직렬화 후 해시
- 실패 시 console.log(req.body) (카드 일부 포함 가능)
- 재시도 while(true) 동기 루프, 백오프 없음
예시 출력 (발췌)
## Summary
서명 검증 방향은 올바르지만 raw body 미사용으로 검증이 깨질 수 있고, PII 로깅·동기 재시도가 Blocker입니다.
## Blockers
1) 웹훅 서명: JSON 재직렬화 해시 → 공급자 원문과 불일치 가능. raw body 버퍼로 검증하세요.
2) console.log(req.body): 결제 PII 유출. 구조화 로그+마스킹으로 교체.
3) while(true) 재시도: 이벤트 루프 블로킹. 큐(SQS/Bull) + 지수 백오프 필요.
## Security Checklist
- 시크릿/PII 로그: Fail
- 입력검증: Pass(부분)
...
## Merge Recommendation
Request changes
팁
- 큰 PR은 파일별로 나눠 여러 번 돌리세요.
- RISK_LEVEL=high면 "가정 위협 모델 3줄"을 추가 요청하세요.
- 팀 공통 프롬프트를 PR 템플릿 링크에 붙여 두면 리뷰 품질이 균일해집니다.
- AI 리뷰는 보조입니다. 권한·스키마 변경은 사람이 최종 확인하세요.
FAQ
Q. diff가 토큰 한도를 넘으면?
A. 리스크 높은 파일(auth, db, payment)만 먼저 넣고, 나머지는 요약+파일목록으로 2차 리뷰하세요.
Q. 여러 언어 모노레포는?
A. REPO_CONTEXT에 패키지 경로와 언어를 명시하고 "패키지 밖 가정 금지"를 추가하세요.
핵심 정리
- 보안 체크리스트를 Pass/Fail로 강제하면 리뷰 누락이 줄어듭니다
- Blocker/Major/Nit 등급이 리뷰 대화를 빠르게 만듭니다
- 수정 예시 코드까지 받으면 반영 속도가 올라갑니다
728x90
반응형
'프롬프트' 카테고리의 다른 글
| 긴 리포트를 경영진 1페이지 브리핑으로 만드는 프롬프트 (결정 요청형) (0) | 2026.09.23 |
|---|---|
| 회의록을 액션아이템·담당자·마감일로 변환하는 ChatGPT 프롬프트 (복붙용 템플릿) (0) | 2026.09.23 |
| 포근한 수채화 감성! 나만의 '꽃을 든 소녀' 스티커 만들기 (0) | 2026.01.24 |
| 다꾸러 심쿵! 귀엽고 사랑스러운 수채화풍 '꽃 스티커' 만들기 (0) | 2026.01.24 |
| 손바닥 위의 리얼 월드, 초현실 3D 아이소메트릭 (0) | 2026.01.20 |