코드리뷰란?
코드리뷰Code Review란 내가 작성한 코드를 다른 개발자들이 검토하는 활동으로 타인의 시각에서 예상치 못한 오류를 식별하거나 코드를 더 좋게 개선할 수 있다.
-
버그를 조기에 발견할 수 있다.
-
코드 정확성 및 품질을 향상할 수 있다.
-
사내 코드 리뷰 문화를 정착시킬 수 있다
-
중복 코드를 방지하고 모듈의 재사용성을 증대시킬 수 있다.
-
새로운 시각으로 문제의 개선 및 해결책을 제시할 수 있다.
코드 리뷰를 대하는 자세
코드 리뷰는 함께 성장하는 것을 목표로 한다.
기본적으로 서로를 인정하고 리스펙하는 문화가 형성되어야 한다. 리뷰어가 새로운 관점을 알려주는 것도 배움이고, 리뷰하며 그 동안 모르던 내용을 알아가고 새로운 라이브러리를 알게되는 것으로도 성장에 의미있는 경험이 될 수 있다.
부정적인 측면
-
자신의 코드가 비판 받는 것에 대한 불안감 코드 리뷰를 받는다는 건 다른 사람으로부터 평가를 받는 것과 같다. 어떤 개발자는 실력이 부족하다는 평가를 받을까 코드 리뷰를 두려워 할 수 있다.
-
타인의 코드를 비판하는 것에 대한 불편함 다른 사람이 작성한 코드가 너무 어려울 수도, 마음에 들지 않을 수도 있다.
-
코드 리뷰에 소요되는 시간&노력 개발자들이 각자 담당한 업무 외적으로 별도의 시간과 노력을 투자해야하므로 일정이 빡빡한 경우 부담스러울 수 있다.
부정적인 생각을 가질 수는 있어도, 치열하게 코드 리뷰로 의견을 주고받았다고 해도, 끝난 후에는 같이 커피를 마시면서 아무렇지않게 잡담하는 팀 문화가 형성되어야한다.
코드 리뷰의 방식
정형화 된 방식
여러 참석자가 정해진 절차에 의해 코드의 세부적인 내용까지 하나 하나 검토하는 방식이다.
자연스럽고 가벼운 방식
복잡한 절차나 준비가 없이 자연스럽고, 가볍게 리뷰와 피드백을 병행하면서 코드의 볼륨이 5~600라인으로 제한 해 작은 코드 변경, 잦은 배포가 가능하도록 한다.
온라인 코드 리뷰
최근에 보편화 된 온라인 코드 리뷰는 GitLab, Crucible, Phabricator, Rhodecode 등이 있으며 적게는 한명, 많게는 5명 이상 다양하게 리뷰가 가능하고 버전 관리와 이슈 트랙킹 시스템이 있어 변경된 코드 영역을 알려주고 어떤 이슈와 연관되어있는지 관리할 수 있도록 해준다.
리뷰어가 봐야하는 것
리뷰어는 8개의 관점에서 코드를 살펴봐야한다.
-
설계 - Design 코드가 잘 설계되었고, 시스템에 적합한가?
-
기능 - Functionality 코드가 작성자의 의도대로 잘 작동하는가? 사용자에게 적합하게 동작하는가?
-
복잡성 - Complexity 더 간단하게 만들 수 있나? 나중에 코드를 다른 사람이 봤을 때 쉽게 이해가 가능한가?
-
테스트 - Test 정확하고 잘 설계된 자동화 된 테스트가 있는가?
-
네이밍 - Naming 변수, 클래스, 메소드에 알기 쉬운 이름을 할당했는가?
-
주석 - Comments 주석이 명확하고 유용한가?
-
스타일 - Style 스타일 가이드(코딩 컨벤션)에 따르고 있는가?
-
문서 - Documentation 개발자가 관련 문서도 업데이트 했는가?
코드를 리뷰할 때 코드 컨벤션을 절대적으로 따라주고, 기술적인 사실을 개인적 견해나 선호도보다 우선시 해야 한다.
댓글남기기