• 코드리뷰
  • 블로그
  • 로그인

코드 리뷰로 학습하기

코드리뷰로 코드를 개선하고 학습하는 방법에 대하여 연구해봤습니다.
한윤석

코드 리뷰란 다른 사람이 작성한 코드를 보고, 코드를 개선하기 위해 서로 논의하는 것을 말합니다. 간단한 오타수정부터 기능, 올바른 이름짓기, 디자인 등등 코드를 개선하기 위한 많은 일들을 할 수 있습니다. 그래서 많은 개발 조직에서 코드의 품질을 유지하기 위해 코드 리뷰를 적극 활용하고 있습니다. 하지만 코드 리뷰는 단순히 코드를 개선하는 일 뿐만 아니라 개발자들이 많은 지식들을 배울 수 있는 좋은 기회입니다. 코드 리뷰를 이용해서 무엇을 더 배울 수 있을까요?

더 좋은 코드를 만들 수 있을까?

다른 사람의 코드를 읽으면서 코드의 의도를 파악하고 더 개선할 수 있는 부분은 없는지 찾습니다. 만약 내가 모르는 것을 발견했다면 문서나 책을 통해서 찾아봅니다. 새롭게 공부하며 지식을 습득하게 되고 그 지식에 대한 아주 휼륭한 예제코드도 같이 알게됩니다. 이해하는게 어렵다면 작성자에게 질문할 수 있으니 아주 휼륭한 선생님도 같이 얻게 된 셈입니다. 나라면 이 문제를 어떻게 해결할까? 더 좋은 방법으로 해결할 수 있을까? 혹은 더 효율적으로 이 문제를 해결할 수 있을까? 고민합니다. 만약 개선할 부분을 찾았다면 작성자에게 제안을 해야 합니다. 근데 제안을 할 때 이유도 같이 첨부해야겠죠?

작성자는 처음 알게되는 개념일 수 있기 때문에 아주 자세하게 설명해야 합니다. 하지만 내가 다른 사람에게 설명할 수 있을정도로 알고 있지 않다면 설명하기가 어렵습니다. 그래서 문서나 책을 통해 자세히 공부한 다음에 정리를 해서 설명해야 합니다. 이 과정에서 공부를 할 수 밖에 없게됩니다.

먼저 코드 리뷰 하기

이런! 제가 생각했던게 틀렸습니다.

코드 리뷰의 가장 좋은 점중 하나는 먼저 코드 리뷰를 하면 나도 코드 리뷰를 받을 수 있다는 사실입니다. 더 좋은 방법이라고 생각했지만, 작성자가 코드를 작성하여 코드에 대해서는 더 많이 알고 있기 때문에 더 좋은 방법이 있을 수 있습니다. 코드 리뷰를 보고 정말 좋은 제안이라고 받아들인다면 내가 잘 작성했다는 것을 확인할 수 있습니다. 만약 작성자가 생각했을 때 코드 리뷰가 별로라고 생각한다면 왜 별로라고 생각하는지 답변이 올 것입니다. 그러면 내가 제안한 코드 리뷰에 대해서 다시 코드 리뷰를 받을 수 있게됩니다!

셀프 코드 리뷰

내가 작성한 코드를 다른 사람이 보기 전에 나 스스로 코드 리뷰를 하게 되면 또 새로운 사실들을 많이 발견할 수 있습니다. 다른 사람이 코드를 볼 때 관점으로 바라보는 연습을 하면 나는 당연하게 이해될거라고 생각했던 것들을 다른 사람들이 봤을 때는 이해하기 어려운 코드들을 발견할 수 있습니다. 그러면 더 의도를 드러내도록 수정할 수 있고 혹은 더 생각이 나지 않는다면 다른 사람들에게 “더 좋은 방법이 있을까요?“라고 조언을 구할수도 있습니다. 만약 코드로 설명할 수 없는 부분은 코멘트로 부가설명을 더할 수 있습니다.

같이 성장하기

코드숨에서는 코드 리뷰를 통해 수강생들의 학습을 도와드리기도 하지만 사실은 가장 많이 배우는 사람들은 리뷰어입니다. 더 많이 알려드리기 위해 더 많이 공부하고 있고, 리뷰를 하면서 같이 성장하고 있습니다.

참고

  • Code Review Developer Guide - https://google.github.io/eng-practices/review/
  • 피드포워드 - 교보문고 - http://www.kyobobook.co.kr/product/detailViewKor.laf?barcode=9791187856795
  • 피드포워드 서평 - 윤석 블로그 - https://hannut91.github.io/blogs/books/feed-forward
테스트, TDD, 코드리뷰, 올바른 협업 방법 등을 코칭하여 코드숨은 개인과 개발 조직의 성장을 돕고 있습니다. 🙏진짜 개발자로 거듭나는 방법
강의 알아보기