시간
제대로 코드 리뷰하기에 어느정도의 분량과 시간이 적절할까? 개인차가 있다고 생각하지만 뇌의 효율과 집중력을 고려한 통계로는 60분 이내 한 번에 400~500줄 미만을 권장 합니다. 짧게 자주 하는 것이 효과적일 것이다.
방법
- 깃(Git) 이슈 만들기
- 피쳐(feature) 브런치 생성
- 개발 완료
- Pull Request (Add Reviewer)
- 코드 리뷰
- 모든 리뷰어 들이 승인할 때 병합 (Approved by all reviewers)
점검 사항
점검 사항은 무수히 많을 수 있지만 몇가지 만이라도 나열해 보자.
- 요구사항이 제대로 반영 되었는가?
- 설계 규격대로 구현 되었는가?
- 과도한 코딩을 하고 있지 않는가?
- 기능을 더 단순하게 할 수 있는가?
- 알고리즘, 자료구조, 라이브러리 등 적절하게 사용 되었는가?
- 적절한 패턴, 추상화,모듈화를 구현하고 있는가?
- 함수의 입출력 값은 명확한가?
- 하나의 함수는 하나의 기능만 수행하고 있는가?
- 코딩 스타일 가이드를 준수하고 있는가?
- 가독성 면에 있어서 코드는 잘 구조화되어있는가?
- 변수와 함수의 이름이 일관되게 기술되어 있는가?
- 네이밍 규칙을 준수하고 있는가?
- 직접 서술하지 않고, 상수를 사용하고 있는가?
- 수행되지 않는 코드는 없는가?
- 이해하기 힘든 코드가 존재하는가?
… 등 더 많은 요소들에 대해서도 점검 할수 있겠지만 코드리뷰에 있어서 위와 같은 사항들을 매번 직접 하는 것은 비효율적이며 어려움이 있을수 있다. 좀더 나은 코드리뷰를 위해서 내부적으로 테스트 도구 활용과 합의된 규칙들을 통해서 자동화 가능한 부분을 만들고 적용 할수 있다면 코드리뷰에 도움이 되겠다.
주의할 점
코드 리뷰에 있어서 지양해야 것은 어떤것들이 있을까?
- 불명확 하고 미묘한 의견
- 아주 먼 미래를 위한 의견
- 0.01 단위의 매우 깊은 성능에 대한 제안
- 너무 방어적인 코드에 생각
- 개인 취향이 묻어나는 제안
무엇보다 상대를 배려하지 않은 코드 리뷰를 가장 조심해야 한다고 생각한다.
장점
코드 리뷰를 통해서 얻을수 있는 것은 무엇이 있을까?
- 더 나은 코드에 대한 방향성
- 미리 발견 하게 되는 문제점
- 코드에 대한 다양한 아이디어
- 코드 리뷰를 통한 실력 향상
…
좋은 코드 리뷰 문화 형성은 프로젝트 품질과 성능에 도움이 되고 팀에 대한 자부심 향상에도 도움이 된다고 생각된다.
코드 리뷰와 같이 어떤 문화를 정착 시킨 다는 것은 여러모로 생각할 거리가 많다. 새로운 것을 도입 할때의 문제점, 상황을 개선하기 위해 시도 하였지만 불만과 실패로 돌아 올수도 있다. 코드 리뷰를 통해서 얻을수 있는 것이 안하는 것보다 더 많다면 적절한 시기에 공감 할수 있는 합의를 거쳐 수준에 맞는 단위로 유연하게 시도해 보는 것이 좋겠다.