Github Copilot: 코드 리뷰 해주는 동료 체험기
Github Copilot: 코드 리뷰 해주는 동료 체험기
서론
오늘 AI가 제 엔지니어링을 바꾸었다고 느낀 포인트는 Github Copilot이 저의 PR을 리뷰해준 경험입니다.
최근 새 팀에 합류하여서 팀에 도움되는 작업들을 전달 받고, 찾기도 하면서 작업 중입니다.
오늘은 모델 서버가 종종 지연시간이 튀는 현상이 발생하면서 유저의 UX를 해치고, 경보를 계속 울리는 문제가 있어서 고쳐보고자 접근하여 고치던 중 GPU를 여러 워커가 공유하는 문제인 점을 식별했습니다.
이 과정에서 기존 배포를 위해 사용하던 쉘 스크립트 수정 및 앱의 진입점 코드 수정이 필요하여서, 작업 후 커밋을 올렸는데,
이 과정에서 감탄하며 Github Copilot과 협업한 체험기를 공유하고자 합니다.
경험
최근 몇 달간 레포를 혼자 사용하는 형태로 업무를 하다가 팀에 합류하여 PR을 올리는데, 팀 구조 상 리뷰를 받기가 어렵다 보니 AI 툴들을 많이 사용하고 있습니다.
기존 팀은 유료로 코드 리뷰 툴(CodeRabbit)을 사용 중이나, 저는 범용 AI 툴들이 많아서 아직 보류하고 있는 상태로 보통은 Codex를 리뷰어로 등록하는 형태로 PR을 열고 있습니다.
다만, Codex는 아직 크리티컬한 문제로 보이는 것만 리뷰를 해주는 느낌이라, 오늘 Copilot을 추가로 리뷰어로 등록해보았는데요.
지금까지 경험했던 리뷰 중에 손에 꼽을 정도로 좋은 리뷰를 받았습니다.
제가 더 놀라는 이유는 코드 리뷰 AI를 적극적으로 사용해보지 않았던 이유도 있으리라 생각합니다.
하지만, 이번에 작업한 코드가 팀에서 코드를 리뷰할 수 있는 사람이 별로 없었기에 사람에게 받는 것보다 더 리뷰를 잘 했으리라 생각이 들었습니다.
예를 들어, 리딩 해주는 프로세스가 있고, 워커로 있던 프로세스들이 있을 때 저는 리딩 프로세스 위주로 작업을 하여 PR을 작성했다면, Copilot은 제가 우려한 워커 프로세스들을 관리하는 코드를 제안하고 그 외에도 코딩 스타일 적으로 더 좋은 방법을 많이 제안하는 모습을 보였습니다.
또한, 사소한 리뷰는 nitpick 이라 기재하여 사소한 리뷰라고 알려주는 모습도 보여줍니다.
평소에 제가 일하는 방식과 비슷하여 더 친근하게 느껴졌네요 ㅎㅎ
그리고 아마 사람과 리뷰를 했다면,
리뷰어: "이 부분은 워커 프로세스도 확인해야하지 않을까요?"
작업자: "서브 프로세스도 확인하면 좋지만, 현재 동작 상 문제가 없기도 하고 현재 리소스를 고려하여 추후에 추가하려 합니다."
로 끝났을 지 모르겠지만, 코파일럿은 한 개의 스텝을 추가해줬습니다.
코파일럿: "있으면 좋을 것 같은데, 바로 PR 만들어볼게요."
이렇게 작업을 해주는 좋은 사람 동료도 있을 수 있지만, 서로의 리소스 등을 고려했을 때 매번하기엔 힘든 면이 있습니다.
하지만 AI, 코파일럿은 언제나 이러한 방식으로 리뷰에 함께해줍니다.
성능 뿐 아니라 놀라웠던 점은 UX. 즉, 편의성이었습니다.
에이전트 작업을 통해 수정이 필요한 곳은 리뷰와 함께 Implement suggestion 버튼을 함께 제공합니다.
그 후, 해당 PR은 제 기존 PR을 base로 분기했기 때문에 리뷰 후 머지하면 처음 리뷰했던 PR에 반영하게 됩니다.
결론
이러한 경험을 통해 코드 리뷰 에이전트가 어디까지 왔는 지, 어느정도까지 유저의 편의를 생각하는 지 느껴볼 수 있는 경험이 되었습니다.
모델들의 성능이 점점 올라오면서 리뷰는 아마 상향평준화가 되리라 생각합니다. 하지만, 그 끝을 가르는 건 이 리뷰를 어떻게 보고, 어떻게 적용할 수 있는 지를 유저 친화적으로 풀어내야하지 않을까 생각해봅니다.
오늘 경험을 통해 느낀 편의성으로 저는 Copilot을 내 코드 리뷰 동료로 몇 주간 더 함께 해볼 것 같습니다.
혹시나 아직 경험해보지 않으셨다면 저와 같은 경험 하시길, 제 글이 도움이 되었길 바랍니다.