[reinvent 2024] 생성형 AI 기반 어시스턴트를 통한 코드: Amazon Q 개발자

Summary

Amazon Q Developer는 소프트웨어 개발 수명 주기 전반에 걸쳐 AWS 애플리케이션을 이해, 구축, 확장 및 운영하는 데 도움이 되는 제너레이티브 AI 기반 어시스턴트입니다. 이 획기적인 세션에서는 Amazon Q Developer의 이점, 기능, 일반적인 사용 사례, 기술 개념에 대해 알아보세요. 대화형 및 비동기식 환경에서 Amazon Q Developer를 사용하여 애플리케이션과 채팅하고 코드를 사용자 지정 및 변환하는 아키텍처를 검토합니다.


리인벤트 2024 테크 블로그의 더 많은 글이 보고 싶다면?

Tech Blog

AWS re:Invent 2024 Tech Blog written by MegazoneCloud

Overview

  • Title: Code with a generative AI–powered assistant: Amazon Q Developer
  • Date: 2024년 12월 4일(수)
  • Venue: Mandalay Bay | Level 3 South | South Seas A
  • Speaker: Shankar Ganesh Palghat Swaminathan(Technical Instructor, Amazon)
  • Industry: –

들어가며

AWS의 Amazon Q Developer 관련 세션을 통해 최신 AWS의 AI 기반 코드 개발 보조 도구에 대해 알아보고 싶어서 신청하게 되었습니다. Amazon Q Developer는 개발자가 보다 효율적이고 안전하게 코드를 작성하고 최적화할 수 있도록 돕는 Generative AI 도구로 알고 있습니다. 이번 세션에서는 특히 개발 생산성 향상, 보안 개선, 레거시 코드 변환 등 실무에 바로 적용 가능한 내용을 중점적으로 다룬다고 하며, 이를 통해 Amazon Q가 실제 개발 환경에서 어떻게 활용될 수 있는지 구체적인 사례를 살펴볼 수 있어서 꽤 흥미로운 세션 이었던 것 같습니다.

Amazon Q Developer 소개

Amazon Q Developer는 개발 과정에서 필요한 자동화 코드 추천 및 최적화 기능을 제공하는 Generative AI 기반 도구로 소개했습니다. 이 도구는 개발자의 코딩 스타일과 프로젝트 맥락을 학습하여, 보다 정교하고 실용적인 코딩 솔루션을 제안한다고 합니다. 또한, Amazon Q는 단순한 코드 생성 도구를 넘어 보안 취약점 탐지, 종속성 관리, 코드 변환과 같은 다양한 기능을 지원하며, 이를 통해 개발자가 코드 작성에 소요되는 시간을 줄이고 보다 창의적인 업무에 집중할 수 있도록 도와준다고 이야기 하고 있습니다.

Amazon Q의 주요 기능

Amazon Q는 다양한 기능을 제공하며, 특히 보안 점검, 코드 최적화, 레거시 시스템 변환 등 개발자들에게 실질적인 도움을 제공할 수 있을것으로 보입니다. 예를 들어, Amazon Q는 프로젝트의 코드를 스캔해 보안 취약점을 탐지하고, AWS 모범 사례에 따라 수정 방법도 제안할 수 있는거 같습니다. 또한, 프로젝트의 코드 구조와 맥락을 이해하여 더 나은 코드 작성 방식을 추천하며, 이를 통해 코드의 가독성을 높이고 유지보수를 용이하게 만든다고 합니다. Amazon Q의 또 다른 주요 기능은 AI 기반 코드 변환 및 개선으로, 레거시 코드나 비효율적인 코드 구조를 현대화된 형식으로 자동 변환할 수 있다고 이야기 하고 있습니다.

VS Code 연동 및 설정

Amazon Q를 사용하려면 VS Code 확장 프로그램 설치 후 Builder ID로 로그인해야 하며, 이 과정을 통해 Amazon Q가 IDE와 긴밀히 통합되는 것을 보여주고 있습니다. 설치가 완료되면 Amazon Q는 프로젝트의 구조를 분석하고, 필요한 코드 추천과 최적화 작업을 시작가능 합니다. 예를 들어, 개발자가 특정 코드를 작성하거나 수정할 때, Amazon Q는 IDE 내부에서 자동 완성, 코드 스타일 권장 사항, 그리고 보안 취약점에 대한 경고를 실시간으로 제공한다고 합니다. 이러한 통합 기능은 개발자가 IDE 환경에서 빠르게 학습하고 Amazon Q의 다양한 기능을 활용할 수 있도록 도울수 있을것으로 보입니다.

레거시 코드 변환

Amazon Q는 Java 1.8과 같은 레거시 코드에서 최신 버전인 Java 17로의 업그레이드를 단 몇 가지 명령어로 수행이 가능하다고 합니다. 이를 통해 기존 코드베이스를 현대화하고, 최신 종속성 및 보안 패치를 포함한 안정적인 환경으로 전환할 수 있을것으로 보입니다. 변환 작업 과정에서는 Amazon Q가 코드의 모든 파일과 종속성을 스캔하고, 필요한 변경 사항을 자동으로 적용하며, 변경 후 결과를 검토할 수 있는 Git Diff 형태로 제공한다고 합니다. 이 기능은 대규모 프로젝트에서 레거시 코드의 현대화를 보다 쉽고 효율적으로 진행할 수 있도록 도와줄 것으로 기대됩니다.

보안 취약점 감지

Amazon Q는 프로젝트 전체를 스캔하여 코드 내 보안 취약점(CVE)을 탐지하고, 이를 수정하기 위한 구체적인 방안을 제공할 수 있다고 합니다. 예를 들어, 프로젝트에서 XSS(크로스 사이트 스크립팅)나 SQL 인젝션과 같은 심각한 취약점을 발견했을 경우, Amazon Q는 이를 AWS 모범 사례에 따라 개선할 수 있는 코드를 제안할 수 있다고 합니다. 또한, Amazon Q는 취약점 수정뿐만 아니라 보안 모니터링을 지속적으로 수행하며, 새로운 취약점이 발생했을 경우 개발자에게 실시간으로 알려줄 수 있다고 합니다. 이 모든 과정은 개발자가 보안 문제를 사전에 예방하고 안전한 코드를 작성하는 데 도움을 줄 수 있을것으로 보입니다.

CloudFormation 템플릿 생성

Amazon Q는 CloudFormation 템플릿 생성에서도 강력한 도구로 활용될 수 있다고 합니다. 예를 들어, 사용자가 단순히 “로드 밸런서와 오토스케일링 그룹이 포함된 EC2 인스턴스 두 개를 생성하는 템플릿을 작성해주세요”라고 요청하면, Amazon Q는 이를 기반으로 필요한 리소스를 YAML 형식으로 자동 생성해주는 것을 볼 수 있었습니다. 템플릿에는 VPC, 서브넷, NAT 게이트웨이, 라우트 테이블, 인터넷 게이트웨이 등 네트워크 구성 요소뿐만 아니라, 보안 그룹 설정 및 스토리지 리소스(S3, DynamoDB)까지 포함된다고 합니다. 이 과정을 통해 개발자는 복잡한 인프라 구성 작업을 단축할 수 있을것으로 보입니다.

협업 및 팀 생산성 향상

Amazon Q는 IAM과 통합되어 팀 구성원이 효율적으로 협력할 수 있는 환경을 제공할 수 있다고 합니다. 예를 들어, 팀 구성원이 동일한 AWS 계정을 기반으로 Amazon Q의 권한과 설정을 공유할 수 있으며, 이를 통해 코드 작성 및 검토 과정에서 일관성을 유지할 수 있다고 이야기하고 있습니다. 또한, Amazon Q는 코드 스타일 권장 사항과 모범 사례를 팀 전체에 전달함으로써 팀 생산성을 향상시키고, 프로젝트의 품질을 한층 높이는 데 기여가 가능할 것으로 보입니다. 이를 통해 개발팀은 더 나은 협업 환경에서 보다 효율적으로 작업할 수 있다고 말하고 있습니다.

결론

Amazon Q Developer는 코드 작성과 최적화에서부터 보안 점검, 레거시 코드 변환, 그리고 클라우드 인프라 설정까지 개발 과정의 모든 측면에서 실질적인 도움을 제공하고 있다고 이야기하고 있습니다. 특히 Generative AI를 활용한 코드 자동 생성과 최적화 기능은 개발자가 반복적이고 비효율적인 작업에 소요하는 시간을 크게 줄여줄 것으로 보입니다.

또한, 보안 취약점 감지 기능은 코드 내에서 발견되는 문제를 빠르게 해결할 수 있도록 돕고, AWS 모범 사례를 기반으로 보안성을 강화할 수 있다고 이야기 하고 있습니다. 

다만, 복잡한 자바 프로젝트 전체를 파악해서 전혀 문제 없이 최신의 버전으로 업그레이드 할 수 있다고 이야기 하고 있지만 정말 문제없이 사용이 가능할지 의문이 드는것도 사실입니다. 그렇지만 앞으로는 이같은 도구를 사용한다면 분명히 도움이 될 것이라고 보입니다.

글 │메가존클라우드, Cloud Technology Center (CTC), Cloud FSI SA 3 팀, 정하훈 SA
게시물 주소가 복사되었습니다.