Code Review Skill
AI 에이전트의 코드 리뷰 가이드
트리거
code
/review
리뷰 목표
코드 리뷰의 목적은 다음과 같습니다:
- •버그 방지: 잠재적 버그와 엣지 케이스 발견
- •코드 품질: 가독성, 유지보수성 향상
- •보안 강화: 보안 취약점 식별
- •지식 공유: 팀 전체의 코드 이해도 향상
리뷰 체크리스트
1. 기능 요구사항 (Functional)
- • 요구사항을 정확히 구현했는가?
- • 엣지 케이스를 처리했는가?
- • 에러 상황을 적절히 처리했는가?
2. 코드 품질 (Quality)
- • 코드가 읽기 쉽고 이해하기 쉬운가?
- • 함수/클래스가 단일 책임을 가지는가?
- • 중복 코드가 없는가?
- • 네이밍이 명확한가?
3. 보안 (Security)
- • 입력 검증이 적절한가?
- • SQL 인젝션 취약점이 없는가?
- • XSS 취약점이 없는가?
- • 민감 정보가 하드코딩되어 있지 않은가?
- • 인증/인가가 적절한가?
4. 성능 (Performance)
- • N+1 쿼리 문제가 없는가?
- • 불필요한 연산이 없는가?
- • 메모리 누수 가능성이 없는가?
- • 적절한 캐싱을 사용했는가?
5. 테스트 (Testing)
- • 적절한 테스트가 작성되었는가?
- • 엣지 케이스가 테스트되었는가?
- • 테스트가 독립적인가?
6. 문서화 (Documentation)
- • 공개 API에 문서가 있는가?
- • 복잡한 로직에 주석이 있는가?
- • README가 업데이트되었는가?
리뷰 프로세스
Step 1: 전체 맥락 파악
markdown
1. PR 설명 읽기 2. 관련 이슈/요구사항 확인 3. 변경된 파일 목록 파악 4. 영향 범위 이해
Step 2: 코드 분석
markdown
1. 아키텍처 준수 여부 확인 2. 코딩 컨벤션 확인 3. 각 파일 세부 리뷰 4. 테스트 코드 리뷰
Step 3: 피드백 작성
markdown
1. 필수 수정 사항 (Blocker) 2. 권장 수정 사항 (Suggestion) 3. 질문 (Question) 4. 칭찬 (Praise)
리뷰 코멘트 작성법
필수 수정 (Blocker)
markdown
🚨 **[필수]** 보안 취약점
SQL 인젝션 취약점이 있습니다. 파라미터화된 쿼리를 사용해주세요.
**현재 코드:**
```sql
query = f"SELECT * FROM users WHERE id = {user_id}"
수정 제안:
sql
query = "SELECT * FROM users WHERE id = ?" cursor.execute(query, (user_id,))
code
### 권장 수정 (Suggestion)
```markdown
💡 **[제안]** 가독성 개선
이 조건문을 early return 패턴으로 변경하면 더 읽기 쉬워집니다.
**현재 코드:**
```javascript
if (user) {
if (user.isActive) {
// 긴 코드...
}
}
수정 제안:
javascript
if (!user) return; if (!user.isActive) return; // 긴 코드...
code
### 질문 (Question) ```markdown ❓ **[질문]** 설계 의도 이 로직에서 `null`을 반환하는 대신 예외를 던지는 것이 더 적절할 것 같은데, 특별한 이유가 있나요?
칭찬 (Praise)
markdown
✨ **[좋습니다]** 에러 처리가 잘 구현되어 있네요! 특히 사용자 친화적인 에러 메시지가 좋습니다.
보안 리뷰 포인트
인증/인가
code
- JWT 토큰 검증이 적절한가? - 권한 확인이 누락되지 않았는가? - 세션 관리가 안전한가?
입력 검증
code
- 모든 사용자 입력이 검증되는가? - 파일 업로드 검증이 있는가? - URL 파라미터가 검증되는가?
데이터 보호
code
- 민감 데이터가 로그에 노출되지 않는가? - 비밀번호가 안전하게 해싱되는가? - 개인정보가 적절히 암호화되는가?
AI 리뷰 출력 형식
markdown
## 코드 리뷰 결과 ### 요약 - 변경 파일: X개 - 발견된 이슈: Y개 (필수: A, 권장: B) - 전체 평가: [Approved / Request Changes / Comment] ### 필수 수정 사항 1. [파일명:라인] 설명 2. [파일명:라인] 설명 ### 권장 사항 1. [파일명:라인] 설명 ### 좋은 점 - 설명 ### 결론 [최종 의견]
참고: .agent/conventions.md의 코딩 규칙을 기준으로 리뷰합니다.