Amazon Web Services 한국 블로그
Amazon Q와 GitLab Duo 통합 기능 출시
Amazon Q Developer는 개발자의 작업 환경에 광범위한 생성형 AI 기능을 통합하여 기존 개발 워크플로를 혁신했습니다. 이와 같은 원활한 통합은 집중력을 유지하는 동시에 코딩 이외의 광범위한 개발 작업을 가속화하여 생산성을 향상시키는 데 도움이 됩니다.
방대한 개발자 커뮤니티를 보유한 GitLab은 인기 있는 DevSecOps 플랫폼으로, 많은 개발 팀이 이 플랫폼에서 프로젝트를 빌드하고 협업하면서 시간을 할애합니다. 이것이 바로 GitLab Duo with Amazon Q를 소개하는 게 매우 기대되는 이유입니다. GitLab Duo with Amazon Q는 GitLab Duo를 사용해서 GitLab에 Amazon Q Developer 에이전트 기능의 우수성을 제공하여 AI 기반 DevSecOps를 지원하는 통합 개발 환경으로 GitLab을 변환시키는 새로운 통합입니다. GitLab Duo with Amazon Q는 AI 에이전트를 활용하여 Java 8 및 11을 위한 새로운 기능 개발 및 코드베이스 업그레이드와 같은 복잡한 다단계 작업을 지원합니다. 또한 익숙한 GitLab 플랫폼 내에서 코드 검토 및 유닛 테스트를 위한 향상된 기능을 모두 제공합니다.
GitLab의 빠른 작업을 통해 Amazon Q Developer와 상호 작용하는 방법은 간단합니다. 문제 설명, 일반 주석 또는 병합 요청 주석 안에 직접 /q
를 입력하면 쉽게 일상 작업을 가속화하거나 더 복잡한 워크플로를 처리할 수 있습니다.
잠깐 살펴보겠습니다.
기능 개발
먼저 새로운 기능을 개발하거나 기존 기능을 개선할 때 GitLab 환경에서 Amazon Q Developer를 사용하는 것이 얼마나 간단한지 보여 드리겠습니다.
웹 애플리케이션에서 작업 중이고 전체 등록 흐름을 생성하는 작업을 배정받았다고 가정해 보겠습니다. /q dev
명령을 주석으로 추가하여 Amazon Q Developer에 문제의 내용을 기반으로 전체 코드를 생성하도록 요청할 수 있습니다.
Amazon Q Developer는 기존 파일에 대한 업데이트 형태이든 완전히 새로운 파일 형태이든 관계없이 전체 코드베이스를 분석하고 새로운 코드를 생성합니다. 작업이 완료되면 자동으로 병합 요청을 생성하고, 검토할 수 있도록 링크가 포함된 항목을 활동 기록에 추가합니다.
병합 요청 검토 페이지에서 두 가지 흥미로운 점을 확인할 수 있습니다. 첫 번째는 Amazon Q Developer에서 요청에 대한 컨텍스트를 제공하는 주석과 함께 사용자가 계속 반복하려는 경우 변경 요청 방법에 대한 지침을 추가했다는 것입니다. 두 번째는 Amazon Q Developer에서 생성된 코드에 타사 소스 자료가 포함되어 있다고 경고하는 후속 주석입니다. Amazon Q Developer는 다운로드하여 원본 코드를 찾아보고 코드베이스에 포함시킬 수 있는지 여부를 직접 결정할 수 있는 파일을 제공합니다. 따라서 추적성 및 감사를 위한 기록을 보관하면서 책임 있게 오픈 소스를 쉽게 사용할 수 있습니다.
진행하기 전에 다른 병합 요청과 마찬가지로 코드를 살펴보고 인라인 주석을 작성할 수 있습니다. 그런 다음 주석을 기반으로 코드를 변경하고 결과에 완전히 만족할 때까지 계속 반복하도록 Amazon Q Developer에 지시할 수 있습니다. 회사의 코딩 표준에 코드의 주요 작업에 대한 로깅을 구현하기 위한 요구 사항이 포함되어 있다고 가정해 보겠습니다. 안타깝게도 이는 /q dev
명령을 실행하기 전의 문제 설명에 대한 초기 요구 사항에 포함되지 않았습니다. 하지만 Amazon Q Developer를 사용하여 검토 프로세스 중에 해당 코드를 원활하게 추가할 수 있습니다.
이렇게 하려면 변경 사항 탭으로 이동해서 관련 코드 줄을 찾아 개발자의 병합 요청을 검토할 때처럼 인라인 주석을 추가하세요. 예를 들어 39행 아래에는 등록 API를 직접 호출할 때 오류를 처리하는 코드의 일부를 강조하기 위해 “add logging”이라는 주석이 추가됩니다. 그 아래에는 /q dev
만 텍스트로 사용하는 또 다른 주석이 추가됩니다. 이 독립형 주석은 Amazon Q Developer를 간접 호출하는 빠른 작업을 트리거하므로 별도로 유지해야 합니다. 그러면 Amazon Q Developer에서 제공된 모든 주석을 기반으로 새로운 수정 버전을 생성합니다.
참고로 /q dev
명령은 주석이 지원되는 GitLab의 어느 곳에서나 실행할 수 있습니다. 39행에 추가하는 것이 편리하긴 하겠지만, 개요 페이지에서 주석으로 명령을 실행하거나 병합 요청 페이지의 다른 코드 줄에 대해 명령을 실행해도 결과는 동일할 것입니다.
작업이 완료되면 Amazon Q Developer가 병합 요청 기록에 다른 주석을 추가하여 사용자에게 알립니다. 또한 Amazon Q Developer가 생성된 콘텐츠에 추가 정보를 제공하는 오픈 소스 코드가 포함되어 있음을 알리므로 병합을 수락하기 전에 검토할 수 있습니다. 자세히 검사하면 Amazon Q Developer에서 로거 라이브러리를 사용한 것이 분명하며 요청 내용을 고려하면 완벽하게 의미가 있습니다.
코드를 검토해 보면 Amazon Q Developer가 작업 발생 위치에 직접 호출을 추가했을 뿐만 아니라 컨텍스트를 사용하여 정보 및 경고와 같은 관련 로그 수준을 추가했다는 사실이 인상적입니다. 또한 빌드가 손상되지 않도록 다른 위치의 코드도 수정했습니다. 예를 들어 파일 맨 위에 import 문을 추가하고 로거 변수를 시작했습니다.
이 새로운 개발 흐름을 사용하면 Amazon Q Developer를 통해 GitLab 환경에서 편리하게 작업을 완료할 수 있으므로 요구 사항을 코드로 훨씬 빠르게 이행할 수 있습니다. 하지만 병합 요청을 제출한 후에는 코드 검토를 수행할 차례입니다. 다시 말하지만, GitLab Duo with Amazon Q Developer를 사용하면 해당 프로세스의 속도를 높이고 품질을 개선할 수 있습니다.
코드 검토 수행
다른 코드베이스(이 경우에는 Java 애플리케이션)로 작업해 보겠습니다. 보조 코드 검토 프로세스를 시작하려면 병합 요청 개요 페이지에서 /q review
텍스트와 함께 주석을 제출하면 됩니다. Amazon Q Developer에서 병합 검토를 시작했음을 알리는 자동 주석을 기록에 추가합니다. Amazon Q Developer는 모든 변경 사항을 검토하여 보안 취약성, 모범 사례를 따르지 않는 코드와 같은 품질 문제 및 코드의 기타 잠재적 문제를 찾습니다.
완료되면 발견된 문제 코드의 스니펫, 문제에 대한 설명, 심각도 등급을 포함하는 주석으로 각 조사 결과가 추가됩니다.
그런 다음 한 단계 더 나아가 Amazon Q Developer에 수정을 요청할 수 있습니다! /q fix
명령을 입력하여 조사 결과 주석에 응답하면 문제에 대한 수정 사항을 생성하고 있다는 메시지가 표시되며, 이를 통해 동일한 스레드에서 검토 가능한 해결 방법으로 후속 조치를 취합니다. 따라서 변경 사항에서 어떻게 달라졌는지 확인할 수 있으며 변경 사항을 수락하고 커밋할 수 있습니다.
레거시 코드 업그레이드
GitLab Duo with Amazon Q Developer는 새로운 코드 및 기능을 지원할 뿐만 아니라 Java 8 또는 11에서 Java 17로의 코드베이스 마이그레이션을 자동화하고 가속화하도록 도울 수도 있습니다. 먼저 새로운 문제를 생성하고 “프로젝트를 Java 17로 업그레이드”와 같은 설명이 포함된 제목을 지정합니다. 그런 다음 설명 필드에 /q transform
명령을 추가합니다.
사용자가 문제를 생성하면 Amazon Q Developer에서 이전과 동일한 패턴을 따르고 문제 기록에 주석을 추가하여 코드베이스를 마이그레이션하는 중임을 알립니다. 이 주석은 Amazon Q Developer가 완료된 후 업데이트되며 앞서 살펴본 대로 병합 요청에 대한 링크를 포함합니다. 또한 기다리는 동안 검토할 수 있는 마이그레이션 계획도 생성됩니다. 계획에는 세부 정보와 함께 취해야 할 조치의 단계별 목록(축소 가능), 자세히 알아볼 수 있는 링크가 포함되어 있습니다.
생성된 병합 요청의 세부 사항도 풍부합니다. 여기에는 마이그레이션된 코드 행 수, 총 소요 시간 등과 같은 일반적인 통계가 포함됩니다. 또한 다양한 섹션으로 이동하는 데 사용할 수 있는 링크가 포함된 전체 보고서가 있으므로 빌드 로그 요약을 읽고, 종속성의 변경 사항을 검토하고, 모든 파일의 변경 사항을 검사하는 등의 작업을 수행할 수 있습니다.
코드를 검토할 준비가 되면 다른 병합 요청과 마찬가지로 변경 사항을 일부 또는 전체적으로 수락할 수 있습니다.
결론
GitLab Duo with Amazon Q는 가장 포괄적인 DevSecOps 플랫폼과 소프트웨어 개발을 위해 가장 유능한 생성형 AI 기반 어시스턴트를 결합합니다. GitLab Duo와 Amazon Q는 함께 개발자에게 익숙한 GitLab 환경 내에서 빠르게 기능을 개발하고 워크로드를 변환하는 새로운 기능을 통해 원활한 개발자 경험을 제공합니다.
알아야 할 사항
- 시작하기 – GitLab 자체 관리형 고객은 Ultimate 구독을 통해 GitLab Duo with Amazon Q를 평가판으로 사용할 수 있습니다. 시작하는 방법에 대한 내용을 확인해서 자세히 알아보세요.
- 가용성 – Ultimate 티어 구독을 보유한 모든 GitLab 자체 관리형 고객이 현재 GitLab Duo with Amazon Q를 평가판으로 사용할 수 있습니다.