[reinvent 2024] GenAI를 이용한 애플리케이션 유지 관리 및 업그레이드 가속화

Summary

레거시 어플리케이션 업그레이드는 기업의 경쟁력 유지에 중요하며, Amazon Q Developer는 Canada Life 사례에서는 레거시 코드에 대한 업그레이드를 자동으로 수정하고 테스트를 수행해 개발 생산성을 약 40% 향상시킵니다. 또한 비용 절감과 보안 개선 효과를 입증했습니다. 디버그 AI 에이전트는 다중 에러 해결과 롤백 기능으로 디버깅 성능을 85% 개선했습니다. 이 세션에서 Amazon Q Developer에 어떤 기법들이 적용되었는지, 어떤 기능을 제공하는지, 사례를 통해 어떤 효과를 얻을  수 있었는지에대해 소개드립니다.


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

Tech Blog

AWS re:Invent 2024 Tech Blog written by MegazoneCloud

Overview

  • Title: Accelerate application maintenance and upgrades with generative AI
  • Date: 2024년 12월 2일(월)
  • Venue: Level 2 | Summit Showroom
  • Speaker:
  • Amber Bird(AVP, Engineering, Canada Life)
  • Adnan Bilwani(Principal Specialist, Next-Gen Developer Experience, Amazon Web Services)
  • Elio Damaggio(Principal Product Manager, Amazon)
  • Industry: Cross-Industry Solutions

들어가며

이번 세션에서는 GenAI를 이용하여 어플리케이션 유지보수와 업그레이드를 가속화하는 방법에 대해서 알아볼 예정입니다. GenAI를 이용한 기능이 어떤 것들이 있는지, 어떤 사례가 있는지, 이로 인해 기대할 수 있는 효과가 어떤 것들이 있는지에 대한 정보를 공유드리도록 하겠습니다.

어플리케이션 업그레이드의 중요성 및 구성 요소

기업의 경쟁력과 효율성을 유지하기 위해서 레거시 어플리케이션은 계속해서 업그레이드 됩니다. 여기서 어플리케이션이란 단순히 소스코드를 의미하는게 아닙니다. 어플리케이션을 구동하기 위한 인프라부터 운영체제, 프로그래밍 언어와 프레임워크, 어플리케이션 코드와 데이터를 종합적으로 의미합니다. 이 세션에서는 프로그래밍 언어와 프레임워크, 어플리케이션 코드와 데이터 부분에 대해 GenAI를 적용하는 부분에 대해 얘기합니다.
이러한 업그레이드는 현재는 일부 자동으로 수행되고 일부는 수동으로 수행됩니다. 하지만 자동으로 수행되는 비율이 크게 적은 경우가 많다고 합니다.
자바 버전을 업그레이드 하기 위해서 개발자는 프레임워크와 디펜던시에 대한 부분들을 업그레이드하고, 추가적으로 소스 코드에 대한 변경 작업을 수동으로 진행합니다. 일부 작업은 자동화 스크립트를 사용합니다. 그 다음 테스트를 수행하는데 대부분의 경우에는 많은 에러들이 발생합니다. 이러한 에러를 해결하고 테스트하고를 반복하고 문제가 모두 해결되면 프로덕션에 배포합니다.
GenAI를 이용하여 어떤 코드가 어떻게 수정되어야 하는지 미리 확인하고, 그것을 자동으로 적용하고 테스트하고 유닛테스트를 하는 일련의 과정들을 자동화 할 수 있습니다. Amazon Q Developer Agent for code transformation은 이것을 가능하게 합니다.
Amazon Q는 모든 레파지토리에 대한 내용을 기반으로 한 LLM을 이용합니다. 사용자는 시작 단계에서부터 40%~50%가 수행이 되어있는 상태로 시작할 수 있습니다. Amazon Q는 마법처럼 모든 과정을 100% 자동화 해 주는 것이 아니라 더 나은 생산성을 제공하기 위해 도움을 주는 역할을 합니다
Amazon Q는 사용자와 소통하며 소스코드 업데이트에 필요한 정보들을 수집합니다. 여기서는 어떤 프로젝트인지, 레거시 자바 버전이 몇인지, 변경하려는 자바 버전은 몇인지 등을 입력받게 됩니다.
소스코드 업데이트가 자동적으로 이뤄지고 어떤 부분들이 변화되었는지 알지 못하면 소스코드 업데이트가 이뤄지기 전에 어떤 부분들이 변화되는지 미리 확인하고, 변경되는 것들에 대해 승인을 하면 자동으로 적용되게 됩니다.
소스코드 업데이트가 적용되기 이전에, 어떤 파일의 어떤 코드가 어떻게 변화되는지 미리 확인할 수 있습니다.

Canada Life의 사례

Canada Life는 Amazon Q를 이용함으로써 생산성이 40% 향상되었으며 보안 수준 또한 향상되었다고 합니다.
많은 고객을 신규 유치하게 되면서 레거시 플랫폼에서 안정성 문제가 발생하게 되었고, 이를 해결하기 위해 많은 예산을 투입하여 클라우드로 전환하기로 결정했습니다. 하지만 전환에는 당초 예상보다 더욱 많은 예산이 필요하게 되었습니다. 이 문제를 해결하기 위해 AWS와 협업하여 Amazon Q를 테스트했고 그 결과 40% 정도의 생산성 향상과 250k달러의 비용 절약 효과를 이뤄낼 수 있었다고 얘기합니다.

Amazon Q 디버그 AI 에이전트의 성능 향상

기존의 에러 해결 방법은 발생한 특정 에러 한 개에 대해서 코드를 수정하고, 다시 그 상태에서 발생하는 에러를 확인하여 코드를 수정하는 과정을 계속해서 반복하는 1-by-1 방식입니다. 디버그 에이전트는 멀티 에러 컨텍스트 기술을 적용하여 한 번에 한 개의 에러를 해결하는 것이 아닌, 한 번에 여러 개의 에러를 동시에 해결하도록 개선했습니다. 또한 하나의 파일에서만 작업하는 것이 아닌 여러 파일에 한 번에 작업할 수 있게 했습니다. 또한 자동화 작업을 수행하면서, 이전에 작업헀던 내용을 이후의 작업에 반영할 수 있도록 기록한다고 합니다. 마지막으로 진행하고 있던 작업이 더 이상 진행할 수 없게 되는 상황에서는 롤백을 하도록 개선했다고 합니다.
이러한 개선을 통해 디버깅 성능이 85% 개선되었다고 합니다. 이 수치는 10만줄 이상의 규모의 어플리케이션을 대상으로 측정했을 때 나온 수치라고 합니다.
Amazon Q 디버그 에이전트는 향후 디버그 뿐만 아니라 소스코드 업데이트 과정에서도 적용될 수 있도록 계획하고 있다고 합니다. 
현재는 모든 코드 업데이트 작업이 한 번에 수행되기 때문에 리뷰가 힘들다는 단점이 있다고 합니다. 향후에는 업그레이드 과정을 전부 한 번에 수행하는 것이 아니라 여러 단계를 거쳐서 수행되도록 함으로써 리뷰를 용이하게 할 계획이라고 합니다. 
또한 현재는 레거시 어플리케이션을 업그레이드 하는데 초점이 맞춰져 있지만, 향후에는 최신 어플리케이션에서 라이브러리나 프레임워크만 수정하는 작은 작업도 지원할 수 있게 할 예정이라고 합니다.

결론

Amazon Q Developer는 다양한 기법을 적용한 디버그 AI 에이전트를 이용하여 많은 성능 향상을 이뤄낸 것으로 보입니다. Canada Life의 사례를 통해 이러한 성능 향상이 성공적으로 개발자들의 생산성을 향상시키고, 비용을 감소시키는데에 도움을 준다는 것을 확인할 수 있었습니다. 또한 디버그 에이전트에 적용된 성능 향상 기법을 다른 작업에도 적용시킴으로써 Amazon Q Developer의 전체적인 성능 향상을 이끌어 낼 계획이라는 것을 확인할 수 있었습니다. 이러한 Amazon Q Developer를 많은 개발자들이 실제 업무에 적용해보셨으면 좋겠습니다.
글 │메가존클라우드, Cloud Technology Center (CTC), Cloud SA 8 팀, 이동재 매니저
게시물 주소가 복사되었습니다.