그님스 BE는 코드 리뷰를 합니다. 그런데 잘되고 있나요...?
BE 팀은 언제 코드 리뷰를 하나요?
코드 리뷰는 다음과 같이 이뤄집니다.
1. 개인 repository feature 브랜치에서 작업 진행
2. 조직 repository dev 브랜치로 작업물 PR (최소 한 명의 리뷰어에게 승인을 받아야 merge 가능)
3. 코드 리뷰
4. merge
코드 리뷰를 도입하게된 계기
지금으로부터 약 7주 전, 스프링 1주차, 2주차 미션을 수행하면서 김선용 멘토님, 고성빈 멘토님께 코드 리뷰를 받았었는데요. 좋았어요. 그래서 실전 프로젝트에는 코드 리뷰를 도입하고 싶었습니다.
그렇다면 7주 전에 제 자신은 도대체 코드 리뷰의 무엇이 좋았던 것일까요? 성장하는 느낌
효과적인 코드리뷰를 위한 리뷰어의 자세에서 나오는 좋은 리뷰어의 자세를 가지고 코드 리뷰를 진행해주셨습니다. 성장하는 느낌을 받을 수 있었습니다.
성장이라는 좋은 느낌 아래, 팀원과 코드 리뷰를 한다면 상호 성장할 수 있지 않을까? 라는 생각에 코드 리뷰 도입을 권유했습니다. 하지만 코드 리뷰를 조금이나마 진행해보면서 더 많은 것들을 배울 수 있었습니다. 이 내용은 글의 후반부에서 얘기해보려고 합니다.
그님스의 코드 리뷰는 잘되어가고 있나요?
우선 변명을 조금 해볼게요.
1. 코드에 대한 설명이 부족해요.
그래서 팀원이 PR하면 대화를 통해 코드를 이해하는 시간을 가졌어요.
2. 리뷰어가 너무나도 한정적이에요.
우리의 코드 리뷰 시스템의 문제를 파악하기 위해 여러 회사들의 코드 리뷰 문화를 살펴보려고 했어요.
우아한테크코스 VS 우아한형제들 글을 통해 코드 리뷰 도입 시 리뷰어, 리뷰이 규칙이 필요하다는 것을 알게 되었어요.
효과적인 코드 리뷰를 위해서 - 라인 기술 블로그 글도 좋은 코드 리뷰를 받기 위해 어떻게 개발해야 될지 많은 도움이 됐던 것 같습니다. 두 글을 요약하면 리뷰이 규칙에는 적절한 PR 규모, 좋은 커밋 방법, PR에 대한 설명 등 리뷰어에게 친화적인 PR을 만들어야 하는 내용이 담겨졌어요.
다음에 팀 프로젝트를 할 기회가 있다면 위 포스팅을 토대로 리뷰이, 리뷰어 규칙을 만들어 1번과 같은 변명을 하지 않도록 해야겠어요. 3번의 경우에는 현실적으로 리뷰를 해줄 수 있는 사람이 민우님밖에 없었기 때문에 아쉬웠습니다.
BE : 코드 리뷰를 통해 무엇을 배웠나요?
BE 재헌
1. 팀원의 질문을 통해 내가 짠 코드에 대해 다시 한 번 생각해볼 수 있었어요.
사실 예전에 현우님께서 DTO에 제네릭을 사용하는 모습을 보고 물어봤던 기억이 있는데 민우님께서도 동일한 질문을 해주셨어요. 코드 리뷰를 통해서 서로 질의 응답하면서 새로운 접근법을 알게되고 작성자 자신도 코드에 대해 다시 한 번 생각할 수 있어 좋은 것 같아요.
2. 코드 리뷰를 통해 사전에 리팩토링을 할 수 있었어요.
코드 리뷰를 통해 조금이라도 더 팀원에게 친화적인 코드를 짤 수 있었습니다.
3. 내가 맡은 부분이 아니더라도 코드 리뷰를 통해 조금이나마 다른 도메인 쪽 개발을 알 수 있었어요.
민우님께서는 코드 리뷰뿐만 아니라 평소에도 저와 함께 각자 도메인에 대해 생각을 공유해주셨는데요. 유저 도메인쪽의 많은 내용을 배울 수 있었습니다.