목록으로
Development

효과적인 코드 리뷰 방법

코드 리뷰를 통해 팀의 코드 품질을 높이고 성장하는 방법을 알아봅니다.

코드 리뷰는 버그를 찾는 것 이상의 가치가 있습니다. 지식 공유, 코드 품질 향상, 팀 문화 형성에 중요한 역할을 합니다.

리뷰어로서

좋은 리뷰의 원칙

코드의 의도를 먼저 이해하려고 노력합니다. PR 설명과 관련 이슈를 읽고 맥락을 파악합니다.

나쁜 리뷰:
"이 코드는 이상합니다."
"이건 안티패턴입니다."

좋은 리뷰:
"이 부분에서 N+1 쿼리가 발생할 수 있을 것 같습니다.
 posts를 가져올 때 user 정보도 함께 로드하면 어떨까요?
 예: include: { user: true }"

질문 형태로 피드백

명령보다 질문이 더 건설적입니다.

명령형:
"이 함수를 분리하세요."

질문형:
"이 함수가 두 가지 역할을 하는 것 같은데,
 validateUser와 saveUser로 분리하면 테스트하기 더 쉬울 것 같아요.
 어떻게 생각하시나요?"

중요도 표시

모든 코멘트가 같은 중요도는 아닙니다.

[필수] 보안 취약점이 있습니다.
[권장] 이 부분은 성능 개선의 여지가 있습니다.
[제안] 변수명을 좀 더 명확하게 하면 좋을 것 같습니다.
[궁금] 이 로직을 선택한 이유가 있나요?
[칭찬] 이 패턴 좋네요!

긍정적인 피드백도

좋은 코드에는 칭찬합니다. 팀원의 성장을 인정해주세요.

"이 에러 처리 방식 좋네요. 사용자 경험을 잘 고려했습니다."
"테스트 케이스가 꼼꼼하네요!"
"이 추상화 덕분에 확장하기 쉬워졌습니다."

작성자로서

PR을 작게 유지

300줄 이하의 PR이 리뷰하기 좋습니다. 큰 변경은 여러 PR로 나눕니다.

1. 리팩토링 PR (기능 변경 없음)
2. 새 기능 추가 PR
3. 테스트 추가 PR

PR 설명 잘 쓰기

## 변경 사항
- 사용자 인증 로직을 JWT에서 세션 기반으로 변경
- 리프레시 토큰 로직 제거

## 변경 이유
- 모바일 앱에서 토큰 관리가 복잡했음
- 보안 요구사항 변경 (OWASP 권고)

## 테스트
- 로그인/로그아웃 플로우 테스트 완료
- 세션 만료 시나리오 테스트 완료

## 스크린샷
(UI 변경 시 첨부)

## 관련 이슈
Closes #123

셀프 리뷰 먼저

PR을 올리기 전에 자신의 코드를 먼저 리뷰합니다.

[ ] 불필요한 console.log 제거
[ ] 주석 처리된 코드 제거
[ ] 테스트 통과 확인
[ ] 린트 에러 없음
[ ] 변수/함수명이 명확한지 확인

리뷰 의견에 열린 자세

방어적 반응:
"그건 시간이 없어서 그랬어요."
"원래 이렇게 하는 거예요."

건설적 반응:
"좋은 지적이네요. 말씀하신 방식으로 수정하겠습니다."
"이렇게 한 이유는 X 때문인데, 더 좋은 방법이 있을까요?"

무엇을 확인할까

필수 확인 사항

보안
- SQL 인젝션 가능성
- XSS 취약점
- 민감한 정보 노출
- 인증/인가 로직

로직
- 엣지 케이스 처리
- 에러 처리
- null/undefined 처리

성능
- 불필요한 렌더링
- N+1 쿼리
- 메모리 누수 가능성

선택 확인 사항

코드 스타일
- 일관된 네이밍
- 함수 크기
- 중복 코드

가독성
- 복잡한 로직에 주석
- 명확한 변수명
- 적절한 추상화

리뷰 문화 만들기

규칙 정하기

- PR은 24시간 이내 첫 리뷰
- 최소 1명 승인 필수
- CI 통과 후 머지
- 작성자가 머지

자동화 활용

린터, 포매터, 테스트는 자동화합니다. 사람은 기계가 할 수 없는 리뷰에 집중합니다.

마무리

코드 리뷰는 팀 문화입니다. 비난이 아닌 개선을 목표로, 상호 존중하는 태도가 중요합니다.

처음에는 시간이 걸리지만, 좋은 리뷰 문화는 장기적으로 팀의 생산성과 코드 품질을 크게 높여줍니다.