오늘날 많은 IT 기업이 개발 업무의 생산성과 효율성을 높이며 시장에 더 나은 제품을 빠르게 선보이려고 애씁니다. 이로써 기업은 고객에게 더 큰 가치를 제공하려 하는데요. 특히 최근 인공지능(AI)과 머신러닝(ML)이 기록적인 속도로 발전하면서 개발 업무의 생산성과 효율성은 유례없는 방식으로 급격히 향상되고 있죠. 이는 다양한 업종의 비즈니스 운영 방식을 혁신하기도 합니다.

AI와 ML 도입은 이제 선택이 아닌 필수가 되고 있는데요. GitLab의 ‘2023 글로벌 DevSecOps 보고서 - 소프트웨어 개발의 AI 현황’에 따르면, 응답자의 83%가 ‘소프트웨어 개발 프로세스에 AI를 구현하는 일은 (업계에서) 뒤처지지 않으려면 필수적’이라고 답했습니다. 이 보고서에서 개발, 보안, 운영 전문가들은 다음 9가지 방식으로 DevOps 워크플로에 AI를 통합한다고 밝혔는데요. 이는 DevOps 워크플로에 가장 많이 활용하는 AI 기능이기도 하죠. 하나하나 살펴보겠습니다.

1. 챗봇에 질문하기

‘GitLab Duo Chat’과 같은 AI 기반 챗봇에 질문하면 관련** 코드, 텍스트, 문서에 기반해 답변**을 빠르게 얻을 수 있습니다. 이때 개발자는 업무를 수행할 때 사용하는 IDE나 플랫폼에서 빠져나와 브라우저를 열고 웹을 검색하지 않아도 되고요. 대신 기본으로 제공된 챗봇에 질문하면 업무 흐름을 방해하지 않으면서 간결한 답변을 얻을 수 있죠. 이로써 컨텍스트 스위칭(context switching) 시간도 줄일 수 있습니다.

2. 코드 테스트 제안받기

개발자는 GitLab의 Merge Request(MR)에서 AI로 코드의 테스트를 제안받아 테스트 파일을 생성할 수 있습니다. 이로써 테스트를 지속적으로 개선하고, 변경 사항의 적절한 테스트 커버리지를 확보할 수 있고요. 테스트를 계획하고 준비하는 데 걸리는 시간도 단축할 수 있습니다.

3. 코드 변경 사항 요약하기

GitLab에 커밋하거나 MR을 만들 때 AI를 사용하여 코드 변경 사항의 요약 정보를 생성할 수 있습니다. 개발자는 변경 사항을 커밋하고, 코드 리뷰를 요청하는 시간을 줄일 수 있고요. 코드 리뷰어도 코드 변경 사항의 다양한 정보를 제공받아 리뷰 시간을 절약하고 더 나은 피드백을 할 수 있습니다.

4. 코드 리뷰어 제안받기

코드 리뷰는 중요하지만 때로는 답답하고 시간이 오래 걸리는 프로세스입니다. 특히 적절한 리뷰어를 찾지 못할 때 문제는 더 심각하죠. AI는 코드 변경 사항과 프로젝트 기여도를 보고, 고품질 피드백을 빠르게 제공하며 잠재적 문제를 포착하는 코드 리뷰어를 자동으로 제안할 수 있습니다. 또한, 제안한 리뷰어가 응답하지 않거나 리뷰가 불충분하면 다른 사람을 제안하여 시간을 절약할 수 있습니다.

5. 토론 요약하기

여기서 토론이란 에픽, 이슈, MR, 커밋, 스니펫 내용을 의미합니다.

AI를 사용하면 토론에 나온 모든 의견을 요약할 수 있습니다. 이로써 모든 사람이 같은 정보와 히스토리를 공유하고 프로젝트의 상태와 다음 단계를 효율적으로 이해하여 더 나은 방식으로 협업하며, 더 빠른 결과를 얻을 수 있습니다.

6. 코드 제안하기

AI 기반 코드 제안 기능은 개발자가 개발하는 동안 IDE에서 코드를 제안받아 이를 더 효율적으로 작성하도록 돕습니다. 그 결과, 개발자의 업무 생산성은 극대화될 수 있죠. AI를 사용하면 코드 블록을 완성하고, 함수 선언을 위한 로직을 정의하고 생성하며, 단위 테스트를 만들고, 정규식 패턴과 같은 일반적인 코드를 제안받을 수 있습니다. 이러한 기능은 개발 업무의 효율성과 생산성을 확실히 높일 수 있죠. 그러나 개발자의 모든 업무 효율성을 높이는 데 한계가 있습니다. 아직도 개발자 시간의 25%만 코드 개발에 쓰이고 있다고 합니다(GitLab의 2023년 6월 설문조사 참고).

7. 코드 동작 방식 설명하기

개발자와 DevOps 팀은 AI를 사용하여 코드 블록이 수행하는 기능과 동작 방식 설명을 워크플로 안에서 빠르게 얻을 수 있습니다. 이는 다른 사람이 만들었거나 익숙하지 않은 언어로 작성된 코드를 이해하려는 개발자에게 특히 유용합니다. 2023 소프트웨어 개발의 AI 현황 보고서에 따르면, 개발자는 업무 시간 중 14%(주 40시간 근무 중 5.6시간)를 코드 기능을 이해하는 데 사용하는데요. 여기서 상당한 시간을 절약할 수 있습니다.

8. 취약점 요약하고 해결 방법 제안하기

AI를 활용하면 새로 발견한 보안 취약점과 해결 방법을 더 간단하고, 더 효율적으로 파악할 수 있습니다. AI가 생성한 취약점 요약은 개발자와 보안 전문가가 취약점, 악용 방법, 해결 방법을 이해하는 데 도움이 됩니다. 일부 AI 기반 도구는 샘플 코드와 함께 완화 방법을 제공합니다. 이는 팀이 더 적은 노력으로 잠재적인 보안 위협과 보안 위험을 피하는 데 큰 도움이 될 수 있습니다.

9. 생산성 지표 예측하기

소프트웨어 리더는 AI를 사용하여 구간별 소요 시간, 배포 빈도와 같은 생산성 지표를 예측할 수 있습니다. 이로써 소프트웨어 개발 라이프사이클 전반의 추세와 이상 징후를 파악할 수 있죠. 이러한 AI 기반 인사이트는 팀의 효율성을 향상하고 DevSecOps 프로세스를 개선하는 데 도움이 될 수 있습니다.

개인정보 보호와 보안 문제 방지

소프트웨어 개발 프로세스에 AI를 활용하면 많은 이점이 있습니다. 그러나 일반적인 문제와 장애물, 잠재적인 위험을 인식하는 것도 중요합니다.

GitLab AI 보고서에 따르면, 응답자들은 소프트웨어 개발 라이프사이클에 AI를 구현할 때 직면했거나, 직면할 걸로 예상되는 일반적인 문제로 개인정보 보호, 소프트웨어 보안, 지식재산권(IP)을 꼽았습니다. 확인된 문제 가운데 개인정보 보호와 데이터 보안 우려(37%)가 가장 큰 비중을 차지했고, AI를 사용하여 구축된 소프트웨어의 보안 취약점(35%)이 그 뒤를 이었습니다. 전체 응답자의 약 3분의 1(32%)은 저작권과 IP 문제를 지적했습니다.

팀에서 사용할 AI 기반 도구를 결정할 때 고려할 사항은 다음과 같습니다.

  • 어떤 사용 사례에 어떤 대규모 언어 모델(LLM)을 사용할지 선택
  • AI 기능에 입력되는 IP를 처리하거나 보호하는 방법
  • AI 기능에서 생성된 결과물의 소유권자

더 많은 인사이트를 얻으려면, AI 도구를 도입하기 전에 물어봐야 할 7가지 질문을 읽어보세요.

GitLab Duo 알아보기

코드 설명부터 테스트 제안까지 위에서 언급한 모든 기능은 GitLab에 내장된 AI 기능 모음인 GitLab Duo로 이용할 수 있습니다. GitLab Duo는 소프트웨어 개발 라이프사이클의 모든 단계에서 AI 지원 워크플로를 단일 애플리케이션으로 제공하여 DevSecOps 팀이 효율성을 높이고, 배포 주기를 단축하며, 컨텍스트 스위칭을 줄이도록 지원합니다. GitLab Duo의 대표 기능은 아래와 같습니다.

  • 코드 제안(Code Suggestions): 이 기능은 C++, C#, Go, Java, JavaScript, Python, PHP, Ruby, Rust, Scala, Kotlin, TypeScript를 포함해 15개 언어를 제공합니다. GitLab Editor 확장 프로그램은 IDE 마켓플레이스에서 찾을 수 있으며 VS Code, Visual Studio, JetBrains의 IDE 제품군, Neovim에서 모두 지원합니다. 물론 코드 제안은 GitLab의 웹 IDE에서도 사용할 수 있어 GitLab Duo를 빠르게 시작하고 실행할 수 있습니다. 이 기능은 GitLab 클라우드 인프라로 보안 연결을 통해 자체 관리형 GitLab 인스턴스에서 지원합니다.

GitLab Duo Code Suggestions 영상. 출처=GitLab

  • 코드 지원(Code Assistance): 이 기능은 Chat을 활용하여 워크스페이스의 코드 동작을 이해하는 데 도움을 줍니다. 또한 코드 작성, 코드 설명, 테스트 제안, 리팩토링 기능을 제공하며, Chat을 사용하여 대화식으로 코드를 작성하도록 지원합니다.

    GitLab Duo Chat 화면. 출처=GitLab | 인포그랩 GitLab
    GitLab Duo Chat 화면. 출처=GitLab

  • 이슈와 에픽 관리(Issue and Epic Management): 이 기능은 짧은 시간 안에 이슈를 요약하고, 댓글을 이슈 설명으로 바꾸거나, 대규모 에픽에서 특정 정보를 쉽게 추출합니다. 에픽 또는 이슈의 콘텐츠를 주제로 무엇이든 질문하면 원하는 답을 얻을 수 있습니다.

    GitLab Duo 이슈, 에픽 관리 화면. 출처=GitLab | 인포그랩 GitLab
    GitLab Duo 이슈, 에픽 관리 화면. 출처=GitLab

  • 온보딩과 학습 편의성(Onboarding and Learning made simple): GitLab으로 처음 온보딩하든, 이미 전문가이든 상관없이 Chat을 이용하여 GitLab 사용법을 간편하게 배울 수 있습니다.

    GitLab Duo Chat 화면. 출처=GitLab | 인포그랩 GitLab
    GitLab Duo Chat 화면. 출처=GitLab

맺음말

AI와 ML 기술의 발전은 현대 사회의 소프트웨어 개발 업무에 큰 변화를 불러오고 있습니다. AI 기반 도구와 기능은 개발 업무의 생산성과 효율성을 향상하며, 다양한 업무에서 빠르고 정확한 결정을 내리도록 지원합니다. 이에 개발 프로세스에 AI를 도입하는 건 이제 필수가 되고 있습니다. 고객에게 큰 가치를 전달하고 경쟁 우위를 높이려면 AI와 ML의 진화 과정을 지속적으로 주시해야 합니다. 또 이러한 기술을 효과적으로 활용하여 미래 비즈니스에 대비해야 합니다.

인포그랩은 GitLab 및 DevOps에 대한 맞춤 기술 지원을 제공합니다. GitLab(Omnibus/Cloud Native Hybrid) 구축 관련 지원이 필요하시면 문의하기 로 연락 주십시오.

이 포스트는 GitLab의 동의를 받아 공식 블로그의 영문 포스트를 우리말로 번역하고 내용을 새롭게 추가했습니다.

참고 자료

  1. How AI helps DevOps teams improve productivity
  2. Say hello to GitLab Duo Chat: A new level of AI-assisted productivity
  3. GitLab Duo Code Suggestions is generally available
  4. GitLab Duo Pro combines Code Suggestions, Chat, and organizational controls