🙋🏻♀️ 코드 리뷰의 필요성
더 나은 유지 보수를 위해.
구조와 설계가 제대로 이루어졌는지 점검하는 것이 필요하다. 빠른 기능 구현보다 중요한 것이 적합한 구조 설계이다.
가독성을 고려하며 코드를 작성하였는지 점검하는 것이 필요하다.
버그를 미리 발견하고 놓친 점을 포착하여 이후 커질 수 있는 문제 상황에 대비할 수 있다.
타인의 코드 점검을 통해 다양한 사람들의 코드를 읽고 이해하는 능력을 향상할 수 있다.
서로의 코드를 읽기를 통해 지식을 주고 받으며 함께 더욱 성장할 수 있다.
서로가 하고 있는 일에 관심을 갖고 있음을 표현하는 수단이 되기도 하여 결속력과 책임감을 증대시킬 수 있다.
팀원들의 각 업무의 진행 상황을 이해하게 됨으로써 일의 흐름을 파악할 수 있다.
코드 리뷰 방법 및 주의 사항 🙆🏻♀️
[리뷰를 요청할 때]
요청 전 셀프 코드리뷰를 진행해 본다.
리뷰어를 위해, 작성한 코드에 대한 요약과 부연 설명, 주석 등을 이해하기 쉽고 명확하게 작성한다.
클라이언트의 경우 뷰의 모습을 담은 스크린 캡처 등을 포함할 수도 있다.
[리뷰를 작성할 때]
코드 맥락을 고려하며 작성자의 의도를 파악해보려는 노력을 한 뒤 코멘트를 작성한다.
명령이 아닌 요청 혹은 제안의 말투. (~게 해주시면 더 좋을 것 같습니다. / ~로 하는 것은 어떨까요?)
제안에는 명확한 근거 혹은 제안의 연유에 대한 흐름을 함께 제시한다. (단순히 ‘이렇게 하는 것이 좋다고 하더라~’ 지양)
너무 세세한 변경 제안은 하지 않는 것이 좋다.
답을 100% 알려주기보다는 방향성을 제시하며 스스로 고민하고 개선할 여지를 제공한다.
리뷰할 것이 없다면 무의미한 리뷰보다는 진심을 담은 칭찬을 한다.
코드 작성자의 성향과 스타일에 대한 리뷰는 지양한다. (더 나은 로직, 함께 정한 컨벤션, 궁금한 점, 배우고 싶은 점 등에 관한 리뷰 지향)
여러 줄의 코드 변경의 경우 틀이라도 직접 작성하여 함께 제공하는 것이 좋다.
[리뷰를 받아들이고 답변을 달 때]
리뷰를 지적이나 비난으로 받아들여서는 안된다. 상대방의 리뷰에 대한 감사한 마음을 갖는다.
여러 가능성을 생각하며 열린 마음으로 제안을 검토하며 상대방의 의견을 이해하는 시간을 갖는다.
질문에 대한 답변 시 본인의 의도를 명확히 전달한다.
☑️ 코드 리뷰 팁
프로젝트 시작 전 컨벤션을 함께 토론하며 정하는 시간을 갖는다.
정말 중요한 이슈에 관한 리뷰는 서면보다 대면으로 진행한다.
말투를 유하게 하는 것이 걱정되고 신경쓰인다면 되도록 경어체를 사용하고, 영어 리뷰를 시도한다.
검사로 느껴지도록 하기 보다는 함께 성장하는 것을 목표로 하는 하나의 문화로 느낄 수 있도록 분위기를 조성하는 것이 좋다.
리뷰어를 많이 포함시켜 버그 포착의 가능성을 높이고 코드 작성에 대한 책임감을 높이는 효과를 내는 것도 좋다.
References
The Code Review Pyramid
https://www.morling.dev/blog/the-code-review-pyramid/글로벌 기업은 코드 리뷰를 어떻게 할까
https://www.samsungsds.com/kr/insights/global_code_review.html?moreCnt=4&backTypeId=insight&category=cat_1222819효과적인 코드리뷰를 위한 리뷰어의 자세
https://tech.kakao.com/posts/498카카오스토리 팀의 코드 리뷰 도입 사례 - 코드 리뷰, 어디까지 해봤니?
https://tech.kakao.com/posts/310코드 리뷰의 목적은 성장이어야 한다.
https://jbee.io/essay/code-review-goal/