"시간이 걸린다며 코드 리뷰(Code review)를 뒤로 미루는 경우가 많다. 그러다 출시 전 갑자기 버그가 발견되면 결국 급하게 코드를 다 뜯어고쳐야 하는 상황이 발생한다. 코드 리뷰를 하게 되면 내일 당장 출시해도 문제가 없는 코드를 항상 가질 수 있다는 장점이 생긴다."

이승민 스켈터랩스 UX개발자는 15일 서울 상암 누리꿈스퀘어에서 국내 유일 소프트웨어 전문지 마이크로소프트웨어가 주최하고 IT조선이 주관한 마소콘 2018에 참가, 코드 리뷰의 중요성을 강조했다. 스켈터랩스는 국내 인공지능 전문 스타트업으로, 일상생활에 가치를 높일 수 있는 머신 인텔리전스 기술을 개발하고 있다.

코드 리뷰는 개발자가 작성한 코드를 다른 개발자가 정해진 방법을 통해 검토하는 일을 말한다. 서로가 검토를 통해 코드가 안고 있는 잠재적인 결함을 찾고 개선해가는 과정이다.

일반적으로 개발 과정을 통해 프로토타입(Prototype)을 만든 뒤 제품을 만들게 되는데, 보통 개발 중간 과정에 서비스 안정화 기간을 마련한다. 많은 개발자가 보통 이 기간에 집중적으로 코드 버그를 찾으면 된다고 문제를 점검하는 일을 뒤로 미루는 ‘기술 부채’가 생긴다는 것.

IT 업계 상황을 고려하면 코드 리뷰는 특히 중요하다. 고객과 시장 수요에 빠르게 반응하기 위해 업데이트 주기를 단축하는 추세기 때문이다. 따라서 개발이 끝난 이후 거치는 안정화 기간 전부터 코드 리뷰를 거치는게 필요하다.

이승민 스켈터랩스 UX 개발자. / IT조선
이승민 스켈터랩스 UX 개발자. / IT조선
이 개발자는 효율적인 코드 리뷰를 위해 "브랜치 분류를 잘 활용하라"고 조언했다. 브랜치로 분류하면 각각의 코드가 무슨 역할을 하는지를 나눠놓는 효과가 있으므로, 그만큼 전체 코드에 미치는 영향을 알고 코드를 들여다볼 수 있어 코드 리뷰에 들이는 시간을 줄일 수 있다.

또 다른 방법으로는 코드 리뷰에 사용할 스타일 프레임을 미리 만들어두는 것이다. 한 번 스타일을 만들어 놓으면 다른 코드 리뷰에 똑같은 형식으로 계속 사용할 수 있기 때문이다. 가독성을 높이기 위해 스켈터랩스에서는 ESLint를 활용해 자바스크립트 표준(Standard) 스타일과 Vue.js의 강력 추천(Strongly Recommended) 스타일을 사용한다.

이승민 개발자는 스켈터랩스에서 코드 리뷰를 위해 게릿(Gerrit)이라는 툴을 사용한다고 설명했다. 게릿은 다른 개발자가 승인하지 않으면 그다음 단계로 진행할 수 없도록 하는 프로세스를 갖고 있어 자연스럽게 코드 리뷰를 해야만 하는 문화를 만들 수 있다.

게릿을 이용할 때 한 커밋(commit)마다 100줄을 넘지 않도록 하는 것도 코드 리뷰에 들이는 시간을 줄일 수 있는 방법이다. 코드 리뷰 관련 기록을 계속 남겨, 수정 배경을 모든 구성원이 이해할 수 있는 데이터를 쌓아놓는 것 또한 중요하다.

코드 리뷰를 위한 업무 프로세스를 만들어 개발 과정에서 조직 전체가 코드 리뷰 문화를 자연스럽게 받아들이도록 하는 것도 중요하다. 아무리 코드 리뷰가 중요하다지만 마감 시간에 밀리다 보면 왜 코드 리뷰에 많은 시간을 들여야 하는지 구성원들이 의문을 가질 수밖에 없기 때문이다.

이 개발자는 "처음에는 이런 코드 리뷰를 하기 위한 기반을 만들어놓는 과정 전체가 시간이 더 많이 든다고 생각할 수 있지만, 결국 코드 리뷰를 하고 나면 결과로 높은 품질의 코드가 나온다"며 "당장 내일 출시해도 작동하는 코드를 항상 가질 수 있게 된다는 장점이 있다"고 설명했다.

이어 "코드 리뷰를 중요하게 생각하는 개발 문화를 만들 수 있다면 기술 부채를 예방하는 데 큰 도움이 될 것"이라고 말했다.