시니어 레벨 코드 리뷰를 1분 안에
5개 언어 × 4개 시나리오로 분류된 80개의 시니어 코드 리뷰 프롬프트. ChatGPT · Claude · Gemini 어디서나 복붙해서 즉시 사용 가능. 모든 리뷰는 심각도 + 위치 + diff + OWASP 참고 자료를 포함합니다.
80개 프롬프트 구성
| 언어 | 🔒 보안 | ⚡ 성능 | 🔧 리팩토링 | 🧪 테스트 | 합계 |
|---|
| PHP | 4 | 4 | 4 | 4 | 16 |
| Python | 4 | 4 | 4 | 4 | 16 |
| JavaScript / TypeScript | 4 | 4 | 4 | 4 | 16 |
| Go | 4 | 4 | 4 | 4 | 16 |
| Rust | 4 | 4 | 4 | 4 | 16 |
| 합계 | 20 | 20 | 20 | 20 | 80 |
샘플 프롬프트 (PHP — SQL Injection 검출)
@{{파일경로}}
위 PHP 코드를 시니어 백엔드 엔지니어 관점에서 SQL injection 취약점 검토. 확인:
1. Prepared Statement (PDO::prepare) 사용 여부
2. 직접 문자열 결합 ($sql = "WHERE id = $id") 패턴
3. mysqli_real_escape_string 만 사용한 케이스
4. ORDER BY, LIMIT 에 변수 직접 삽입
5. IN (?, ?, ?) 동적 배열 처리
각 발견 사항:
- 심각도 (🚨 critical / ⚠️ warning / 💡 info)
- 위치 (파일:라인)
- 수정 diff (PDO bindParam 또는 named parameter)
- OWASP 참고 링크출력 형식 (예시)
🚨 critical · 보안 · src/auth/login.ts:42
비밀번호를 평문으로 비교 — timing attack 가능성.
- if (password === user.password) {
+ if (await bcrypt.compare(password, user.password)) {
추가 권장:
- bcrypt cost 12 이상 해싱
- 평문 비교는 절대 금지
참고: OWASP Authentication Cheat Sheet차별점
| 일반 "코드 리뷰해줘" | 시니어 리뷰 프롬프트 80선 |
|---|
| 시나리오 분류 | 없음 | 보안/성능/리팩토링/테스트 4축 |
| 언어 특화 | 일반론 | 5개 언어별 함정 사항 |
| 출력 형식 | 자유 | 심각도 + 위치 + diff + 참고 |
| 참고 자료 | 부정확 | OWASP, MDN, 공식 docs 인용 |
| 시니어 톤 | 친근한 어조 | "왜 위험한가" 명확 |
포함된 자료
- 5개 언어 .md 파일 (80개 프롬프트)
- 시니어 리뷰 코멘트 형식 가이드
- Notion 데이터베이스 임포트용 CSV (80행)
- 한국어 리뷰 톤 가이드 (권장 / 지양 패턴)
💡 라이선스
1인 사용자 · 무제한 프로젝트 · 회사 내부 / 클라이언트 작업 OK · 재배포 / 재판매 금지