CodeStream을 이용한 코드 리뷰(Code Review)

최경식

최경식

2021년 6월 24일 (목)

소프트웨어 개발 조직에서 코드 리뷰는 해야 한다고 하지만 현업에서 맞닥뜨리면 조직에 여유가 있지 않다면 쉽지 않습니다. 리뷰어가 주 업무가 아닌 이상 항상 하긴 해야지 하면서도 당장 밀려오는 일을 미뤄두고 시간을 내기가 쉽지 않죠.

 

알체라의 클라이언트 팀에서 코드 리뷰는 어떻게 진행하고 있을까요?

 

Code review (sometimes referred to as peer review) is a software quality assurance activity in which one or several people check a program mainly by viewing and reading parts of its source code, and they do so after implementation or as an interruption of implementation. At least one of the persons must not be the code’s author. The persons performing the checking, excluding the author, are called “reviewers”. —

https://en.wikipedia.org/wiki/Code_review


효율적으로 코드 리뷰를 진행하기 위해서 클라이언트 팀에서는 CodeStream 도구를 이용합니다(광고 아님). 그리고 코드 리뷰의 효율성을 위해서 코드 리뷰의 목적 중 몇 가지에 포커스를 맞추고 있습니다.


·         Finding defects
·         Learning/Knowledge transfer
·         Increase sense of mutual responsibility
·         Finding better solutions


포커스를 맞춘 내용은 Line by Line의 엄격한 코드 리뷰 보다는 가볍게 짧은 시간을 할애하여 할 수 있는 코드 리뷰를 지양합니다.
그렇기 때문에 중복코드 방지 및 재사용성의 증대와 조금 더 좋은 방법을 제시해주고 이해 수준을 상향 평준화하기 위해 진행을 하고 있습니다.
궁극적으로 전체적인 팀의 역량을 강화하고 코드를 개인이 아닌 팀 단위의 코드를 함께 개발하여 소속감을 느끼도록 하는 것입니다.

 

CoodeStream의 선택 이유

 

·         소규모 팀을 위한 무료 정책
·         다양한 통합 개발 환경(Integrated Development Environment, IDE)을 지원하는 플러그인

 

 

·         Slack 및 다양한 Issue Tracker 지원

 

 

코드 리뷰 프로세스

클라이언트 팀에서 코드 리뷰를 하는 이유는 코드의 로직이나 스타일과 같은 결함을 찾는 것보다는 어렵거나 시간이 들여 찾은 Knowhow를 통한 지식 공유, 기술적 이슈와 문제해결을 공유하여 팀원이 동일한 기술적 부채를 가지고 있거나 해결하기 힘들 때 이를 같이 해결하기 위한 목적으로 사용됩니다.

알체라의 클라이언트 팀은 코드 리뷰 시 흔히 발생되는 리뷰 병목을 해결하기 위해서 Github flow에 따라 무분별한 PR(Pull Request)을 통한 코드 리뷰는 지양하고 특정 commit이나 공유하고 싶은 코드 블럭만을 공유하여 리뷰를 진행합니다(형이상학적이거나 무의미한 것들은 되도록 안하려고 함). 다른 곳에서는 리뷰 병목을 해결하기 위해 PR의 규칙을 새우거나 짧은 시간동안 하거나 하지만 개발자 자신이 공유하고 싶거나 해결하거나 해야할 문제를 능동적으로 공유하는 것이 실질적으로 리뷰하기 좋을 수 있습니다.

이를 매끄럽게 진행하기 위해서 코드 리뷰 도구가 많은 도움을 주고 있습니다.

1.     공유 또는 문제 해결한 코드 또는 commit CodeStream Feedback Reqeust 또는 Codemarks를 통하여 생성한다.

2. 생성하면서 해당 티켓을 Slack에 공유한다.
(알체라는 Slack을 공식 메신저로 이용하고 있으며 클라이언트 팀은 코드 리뷰를 위한 별도의 채널을 생성하였습니다.)


3. 매주 또는 1시간안에 리뷰할 수 있을 만한 코드 리뷰 요청이 Slack에 쌓였을 때 1시간 회의실을 잡고 코드 리뷰를 진행한다.

코드 리뷰가 중요하다고 해서 이에 매몰되면 안됩니다. 결국엔 코드 리뷰를 한다고 해서 본인의 능력이 갑자기 생기거나 모든 이슈가 해결되는 것은 아니기 때문입니다. 결국엔 팀내 개개인의 능력에 따라 프로젝트의 향방이 결정되지만 이를 팀내 평준화 시키고 코드의 품질을 높이는 방법이기 때문에 코드 리뷰가 중요하다고 할 수 있습니다.

 

 

 

 

...

...