리뷰 누락을 어떻게 예방할까? 알림 시스템 제작 여정
#혹시... 제 리뷰 언제까지 될...까요?
과거 재직했던 IT 스타트업에서는 코드리뷰를 필수로 진행했다. 그리고 팀 내 코드리뷰 원칙이 있었는데, 매일 오후 2시까지 리뷰를 완료할 것, 만약 리뷰가 지연될 시 별도 알림을 줄 것 등이 있었다.
하지만 원칙은 문서로만 존재했기에, 의식하지 않으면 지켜지기 어려웠다. 그래서 개발팀에서는 리뷰 할당 사실을 놓치거나, 한 사람에게 리뷰가 가중되어 리뷰 완료 시간이 넘어가곤 했다. 이 상황은 마냥 긍정적이진 않았다. 리뷰요청자는 리뷰를 기다리다가 자신의 작업에 투자할 시간이 적어지고, 리뷰어는 리뷰가 가중되면 리뷰 퀼리티가 떨어질 수 있기 때문이다.
그럼 어떻게 해야 리뷰 누락을 방지하고, 리뷰가 한 사람에게 가중되는 현상을 해소할 수 있을까? 개인이 특정 시간마다 확인하면 될까? 그런데 작업에 몰입할 때는 확인하는 걸 놓칠 수 있는데ㅜ
아아~ 그럼 리뷰 할당 현황을 채널에 알려주면 어떨까?
#매일 일정 시간에 리뷰 할당 현황을 알려주자!
팀에서는
Discord를 소통 채널로 사용하고 있었다. 그래서 Discord 채널에 할당 알림 봇을 만들어 할당 현황을 메시지로 전송해주자! 라고 생각했다. 그런데 이 시스템을 만들기 앞서 문제가 있었는데...
처음에는 디스코드 봇으로 특정 시간 알림과 더불어, 명령어로 리뷰 현황을 상시로 볼 수 있게 하려 했다. 하지만 Github API 요청 횟수에 제한이 있어 상시 알림은 어려웠다. 그래서 아쉽지만 하루에 한 번 할당 여부를 메시지로 전송해주기로 결정했다.
"그럼 더이상 문제 없겠네! 바로 시작 ㄱㄱ", "응...아니야 문제가 하나 더 있지..^^..."
또 다른 문제는 이 메시지를 어떻게, 일정 시간 마다, 전송할 건지였다. 서버를 연결해야할까? 그런데 상호 통신이 필요 없는데 서버 연결은 과한데? 그러다 예전에 Github Actions로 PR Labeler를 연결한 경험이 떠올랐고, Github Actions의 cron을 사용해 보기로 했다.
여기서 주의한 점은, cron은 UTC 시간 기준이라 한국 시간으로 바꾸려면 9시간을 빼야하는 점과 시간 오차가 있어 실제 스케쥴링한 시간보다 최대 20분 정도 차이나는 점만 빼면 괜찮았다.
그리고 대망의 아침 9시경, 예측했던 대로 9시에 바로 작동하진 않았고 6분 뒤에 스케쥴링 돌았다. 다행히 의도했던 대로 데이터가 잘 나와서 만족스러웠다.
#그 이후에는?
시스템 도입 후에는 피드백을 받았는데, "개인별로 할당된 PR로 이동했으면 좋겠다", "오후에 재알림이 있으면 좋겠다" 등이 있었다. 다만, PR로 바로 이동하는 기능은 데이터 접근은 가능하나 메시지 템플릿이 너무 길어져 보류 했다. 오후 재알림은 cron을 추가로 생성하는 방식으로 수정했다.
이 시스템을 만들면서 디스코드 Webhook과 cron도 배울 수 있었는데, 무엇보다 팀의 문제를 시스템으로 해결한 점에서 뿌듯했다.
+) 관련 자료
기술적으로 어떻게 구현한건가요? 아래 링크에 순서대로 적어두었답니다 +_+
댓글
로그인 후 댓글을 남길 수 있습니다.
아직 댓글이 없습니다.