좋은 개발 문화를 위한 노력 - 코드리뷰 (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,326

댓글 0

    함께 읽은 게시물

    < 좋은 관계를 위한 최소한의 예의, ‘거리 두기’ >

    1. 살다보면 나를 끔찍이 싫어하는 사람이 한둘은 나오게 마련이다.

    ... 더 보기

    메타, MS, 알파벳의 지난 10년간 연간 해고율 그래프. 최근 빅테크의 대규모 해고가 정말 AI 때문일까요? 그렇다면 크게 감원하는 것이 목적일까요?

    ... 더 보기

     • 

    조회 1,469


    Next.js 앱을 쿠버네티스에 배포하기 (feat. ArgoCD)

    ... 더 보기

    Next.js 앱을 쿠버네티스에 배포하기 (feat. ArgoCD) | 요즘IT

    요즘IT

    Next.js 앱을 쿠버네티스에 배포하기 (feat. ArgoCD) | 요즘IT


    ‪요 기능의 일부를 바이브 코딩으로 만들려다가 실패했는데요. 그 중에 하나로 타임존 문제가 있었습니다.‬

    ... 더 보기
    profile picture

    골빈해커

    Chief Maker

    내가 좋아하는 아미고가 예약된 시간에 전화를 걸어줍니다. 아직 베타라 불완전한 면이 많습니다. 많은 피드백 부탁드립니다. 🙏🙇🏻 앱 다운로드: https://ameego.club 첨부 영상은 지난 달 초에 찍어 둔 영상인데 출시가 이로저로 늦어졌네요. 🥲 계획되어있는 다음 업데이트들도 후딱 해 보겠습니다. 무엇보다 아미고의 성장에는 여러분의 많은 관심(리뷰와 결제🫣🤭)이 필수..☺️ 그럼 많은 도움 부탁드리겠습니다. 감사합니다! 🙇🏻‍♀️🙇🏻


    어제 저커버그 인터뷰에서 연구자들을 돈으로 매수..아니 돈으로 경쟁사들에게서 빼오고 있다는 의혹에 대해서 답했는데요.


    이는 잘못된 말이라며, 탑티어 연구자들의 욕망(!)은 GPU를 최대한 많이 사용할 수 있기를 바라는 것이고, 그래서 작은 팀으로 무한대의 GPU를 쓸 수 있게 해 준다는 것으로 유혹(?) 했다고 합니다. (*욕망, 유혹 같은 표현을 저커버그가 쓴 건 아님)


    ... 더 보기

    조회 1,002