6월 26일, GitLab 코리아에서 16번째 밋업을 진행하였습니다. 이날은 평소보다 많은 분이 밋업에 참가해 주었는데요. 아마도 밋업 주제가 상당한 흥미를 불러온 것으로 생각합니다. 이날의 밋업 주제는 ‘GitLab + AI로 생산성 **높이기, 코드 리뷰 자동화’**였습니다.
밋업은 세션 1, 2로 나눠 진행됐습니다. **세션 1에서는 유인철 GitLab 코리아 이사가 ‘GitLab AI Assisted 주요 기능 알아보기’**를 주제로 발표했고요. 주요 내용으로 Code Suggestions, Suggested Reviewers 등 업무에 강력한 도움을 주는 AI 기능을 모은 GitLab Duo를 설명했습니다.
**세션 2에서는 신철호(Dexter) 인포그랩 이사가 ‘GitLab MR에서 코드 리뷰하기 - GPT & Plumber를 활용한 코드 리뷰 자동화’**를 주제로 발표를 진행했습니다. 주요 내용으로 리뷰의 중요성 및 다른 IT 회사의 모범사례, 코드 리뷰 자동화 방안을 설명해 주었고요. 코드 리뷰에 사용하는 도구로 ‘Plumber’도 소개했습니다. Plumber는 CI/CD 파이프라인을 손쉽게 구축하도록 도와주는 제품으로, 인포그랩이 개발했습니다.
최근 AI를 활용한 업무 자동화로 생산성을 높이는 것이 큰 화두인데요. 두 세션 모두 공통적으로 AI를 활용하여 업무를 효율적으로 수행하는 기능 및 방법을 알아보는 시간이었습니다. 이 글에서는 이번 밋업의 주요 발표 내용을 살펴보겠습니다.
세션 1. GitLab이 지원하는 AI 기능
세션 1에서는 GitLab의 주요 AI 기능을 알아봤는데요. 앞서 GitLab AI 기능을 모은 ‘GitLab DUO’를 언급했죠. GitLab DUO는 ‘개인정보보호를 우선시하고 다양한 직군을 만족시키자’라는 GitLab의 주요 원칙에서 비롯됐습니다.
GitLab은 개발 영역뿐만 아니라 운영 영역과 보안 영역까지 AI로 보완하는 것을 목표로 하고 있습니다. 또한 보안 및 모니터링에 이르는 소프트웨어를 빠르게 구축하도록 지원하고 있다고 합니다.
현재 많은 사람이 ChatGPT 등을 활용해 보안·운영 업무를 보완하고 있는데요. GitLab DUO를 이용하면 GitLab 자체 AI 기능을 이 업무에 적용할 수 있겠군요.
GitLab에서는 다음과 같은 기능들이 릴리즈 됐거나 베타 테스트 중 또는 릴리즈 예정이라고 합니다.
이 중에서 저한테 많이 와 닿았던 5가지 기능들이 있는데요. Suggested Reviewers, Code Suggestions, Explain this Code, GitLab Chat입니다.
각 기능들을 간략하게 살펴보겠습니다.
-
Suggested Reviewers
코드 변경 후 리뷰 시 해당 프로젝트 내 Merge Request(MR) 데이터를 참고하여 리뷰어를 추천해 주는 기능입니다.
Suggested Reviewers를 잘 활용한다면 리뷰어를 찾는 시간을 줄일 수 있고 가장 합리적인 리뷰어 선택이 가능해지겠습니다.
-
Code Suggestions
개발자의 개발 효율성을 향상하는 코드 자동 완성(추천) 기능입니다.
GitHub에서는 ‘co-pilot’이라는 이름으로 비슷한 기능을 지원하고 있는데요. GitLab의 Code Suggestions는 GitHub과 다르게 On-Premise 환경의 GitLab 자체 인스턴스에서도 지원이 된다고 합니다.
-
Explain this code
인라인 코드를 설명하여 코드를 빠르게 이해할 수 있도록 지원합니다. 코드를 더 빠르게 파악하도록 도와주는 기능입니다.
아무리 실력 좋은 개발자라도 다른 사람이 개발한 코드를 이해하려면 정말 오랜 시간이 걸렸는데요. 앞으로 Explain this code를 활용한다면 GitLab에서 빠른 시간 내에 코드를 이해할 수 있겠습니다.
-
GitLab Chat
GitLab에 대한 모든 질문에 답변을 해주는 도구인데요.
GitLab의 특정 기능을 사용하기 위해 설정을 변경하다가 어려운 부분을 만나 시간을 허비한 적이 몇 번 기억납니다. 이때 GitLab Chat을 이용하면 좋겠 습니다.
GitLab에 특화된 챗봇이다 보니 ‘GitLab과 관련된 질문에 가장 정확한 답변을 받을 수 있는 AI 챗봇이 아닐까’ 기대됩니다!
이외에도 지속적으로 보안 개선에 도움을 주는 Explain this vulnerability나 이슈를 요약해 주는 Issue summaries, 과거 추세를 기반으로 가치 흐름 지표를 예측하는 Value streams forecasting 등 개발 분야뿐만 아니라 보안, 운영 등 다양한 분야에서 사용 가능한 기능들이 있었습니다.
이러한 기능들을 잘 사용한다면 회사의 업무 효율을 크게 향상할 수 있겠습니다.
세션 2. 코드 리뷰의 중요성 및 자동화 방안
세션 2에서는 ‘코드 리뷰를 왜, 어떻게 해야 하는지’를 알아보고, 코드 리뷰 자동화 방안을 시연했는데요. 신철호 이사는 코드 리뷰를 해야 하는 이유를 다음과 같이 제시했습니다.
- 동기 부여 - 리뷰어에게 피해 주지 않도록 프로의식을 발휘
- 지식 공유 - 양방향 지식 공유로 조직 전체의 기술력 향상
- 오류 발견 - 오류의 사전 발견 가능성 상승
이어 신 이사는 코드 리뷰에서 체크할 포인트로 다음 내용을 소개했는데요.
이는 코드 형식, 테스트, 문서화, 구현, API 정의 5 단계로 구분했습니다. 위 그림에서 보다시피 구간별로 체크해야 할 사항들이 피라미드 형태로 나뉘어 있는데요.
자동화 가능한 윗부분과 리뷰에 집중할 아랫부분이 나뉘어 있습니다. 해당 피라미드는 2022년에 트위터에 올라온 코드 리뷰 소개인데요. AI를 활용한다면 더 아랫부분까지 자동화가 가능할 것으로 기대됩니다.
세션 2에서는 좋은 개발 문화가 있는 회사의 코드 리뷰 방식도 살펴봤습니다.
대표적으로 구글, 마이크로소프트(MS)가 있고요. 전 국내 기업 중 위메프와 토스페이먼츠, 뱅크샐러드와 우아한 형제들이 인상 깊었습니다.
먼저 구글의 리뷰 문화를 알아보겠습니다.
구글의 리뷰 문화를 요약하자면
- 모든 코드를
- 사내 정책에 맞는 룰(rule)에 맞춰서
- 최대한 작게, 자주
- 4시간 이내로
리뷰합니다.
MS는 어떨까요?
MS는 하루에 한 번 이상 리뷰하는 사람이 39%나 된다고 하는군요.
구글과 MS 사례의 특징은 ‘코드 리뷰 활동이 정말 많다는 것’입니다.
다시 한번 코드 리뷰 자동화의 필요성을 느꼈습니다.
이번엔 국내 기업을 알아보도록 하겠습니다.
먼저 뱅크샐러드입니다.