GitLab과 AI로 개발 생산성 높이는 노하우

이는 코드 형식, 테스트, 문서화, 구현, API 정의 5단계로 구분했습니다. 위 그림에서 보다시피 구간별로 체크해야 할 사항들이 피라미드 형태로 나뉘어 있는데요.
자동화 가능한 윗부분과 리뷰에 집중할 아랫부분이 나뉘어 있습니다. 해당 피라미드는 2022년에 트위터에 올라온 코드 리뷰 소개인데요. AI를 활용한다면 더 아랫부분까지 자동화가 가능할 것으로 기대됩니다.
세션 2에서는 좋은 개발 문화가 있는 회사의 코드 리뷰 방식도 살펴봤습니다.
대표적으로 구글, 마이크로소프트(MS)가 있고요. 전 국내 기업 중 위메프와 토스페이먼츠, 뱅크샐러드와 우아한 형제들이 인상 깊었습니다.
먼저 구글의 리뷰 문화를 알아보겠습니다.

구글의 리뷰 문화를 요약하자면
- 모든 코드를
- 사내 정책에 맞는 룰(rule)에 맞춰서
- 최대한 작게, 자주
- 4시간 이내로
리뷰합니다.
MS는 어떨까요?

MS는 하루에 한 번 이상 리뷰하는 사람이 39%나 된다고 하는군요.
구글과 MS 사례의 특징은 ‘코드 리뷰 활동이 정말 많다는 것’입니다.
다시 한번 코드 리뷰 자동화의 필요성을 느꼈습니다.
이번엔 국내 기업을 알아보도록 하겠습니다.
먼저 뱅크샐러드입니다.

뱅크샐러드도 마찬가지로 최대한 작은 MR(PR)을 자주 진행하여 여러 가지 이점을 얻어가고 있습니다.

또한 리뷰어가 쉽게 이해하고 빠르게 리뷰할 수 있도록 변경 사항, 관련 화면, 테스트를 위한 체크리스트 등을 템플릿으로 만들어 협업에 신경 쓴 모습이 인상 깊습니다.

비슷한 사례로 우아한 형제들도 MR 템플릿을 만들어서 사용하고 있고요. 추가로 MR봇을 사용해 ‘어떤 MR들이 있는지’ 알람이 오도록 사용합니다.
마지막으로 토스페이먼츠와 위메프의 사례입니다.

먼저 토스메이먼츠는 ‘Good Review’라는 레이블을 달아서 긍정적인 표현을 해주는 게 인상 깊습니다.

위메프는 자세한 리뷰와 이모티콘 사용을 권장하는 문화가 있군요.
제가 위메프의 코드 리뷰 사례에서 눈여겨본 점은 ‘이모티콘을 자주 쓰자’인데요. 토스페이먼츠의 ‘Good Review’ 레이블과 동일한 목적으로 보입니다.
사실 리뷰가 딱딱한 분위기에서 진행된다면 리뷰를 받는 주니어의 입장에서 ‘혼나는 상황’이라고 생각하는 등 자칫 오해의 소지가 있을 수 있습니다.
이때 이모티콘을 사용한다면 서로 좋은 분위기에서 리뷰를 진행해 긍정적인 리뷰 문화를 안착하니 좋은 아이디어라고 생각합니다.
앞서 알아본 모범 사례들을 요약하자면 ‘코드 리뷰는 최대한 많이, 자주, 긍정적인 분위기로 진행하는 게 공통 목표인 것’을 알 수 있습니다.
이렇듯 현재 IT 업계에서는 코드 리뷰가 정말 많이 진행되고 있습니다. 코드 리뷰를 자동화한다면 업무 생산성을 높일 수 있지 않을까요?
이어서 신철호 이사는 코드 리뷰 자동화 방안을 제시해 주었습니다. 이때 사용한 도구로는 GitLab, ChatGPT 그리고 Plumber가 있습니다.

참고로 Plumber는 CI/CD 파이프라인 밀키트로, 인포그랩이 개발했습니다. 이는 약 30개의 프로덕션 환경에서 쓸 수 있는 CI/CD 파이프라인을 약 70개의 잡(job)으로 구성한 템플릿인데요. Plumber를 활용하면 CI/CD 파이프라인을 더 손쉽게 구축할 수 있습니다.
GitLab, ChatGPT API 그리고 Plumber를 활용한 코드 리뷰 자동화 흐름은 다음과 같습니다.

흐름을 요약하자면 이렇습니다.
- 코드 작성 후 MR 생성, 해당 MR에 /review-all 코멘트 작성
- /review-all 코멘트로 리뷰 작성 봇을 실행하는 트리거 웹훅 실행
- 리뷰 작성 봇에서 파이프라인 동작, ChatGPT-API로 리뷰 작성
다음은 GitLab, ChatGPT 그리고 Plumber로 코드 리뷰 자동화를 시연한 화면입니다.

시연에서 알 수 있었던 점은 다음과 같습니다.
- 적절한 프롬프트(ChatGPT에 요청하는 문구)를 사용하는 것이 중요하다.
- 코드가 외부(ChatGPT)에 유출되는 것을 조심해야 한다.
- 코드 리뷰를 전적으로 AI에 의존하기에는 AI 성능이 아직 부족하다.
따라서 코드 리뷰를 완벽히 AI로 대체하는 것보다는 1차적으로 AI를 사용해 코드 리뷰를 받고 이후 원래 프로세스대로 리뷰어에게 코드 리뷰를 받는 것도 좋은 방법이라고 생각합니다.
또한 회사의 자산(코드)이 외부(ChatGPT)로 유출되는 것을 인지하여 대체 방안을 고민해 봐야겠습니다.
아직 부족한 점도 있습니다. 다만 중요한 것은 이제는 AI를 활용하지 않는다면 도태된다는 것이겠죠.
이번 GitLab 밋업에서 AI의 중요성을 다시 한번 깨닫게 됐습니다.
사전 동의 없이 2차 가공 및 영리적인 이용을 금하며, 온·오프라인에 무단 전재 또는 유포할 수 없습니다.
Sabo
DevOps Engineer
DevOps 도입이 필요하신가요?
인포그랩 전문가가 맞춤 을 도와드립니다.
관련 글

개발자 생산성 지표를 넘어 AI 효과 측정하기
이 글은 AI 생산성 도구의 영향력을 측정하기 어려운 이유와 이를 잘 측정하기 위해 유의할 점을 다뤘습니다. 아울러 이 한계를 보완하기 위해 GitLab이 개발 중인 ‘AI Impact’ 대시보드를 알아봤습니다. AI Impact는 Value Stream Analytics 기반 대시보드로, ‘GitLab Duo가 생산성에 미치는 영향력’을 이해하도록 지원합니다.
2024년 3월 13일

GitLab Duo로 개발 생산성 높이기
이 글에서는 GitLab Duo를 활용해 소프트웨어 개발 업무 속도와 편의를 높이는 방법을 다뤘습니다. 구체적으로 GitLab Duo의 View summary 기능, Suggested reviewer 기능, Code review summary 기능, Suggest test cases 기능, GitLab Duo Chat 기능 활용방법을 살펴봤습니다.
2023년 10월 19일

GitLab 코드 제안(Code Suggestions)으로 개발자의 생산성을 향상하는 방법
GitLab의 Code Suggestions 기능을 소개합니다.
2023년 6월 22일