좋은 개발 문화를 위한 노력 - 코드리뷰 (2)

지난번에 코드리뷰에 관해 작성한 글에서 언급한 계획을 일부 실현했습니다. 지난 포스트는 아래 링크에서 확인하실 수 있습니다. https://careerly.co.kr/comments/69884?utm_campaign=self-share 1️⃣ 리뷰어 배정 자동화 그동안 저희는 아래 흐름으로 코드리뷰를 진행했습니다. PR 생성 ➡️ PR 링크를 슬랙 채널에 올림 ➡️가장 빨리 확인하는 2명이 리뷰 ➡️ develop으로 merge 하지만 기존의 방법에는 두 가지 문제가 있었습니다. 1. 채널에 알림을 설정하지 않은 개발자들의 경우 리뷰 요청 확인이 어렵고 2. 가장 빨리 확인하는 2명이라는 애매한 기준이 리뷰를 지연시키는 문제입니다. 저희 개발팀은 작은 단위의 PR로 작업하고 있기 때문에, PR이 merge 되지 않으면 다음 작업을 진행할 수 없는 문제가 발생하는 경우가 간혹 있습니다. 그래서 PR을 빠르게 확인하고 코드리뷰를 하는 것이 필요했습니다. 코드리뷰 속도를 향상하기 위해 PR이 생성되면 리뷰어 후보자들에게 알림을 보내기 위해 멘션을 해야 했습니다. 멘션 효율을 향상하기 위해 슬랙에 그룹을 생성하고, PR 링크와 함께 채널에서 멘션 하기로 했습니다. 그룹을 생성하기 전에는 5명을 태그 해야 했지만 이제 그룹 1개만 태그 하면 돼서 시간을 아꼈습니다. 이를 통해 "반응속도" 측면에서는 개선되었지만, PR 작성자가 슬랙에 링크를 복붙해야 한다는 불편함이 여전히 남아있었습니다. 슬랙에서 깃헙 레포를 구독하면(/github subscribe), PR이 생성될 때마다 알림이 옵니다. 그리고 개발자들이 슬랙 계정을 깃헙 계정과 연동하면, 깃헙 PR에서 개발자를 멘션 할 때, 슬랙 앱에서 알림을 받을 수 있습니다. 따라서 PR이 develop 방향으로 open 될 때 리뷰어를 자동으로 배정해 주면, 자동으로 멘션이 되면서 PR 링크를 슬랙으로 복붙하는 과정을 줄일 수 있을 것이라고 생각했습니다. 검색하던 중, 리뷰어 후보자들의 깃헙 계정을 리스트로 넘겨주면, 정해진 인원의 리뷰어를 배정하는 깃헙 액션을 발견했습니다. https://github.com/hkusu/review-assign-action 깃헙 액션을 사용해서 각 레포에 리뷰어 후보자들을 배정했습니다. 저희의 코드리뷰는 아래와 같이 개선됐습니다. 1. develop으로 PR이 생성될 때 리뷰어 후보자 중에 2명이 자동으로 리뷰어로 배정됩니다. 2. 배정된 리뷰어들은 깃헙↔️슬랙 연동을 통해 멘션이 되어서 알림을 받게 됩니다. 3. 리뷰어는 PR을 생성한 개발자에게 별도로 연락하지 않아도 됩니다. comment를 남기거나 change request를 하는 경우 PR에 개발자를 멘션 하면 슬랙으로 알림이 갑니다. 4. PR을 생성한 개발자도 리뷰 내역을 빠르게 파악하고, 수정사항을 반영할 수 있게 됐습니다. 2️⃣ 자동 merge 리뷰어 2명이 approve 해도, 본인이 처음 approve 한 리뷰어라고 생각하는 경우 해당 PR을 merge 시키지 않는 경우가 생겨났습니다. 그래서 approval이 2개인 경우 자동으로 merge를 시키는 기능을 추가하기로 했습니다. https://github.com/DavideViolante/pr-automerge-action 이번에도 깃헙 액션을 사용해서 매일 오전 9시에 develop을 향한 PR 중에 approval이 2개인경우, 자동으로 develop으로 merge 시키도록 했습니다. 지금까지 저희의 코드리뷰 2.0에 관해 작성했습니다. 위 2가지 과정을 통해 코드리뷰의 효율을 높였지만 새로운 문제를 발견했습니다. 저희는 유연근무제를 도입해서 아래 3가지 시간대를 선택해서 근무 중입니다. 1. 08:00 ~ 17:00 2. 09:00 ~ 18:00 3. 10:00 ~ 19:00 17:30에 생성된 PR이 17:00에 퇴근한 개발자에게 배정되면, 다음날 오전까지 코드리뷰를 기다려야 하는 문제가 발생했습니다. 그리고 휴가 중인 개발자가 리뷰어로 배정되는 경우도 있었습니다. 따라서 저희는 사이드 프로젝트를 진행해서 코드리뷰 3.0을 도입할 예정입니다. 1. 슬랙 앱을 개발해서 깃헙과 연동 2. 깃헙 레포에 리뷰어 리스트 추가 3. 슬랙의 근무상태(active / inactive / vacation)을 확인해서 active 한 개발자만 리뷰어 배정 4. 리뷰어로 배정된 PR을 리뷰하지 않은 경우 매일 오전 알림 전송 슬랙 앱을 개발해서 저희 팀에서 사용해 보고, 기능이 괜찮으면 오픈소스로 공개할 예정입니다. 조언이나 궁금한 사항이 있으시면 댓글 부탁드립니다!

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2022년 12월 5일 오전 3:45

 • 

저장 10조회 2,265

댓글 0