[re:Invent 2024] Amazon Q 업무 생산성 향상하기 – 1
“개발자 여러분, 17년 경력의 AWS 전문가가 24시간 여러분 곁에서 조언해준다면 어떨까요?” 이제 밤새 작성한 코드의 보안 취약점을 AI가 순식간에 찾아내고 수정까지 제안해줄 수 있습니다. 단순 반복 작업에 시간을 낭비하지 않고, 창의적인 문제 해결에만 집중할 수 있습니다.”
Amazon Q는 클라우드 환경에서 17년 이상 AWS를 구축한 경험을 바탕으로 AWS 서비스, 모범사례 및 솔루션의 전문가 역할을 하는 생성형 AI 기반 똑똑한 업무용 어시스턴트입니다. AI 어시스턴트란 인공지능 기술을 기반으로 하여 사용자의 명령이나 질문에 답변하고, 다양한 작업을 수행할 수 있는 소프트웨어입니다. 더 나아가 Amazon Q는 시작하기에 앞서 AWS Builder ID를 통해서 서비스에 대한 액세스를 제공하기도 하지만 Amazon Q Business의 경우 AWS IAM Identity Center를 통해 신뢰할 수 있는 ID만 활용하게 하는 등 개인 정보 보호 계층으로 사용할 수 있습니다.
Amazon Q 제품은 크게 두가지의 번들로 구성되어 있습니다:
- Amazon Q Business
- Amazon Q Developer
먼저, Amazon Q Business는 기업 내 모든 사람이 생성형 AI에 안전하게 접근할 수 있게 하고 직원의 업무를 더 빨리 완료할 수 있도록 생산성 향상에 도움을 줍니다. 직원들은 영어, 한국어 등 자연어를 사용하여 지식 정보를 얻거나 지원을 요청하여 콘텐츠 생성, 워크플로를 자동화하는 앱을 만들 수 있습니다.
Business Lite와 Business Pro로 구성되어 있으며, Lite를 사용할 경우 사용자가 질문을 하고 기업 데이터 소스에서 답변을 얻을 수 있는 Amazon Q Business의 Q&A 기능에 대한 엑세스를 포함되어 있습니다. Pro는 생성형 BI 어시스턴트인 Amazon QuickSight에 대한 엑세스를 포함하여 문제 해결, 콘텐츠 생성, 테이터에서 통찰력 찾기에 도움이 됩니다. Amazon Q Bussiness는 후속편인 2편에서 자세히 다루도록 하겠습니다.
다음으로, Amazon Q Developer Pro는 개발자와 IT 전문가가 애플리케이션 빌드, 최적화하고 운영하는 방식을 질의할 수 있도록 구성되어 있습니다. IDE의 Amazon Q와 AWS Console에서 사용되는 Amazon Q, Amazon Codecatalyst에서 사용하실 수 있습니다.
Amazon Q Developer 시작하기
첫번째, IDE(Integrated Development Environment, 통합 개발 환경)에서 Amazon Q 사용하는 방법입니다. 액세스 할 수 있는 기능은 IDE에 따라 다릅니다. JetBrainsIDE, Visual Studio Code, Visual Studio, AWS 코딩 환경을 사용할 수 있으며, 다양한 특징과 기능을 통해 광범위한 프로그래밍 언어를 지원합니다. 인라인 코드 제안, 코드 변환, 보안 스캔 및 자동 코드 수정에 지원되는 언어 및 버전은 Java, Python, JavaScript, TypeScript, C#, Go, PHP, Rust, Kotlin, SQL, C++, C가 있습니다. 가장 많이 지원되는 코드형 인프라(IaC) 언어는 JSON(AWS CloudFormation), YAML(AWS CloudFormation), HCL(Terraform), CDK(TypeScript, Python)이고, Ruby, Shell, Scala의 코드 생성도 지원합니다. 자세한 사항은 IDE 환경에서 지원하는 Amazon Q 언어를 확인해주세요.
Amazon Q Developer IDE 중 Visual Studio Code 사용 방법에 대해서 간단히 소개합니다. Amazon Q에서 지원하는 Visual Studio Code의 최소 버전은 1.85.0이며, 가장 먼저 [그림 3] Visual Studio Code용 Amazon Q 다운로드를 실행해야 합니다. 혹은 Visual Studio를 사용하신다면 [그림 4]와 Visual Studio Extensions에서 Amazon Q를 검색하셔도 됩니다.
설치가 완료되었다면 Visual Studio에서 Amazon Q를 사용하기 위한 인증을 진행합니다. Toolkit for Visual Studio에서 AWS 계정에 연결하려면 다음 절차를 완료하여 AWS Toolkit 사용자 인터페이스(Continue UI) 시작하기를 엽니다. AWS Builder ID 또는 Amazon Q Developer Pro 구독을 통해 IAM Identity Center로 무료로 인증할 수 있습니다. 다음 예제는 AWS Builder ID를 활용한 인증 방법입니다.
AWS Toolkit 중 Amazon Q Developer 인증 옵션을 확장합니다. AWS Builder ID 인경우 ‘내 개인 계정으로 Amazon Q Developer 사용’ 섹션에서 ‘가입’ 또는 ‘로그인’ 버튼을 선택하여 AWS Builder ID로 로그인 대화상자를 엽니다. 기본 웹 브라우저를 통해 [그림 7]과 같이 AWS Authorize 요청 사이트를 인증하여 브라우저 인증을 합니다. 또한, Amazon Q Developer Pro license를 사용하실 경우 IAM Identity Center 자격 증명을 추가하거나 업데이트하고 프로필 유형, 프로필 이름, 시작 URL을 입력하여 인증합니다.
이제, Amazon Q Developer를 사용하기 위한 준비가 모두 완료되었습니다. 다음은 Amazon Q Developer Agent 기능을 통해서 문서 생성, 코드 검토 및 단위 테스트를 해보도록 하겠습니다. Amazon Q의 경우 아직 한국어 인식을 할 수 없기 때문에 모든 문장을 영어로 작성해야 하는 이슈가 아직 있습니다. 내년 상반기를 통해 한국어 인식에 대한 소식이 있다면 블로그에 빠르게 업데이트 하도록 하겠습니다.
Amazon Q Developer에 주요 활용을 살펴보면 사용자와의 채팅 환경을 통해서 기존 코드를 기반으로 실사간 코드 제안을 생성하거나, 단일 프롬프트(/dev)에서 새 프로젝트를 Bootstrap을 합니다. 만약 Java 애플리케이션을 업그레이트 및 변환하는 과정이 필요하다면 변환 기능(/transform)을 통해서 자동화 하실 수도 있습니다. 이 밖에도 개인 리포지토리에서 맞춤형 코드 추천을 안전하게 생성하고, 간단히 프롬프트로 AWS 계정에서 실행되는 리소스를 빠르게 파악할 수 있는 에이전트 기능도 포함되어 있습니다.
AWS re:Invent 2024 이후 Amazon Q Developer 에이전트 기능은 점차 확장되고 있는데, 이번 주요 업데이트 사항은 다음과 같습니다.
- 코드 베이스의 향상된 문서화(
/doc
) - 보안 및 코드 품질 문제를 감지하고 해결하기 위한 코드 리뷰 지원(
/review
) - 소프트웨어 개발 수명 주기 전반에 걸쳐 단위 테스트를 자동으로 생성하고 테스트(
/test
)
1. 코드 베이스의 향상된 문서화
코드가 있는 폴더 안이라면 코드 베이스를 기반으로 README.md 및 데이터 흐름 다이어그램과 같은 포괄적인 문서를 생성할 수 있습니다. 개발자는 코드 설계 및 작성에 집중하더라도 문서화 작업을 Amazon Q Developer가 작성해주어 소프트웨어 엔지니어링 모범 사례에 따라 품질을 유지하여 자동으로 구성할 수 있습니다.
/doc
를 시작하기 위해 해당 폴더로 접근한 뒤 Visual Studio Extension인 Amazon Q를 클릭 한 뒤 채팅 패널을 열고 [그림 8]과 같이 /doc를 입력합니다. 이제 프로젝트에서 README를 만들거나 기존 README를 업데이트 할 수 있습니다. Amazon Q는 폴더 안에 소스 파일을 스캔, 지식 그래프 생성, 소스 파일 요약하여 문서를 생성합니다. 완료가 되면 README 파일을 체크 아웃하고 Accept를 선택하여 코드 편집기에서 이 문서를 사용합니다.
2. 코드 품질 문제를 탐지하고 해결하기 위한 코드 검토 지원
중복 코드, 장황한 매소드, 과다한 매개변수, 안티 패턴, 명명 규칙 위반, 잠재적 버그, 논리적 오류, 잘못된 문서화 또는 보안 취약성을 IDE Chat 또는 GitLab 리포지토리 전반에서 AWS 모범사례와 광범위한 코드 품질 문제를 식별하고 해결 할 수 있습니다.
[그림 11]과 같이 Amazon Q 검토에서 생성된 코드 문제는 보안 또는 품질 문제가 감지되었음을 나타냅니다. 패널 상단에 코드 문제 이름 및 심각도, 코드 문제 설명, CWE(Common Weakness Enumeration), 디렉토리 라이브러리, 파일 경로가 작성되어 있습니다. 문제 있는 코드의 심각도를 측정하는 감지기는 CVSS(Common Vulnerability Scoring System)를 이용하여 악의적인 행위자가 시스템을 성공적으로 공격하는데 필요한 액세스 수준과 노력 수준에 따라 심각도를 결정하게 됩니다.
아래 [그림 12]와 같이 이 자동화된 코드 검토 프로세스를 사용하면 개발팀의 상당한 시간을 절약하고 생산성을 개선합니다. 개발 팀 내부의 인원이 모듈화 된 개발 코드 또한 코드 품질의 일관성을 유지하여 궁극적으로는 보안 표준 및 모범 사례를 준수하면서 더 빠르게 기능을 릴리스 할 수 있도록 해줍니다.
Amazon Q Developer는 프로젝트 또는 선택한 특정 파일을 코드 커밋 하기 전에 문제를 식별하고, 식별된 문제에 따라 해결할 수 있는 결과 목록을 제공하여, 수정된 코드 라인을 인라인으로 생성합니다. 완료되면 코드 문제에 대한 제안된 코드 수정을 확인하고 Accept Fix를 선택하여 코드 편집기에 변경 사항을 적용합니다.
3. 단위 테스트를 자동으로 생성하고 향상된 테스트 커버리지 제공
프로젝트 파일에 대한 식별부터 단위 테스트 작성까지 테스트 프로세스를 자동화 할 수 있습니다. /test를 통해서 단위 테스트 워크플로를 시작할 수 있습니다. [그림 13]과 같이 /test를 실행하면 에이전트는 프로젝트 구조, 기존 코드, 작업 공간의 대상 파일을 사용하여 적절한 테스트 케이스를 식별합니다. 식별된 테스트 케이스를 기반으로 단위 테스트를 생성합니다.
Amazon Q Developer는 특정 소스 파일에서 단위 테스트를 생성하고, 관련 테스트 파일에 배치하고, 자체 디버깅 테스트 오류를 수행합니다. 완료되면 View diff를 선택하여 코드 편집기에서 생성된 단위 테스트를 체크아웃합니다. 그런 다음 생성된 단위 테스트를 수락하거나 거부할 수 있습니다.
Amazon Q는 최종 생성된 테스트에 대한 diff를 제공하며, 제안된 테스트를 수락하게 되면 현재 폴더 위치 내 test라는 폴더가 생성됩니다. 새 테스트 파일은 원래 파일의 이름을 따서 명명되며, test 사용중인 프레임워크에 따라 접두사나 접미사가 추가되고 테스트 디렉토리에 배치됩니다. 만약 테스트 파일이 이미 있으면 새 단위 테스트를 기존 파일에 추가합니다.
마지막으로
이번 포스팅에서는 Amazon Q의 기본 개념과 Amazon Q Developer를 중심으로 살펴보았습니다. 강력한 AI 기반 개발 도구인 Amazon Q가 어떻게 코드 작성, 문서화, 보안 검사 등 개발 프로세스 전반을 지원하는지 소개했습니다. IDE 통합부터 주요 기능인 /doc, /review, /test 명령어 사용법까지 실제 활용 방법을 상세히 다뤘습니다.
하지만 이는 Amazon Q의 기능 중 일부에 불과합니다. 다음 편에서는 Amazon Q Business에 대해 더 자세히 알아보고, 기업 환경에서 Amazon Q를 활용하는 방법과 그 이점을 살펴볼 예정입니다. 또한, Amazon Q의 다양한 번들과 그 특징들을 차근차근 소개해 나갈 것입니다.
Amazon Q의 무한한 가능성과 함께 여러분의 개발 여정이 더욱 흥미진진해질 것입니다. 다음 편에서 더 깊이 있는 내용으로 찾아뵙겠습니다. 많은 관심과 기대 부탁드립니다. 감사합니다.
최신 댓글