코드 리뷰 가이드라인
1. 코드 리뷰 목적
1.1 품질 보장
- 코드 품질 향상
- 버그 조기 발견
- 보안 취약점 검토
- 성능 이슈 검토
1.2 지식 공유
- 코드베이스 이해도 향상
- 모범 사례 공유
- 팀 멤버 간 학습
- 일관된 코딩 스타일 유지
2. PR(Pull Request) 작성 가이드
2.1 PR 제목
- 명확하고 간결한 제목
- 작업 유형 포함 (
feat,fix,docs,style,refactor,test,chore) - 스코프는 괄호 안에 표시 (선택사항)
- NX 프로젝트의 경우 프로젝트 경로를 스코프에 포함
- 50자 이내로 제한
- 마침표로 끝내지 않음
- 영문으로 작성
예시:
feat(apps/dta-wide-api): add login validation (#123)
fix(libs/core): resolve memory leak in cache service (#456)
docs(apps/dta-wide-web): update API documentation
style(libs/core-utils): format code according to style guide
refactor(apps/dta-wide-api): improve error handling
test(libs/api-interfaces): add unit tests for DTO validation
chore(root): update dependency versions
2.2 PR 설명
- 변경 사항 요약 (영문)
- 주요 설계 결정 설명
- 테스트 방법 안내
- 관련 이슈/문서 링크
- 스크린샷/데모 (UI 변경 시)
예시:
feat(apps/dta-wide-api): add login validation
- Implement email format validation
- Add password strength check
- Set up rate limiting for login attempts
Changes:
- Add email regex validation in UserService
- Implement password policy (min 8 chars, special chars required)
- Configure rate limiting middleware (max 5 attempts per minute)
Test Plan:
1. Run unit tests: `nx test dta-wide-api`
2. Test invalid email formats
3. Test weak passwords
4. Verify rate limiting behavior
Related:
- Implements #123
- Depends on libs/core#45
Screenshots:
- [Password strength indicator](url)
- [Rate limit error message](url)
2.3 PR 크기
- 가능한 작게 유지 (200-400 LOC 이상)
- 하나의 기능/수정에 집중
- 필요시 여러 PR로 분할
3. 리뷰어 가이드
3.1 리뷰 우선순위
- 아키텍처/설계
- 기능 정확성
- 보안
- 성능
- 테스트
- 코드 스타일
3.2 리뷰 체크리스트
- 비즈니스 로직이 명확한가?
- 적절한 테스트가 포함되었는가?
- 보안 위험이 있는가?
- 성능 이슈가 있는가?
- 코드가 이해하기 쉬운가?
- 문서화가 적절한가?
- 에러 처리가 적절한가?
- 코딩 컨벤션을 준수하는가?
3.3 리뷰 코멘트 작성
- 건설적이고 구체적인 피드백
- 코드의 문제점과 개선 방안 제시
- 긍정적인 피드백도 포함
- 개인이 아닌 코드에 집중
예시:
// 좋은 예시
이 부분에서 N+1 쿼리 문제가 발생할 수 있습니다.
다음과 같이 개선하면 좋을 것 같습니다:
\`\`\`typescript
const users = await this.userRepository
.createQueryBuilder('user')
.leftJoinAndSelect('user.posts', 'posts')
.getMany();
\`\`\`
// 나쁜 예시
이렇게 하면 안 됩니다.
4. 작성자 가이드
4.1 리뷰 준비
- 자체 리뷰 먼저 수행
- 테스트 실행 및 확인
- 문서 업데이트 확인
- 불필요한 변경사항 제거
4.2 리뷰 대응
- 모든 코멘트에 응답
- 변경사항 설명 제공
- 건설적인 토론 진행
- 적절한 수정 반영
5. 리뷰 프로세스
5.1 리뷰 단계
- PR 작성 및 제출
- 자동화된 검사 실행
- 리뷰어 할당
- 코드 리뷰 진행
- 피드백 반영
- 승인 및 병합
5.2 자동화된 검사
- 린트 검사
- 테스트 실행
- 타입 체크
- 커버리지 확인
- 보안 취약점 검사
5.3 리뷰 완료 조건
- 최소 1명 이상의 승인
- 모든 자동화 검사 통과
- 모든 코멘트 해결
- 테스트 커버리지 충족
변경 이력
| 버전 | 날짜 | 작성자 | 변경 내용 |
|---|---|---|---|
| 0.1.0 | 2025-03-25 | bok@weltcorp.com | 최초 작성 |