코드 리뷰, 하면 좋다는 건 대부분 동의할 것 같다. 그런데, 어떤 시스템을 써야 할지, 코드 리뷰에서 오버헤드가 많아지지는 않을지 걱정도 있다. 더욱이, 게시판이나 이메일, 혹은 비효율적인 시스템을 이용해서 리뷰를 해 본 적이 있다면, 리뷰 과정의 오버헤드때문에 괴로워 하기도 했을 것 같다.
만일, Git을 버전 관리 시스템으로 쓰고 있다면?
Gerrit이라는 코드 리뷰 시스템이 있다. 구글의 안드로이드 코드 리뷰도 이 Gerrit으로 진행하고 있고, 현재 일하는 회사에서도 리뷰 시스템으로 Gerrit을 쓰고 있다.
http://code.google.com/p/gerrit/
리뷰어(reviewer), 서미터(submitter)를 등록하고 리뷰를 통해 +, - 점수를 매기고 코멘트를 주고 받으면서 리뷰를 진행한다. 리뷰 과정에서 코드 수정을 자유롭게 할 수 있다. 리뷰가 완료되고 서미터에 의해 approve가 되면 해당 브랜치로 merge를 하게 된다.
이런 과정에 대해 http://source.android.com/source/life-of-a-patch.html 에서 좀 더 자세히 설명하고 있다.
Gerrit은 리뷰로 인한 오버헤드가 매우 적고, Git과도 매우 잘 통합되어 있어 Git을 쓰는 경우에는 최적의 리뷰 시스템이 아닐까 생각한다.