AI/ML

AI 시대의 개발 혁신: Amazon Q Developer 활용하기

Amazon Q Developer는 AWS에서 애플리케이션 개발을 가속화하는 Generative Artificial Intelligence(Gen AI) 도우미입니다. 통합 개발 환경(IDE)에서 사용될 때, Amazon Q는 소프트웨어 개발을 지원하며, 코드에 대한 대화, 인라인 코드 완성, 새로운 코드 생성, 보안 취약점 스캔, 코드 업그레이드 및 최적화와 같은 기능을 제공합니다.

이 도구는 개발자가 AWS 내부 또는 외부에서 시간 소모적인 수작업을 줄일 수 있도록 돕는 다양한 기능을 갖추고 있습니다.

AWS 서비스 및 아키텍처 모범 사례를 쉽게 배우고 적용할 수 있도록 지원하며, 전체 소프트웨어 개발 수명 주기(SDLC)에 걸쳐 사용자 경험을 혁신할 수 있는 기능을 제공합니다.또한, AWS 계정의 리소스를 나열하고 AWS Cost Explorer의 비용 데이터를 분석하는 데도 도움을 줍니다.

이 게시물에서는 Amazon Q Developer를 통해 Lambda에 사용될 Python 코드와 Cloudformation에 사용될 YAML 스크립트를 생성합니다
아래 첨부된 아키텍처 구현을 어떻게 가속화할 수 있는지를 살펴보겠습니다.

해당 아키텍처는 소유한 계정의 생성되는 로그를 지속적으로 추적하여, 보존기간을 설정 후 데이터관리의 효율성을 높일 수 있습니다. 필요 시 신속하게 로그를 검토할 수 있는 환경을 조성하기위한 내용이며, 매일 특정시간에 전체로그를 대상으로 적용됩니다

1. 준비단계

Amazon Q Developer는 개발자의 IDE에서 바로 작동합니다.
다양한 IDE를 지원하지만, 해당 게시글에서는 VS Code 를 사용합니다.
아래와같이 AWS Toolkit IDE 확장 프로그램을 다운로드 및 설치하고 코딩을 시작할 수 있습니다.
IDE에서 코드를 작성하면 Amazon Q Developer가 코드와 주석을 자동으로 분석합니다.

Amazon Q Developer는 자연어(영어)로 작성된 주석을 이해하고 실시간으로 여러 코드 제안을 생성할 수 있습니다. (입력할 때 Amazon Q Developer는 주석 자체를 완성하기 위한 제안도 제공합니다.) 생성된 코드는 코드를 작성하는 방법과 유사하며 스타일 및 명명 규칙과 일치합니다.

해당 게시물에서는 다음과 같은 방법으로 Amazon Q Developer와 상호작용합니다: 해당 방법은 상위 제안을 빠르게 수락하거나(Tab 키), 더 많은 제안을 보거나(화살표 키), 코드를 계속 작성할 수 있습니다.

  • IDE 내 인라인 제안: 편집 중인 소스 코드 파일에 자연어로 주석을 추가하고 Amazon Q가 제공하는 제안을 평가합니다.

작성한 코드에 대한 소유권은 여러분에게 있으며, Amazon Q의 코드 제안을 수락하더라도 항상 코드를 검토해야 합니다. 또한 코드를 의도한 대로 정확하게 작동하도록 수정해야 할 수도 있습니다. 코드 제안을 수락하기 전에 항상 검토하고, 의도한 대로 정확하게 작동하도록 수정해야 할 수도 있습니다. 제안 사항을 약간만 수정하거나, 더 크고 복잡한 요청을 더 작은 조각으로 나누면, Amazon Q의 도움 없이 코드를 작성하는 것보다 더 빠르게 작동하는 코드를 생성할 수 있습니다.

Amazon Q Developer에서 처리한 콘텐츠는 AWS 서비스 개선을 위해 저장되거나 사용되지 않습니다 해당 결과를 통해 사용자분들은 Amazon Q가 유용하다는 것을 알게 될 것이라고 확신합니다.

2. 적용단계

2.1. Python 코드

로컬에서 Python 기반 스크립트가 실행될 수 있는 환경을 구성한뒤, 파일을 생성합니다 (*.py) 해당 파일에서 구현하고자하는 상황을 주석으로 입력한 뒤, 추천을 받습니다 제공된 해결책이 우리가 원하는 것이므로 IDE의 텍스트 파일에 Tab 키를 통해 복사하여 수락합니다.

솔루션은 원하는 대로 편집할 수 있으며, 이는 Lambda에 사용 될 Python 코드 생성을 위한 시간을 절약해 줍니다. 추가로 해결책을 요청하여 내용을 추가합니다

Amazon Q Developer의 도움을 통해 완성된 코드의 결과물(source.py)은 다음과 같습니다 해당 코드는 IaC 코드에서 활용됩니다

2.2. IaC 코드

AWS CloudFormation StackSet은 여러 AWS 계정이나 리전에서 CloudFormation 스택을 동시에 생성하고 관리할 수 있는 기능입니다. StackSet을 사용하면, 중앙에서 관리하는 템플릿을 기반으로 여러 환경에 일관된 인프라를 배포할 수 있어 운영 효율성을 높이고 관리 부담을 줄일 수 있습니다.

로컬에서 YAML기반 Cloudformation의 Template이 작성될 수 있도록 파일을 생성합니다 (*.yaml) 해당 파일에서 구현하고자하는 상황을 주석으로 입력한 뒤, 추천을 받습니다

제공된 해결책이 우리가 원하는 것이므로 IDE의 텍스트 파일에 복사하여 수락합니다. 해결책은 원하는 대로 편집할 수 있으며, 이는 CloudFormation YAML 생성을 위한 시간을 절약해 줍니다.

Amazon Q Developer의 도움을 통해 완성된 코드의 결과물(result.yaml)은 다음과 같습니다 이해를 돕기위해 라인별로 주석을 추가합니다

2.3. 배포

AWS Console 화면에 접속 후, Cloudformation Stackset 으로 진입합니다 작성했던 YAML 파일을 업로드 합니다

현재 워크로드가 올라가있는 다중 Region을 선택한 뒤, 배포를 진행합니다

CloudWatch logs에 Retention Period가 반영된 내용을 확인해봅니다

Conclusion

Amazon Q Developer를 활용하여 AI 기반으로 어플리케이션의 비즈니스 로직의 개선을 통해 기업의 비즈니스 인사이트를 더욱 향상시킬 수 있습니다. 예를 들어, Amazon SageMaker와 연동하여 예측 모델을 구축하고, Amazon S3에 저장된 데이터를 기반으로 머신러닝 작업을 자동화하는 방법을 공유할 수 있습니다. 또한, AWS Lambda를 통해 이벤트 기반의 처리 시스템을 구현하여 실시간 데이터 분석을 가능하게 합니다.

또한 Amazon Q Developer는 복잡한 데이터 환경을 간편하게 관리하고, 개발자들이 손쉽게 AI 기능을 통합할 수 있도록 지원하는 강력한 플랫폼입니다. 이를 통해 기업은 데이터 기반 의사 결정을 강화하고, 개인화된 고객 경험을 제공할 수 있는 기반을 마련할 수 있습니다. 향후 더 많은 혁신이 기대되는 Amazon Q Developer와 함께, AI 시대의 개발 혁신을 선도해 나갈 수 있을 것입니다.

5/5 - (평가 개수 : 4)

필자: 조 길상

전체 게시물수 : 1

전체 조회수 : 148

게시물 공유하기