2016년 11월 10일 목요일

코드 리뷰, 그 냉정과 열정 사이 (2)

  코드 리뷰 요청이 오면 나의 업무 외에 부가적인 업무라는 생각 때문에 코드 리뷰를 항상 미루게 된다. 하지만 코드 리뷰가 개발에 기여하는 부분이 분명히 존재한다. 직접 그 이점을 체험하고 있기 때문에, 어차피 개발하는데 도움이 된다면 그 부분을 최대한 활용해 보자는 생각으로 코드 리뷰 방법, 다른 회사들은 어떻게 하는지 검색해 보았다.

1) 구글에서의 코드 리뷰
http://sv-story.blogspot.kr/2013/04/blog-post_28.html

2) 카카오스톨팀의 코드 리뷰 도입 사례
http://tech.kakao.com/2016/02/04/code-review/

  위의 글을 읽고 몇가지 배울 점과 적용해 볼 점을 나의 상황에 맞게 정리해 보았다. 너무 많으면 어차피 까먹을 테니, 4가지만 정리해서 기억하기로 했다.

  나의 경우는 인도 개발자와 원거리 협업을 하므로, 메일로 코드 리뷰 요청을 받는데 이 경우 자꾸 뒤로 미루는 경향이 있다. 그런데 이때 더 큰 문제는 우리 회사는 코드 리뷰를 꼭 받아야 메인라인에 수정사항을 반영할 수 있기 때문에, 코드 리뷰를 미루다 보면 인도 개발자가 메인라인에 수정사항을 반영하는 일이 계속 딜레이된다.

1. 코드 리뷰 요청을 받으면, 요청받은 당일에 반드시 코드 리뷰를 한다.


  너무 바쁜 일이 있어 당일에 코드 리뷰를 해주지 못하면, 당장 코드 리뷰를 해주지 못한다고 말하고, 언제까지 해주겠다고 양해를 구한다.

2. Minor change의 경우 인도 개발자들끼리 코드 리뷰를 수행하도록 하고, major change나 SW release에 가까워서 발생한 문제에 대한 수정사항은 나에게 코드 리뷰를 요청하도록 한다.


  현재 협업하고 있는 인도 개발자들보다 내가 경력이 많아서 내가 계속 가이드하고, 코드 리뷰를 하고 있는 상황이다. 그래서 나랑 같은 기능을 개발하는 인도 개발자들이 모두 나에게 코드 리뷰를 신청한다. 그러다 보니 코드 리뷰 신청이 나에게 너무 많이 온다. 그래서 코드 리뷰를 반드시 내가 해야 하기 보다, 상황에 맞도록 적절하게 하는 것이 좋겠다고 생각했다. (모든 것은 반드시!보다는 상황에 맞도록 유연하게~하는 것이 좋은 것 같다.)
  그런데 사실 2번 사항은, 아직 해야 하나 말아야 하나 고민 중이다. 최종적으로는 인도 개발자들끼리 코드 리뷰를 하도록 해야 하지만 지금은 아직 아닌 것 같다는 생각이 든다.
  왜냐하면 인도 개발자들끼리 진행하는 코드 리뷰가 진정 의미 있는 코드 리뷰가 될지 아직은 의문이기 때문이다. 나는 사실 아직 인도 개발자들이 믿음이 안간다. 그래서 요즘 항상 어떻게 하면 인도 개발자들을 서로 코드 리뷰를 할 수 있는 수준까지 끌어올릴 수 있을까 고민 중이다. (나도 잘 모르는데, 남을 걱정하는 내 모습이 웃프다.)

3. 코드 리뷰 시, 코드에 대한 전체적인 디자인을 본다. 더 단순한 구조, 이해하기 쉬운 구조, 확장성, 테스트가 쉬운 구조인지 생각해본다.


4. 코드 리뷰 시, 내가 생각하는 구조나 디자인에 대해서 너무 강요하지 않는다. 


  내가 제안하는 방법에 대해서 항상 이유를 밝히고, 더 나은 방법이 있는지를 코드 작성자와 함께 생각한다. 코드 리뷰를 하면서, 내가 생각하는 방향으로만 상대방을 너무 강하게 푸쉬한다는 생각이 들었다. 언젠가 한번 인도 개발자가 '그걸 그렇게 꼭 수정해야해?' 라고 말할 때도 있었는데, 내가 보기엔 이게 더 효율적이니까 그냥 고쳐!라고 했었다.

<나랑 생각이 다르구만! 내 코드랑 안 맞아!>
  사실 시각의 차이가 있을 수 있고, 꼭 내가 주장하는 방법이 옳은 것은 아닐 수 있는데도 내가 너무 닫힌 마음으로 코드 리뷰에 임한 것 같다. 상대방과 더 나은 방법이 있는지 함께 찾는 과정이라고 생각하고 코드 리뷰에 임해야 겠다.

  그리고 바로 앞 글 '코드 리뷰, 그 냉정과 열정 사이(1)'을 쓰는 동안은 코드 리뷰의 진정한 목적이 잠재적인 버그 찾기라고 생각했다. 그런데 코드 리뷰를 잘하는 방법에 대한 글들을 찾다보니 버그 찾기는 코드 리뷰의 목적 중 일부분에 불과하다는 글들이 많더라.  그래서 코드 리뷰의 진정한 목적이 무엇인지 요즘 또 고민중이다.

0 개의 댓글:

댓글 쓰기