News Feed

생성형 AI 툴로 앱 마이그레이션을 간소화하는 방법

컨텐츠 정보

  • 조회 787

본문

델의 보고서에 따르면, 포춘 5,000대 기업에서 사용하는 소프트웨어의 70%가 20년 이상 전에 개발됐다. 레거시 애플리케이션 업그레이드는 비즈니스 측면에서 근거가 확고하지만, 마이그레이션은 위험한 경우가 많다. 높은 비용, 레거시 기술에 대한 지식 부족, 오래된 소프트웨어를 테스트하는 데 따르는 복잡성으로 인해 진행 속도가 느려지고 기술 부채가 쌓인다.

애플리케이션 현대화에 대한 접근 방식은 ‘클라우드 마이그레이션 7R’로 간단히 표현할 수 있다. 7R이란 폐기(Retiring), 교체(Replacing), 이전(Relocating), 리플랫폼(Re-platforming), 재사용(Reusing), 리팩터링(Refactoring), 리빌딩(Rebuilding)이다. 생성형 AI는 이런 프로세스 중 많은 부분을 쉽게 만들고 속도를 높일 수 있다.

여기서는 애플리케이션 마이그레이션을 새로운 플랫폼에서의 코딩이 필요한 모든 접근 방식으로 정의한다. 예를 들어 자바, 닷넷, 파이썬, 자바스크립트, PHP와 같은 언어 및 개발 플랫폼 간에 애플리케이션이나 서비스의 일부 또는 전부를 마이그레이션하는 것이다.

애플리케이션 마이그레이션이 적합한 경우

상당 부분을 다시 코딩해야 하는 애플리케이션 마이그레이션은 최후의 수단으로 간주되는 경우가 많다. 그러나 경우에 따라 마이그레이션은 현대화를 위한 가장 신중한 접근 방법이다. 예를 들면 다음과 같은 상황이다.

  • 데이터 모델, 비즈니스 로직 또는 사용자 경험에 대한 상당한 수준의 리엔지니어링이 필요한 애플리케이션은 기존 코드의 용도 변경으로 얻는 가치가 거의 없을 가능성이 높다.
  • 라이브러리 및 서드파티 서비스를 통한 새로운 기능은 기존 코드의 대부분을 쓸모없게 만들 수 있으며, 코드를 다시 쓰면 기술 부채가 대폭 줄어든다.
  • 중대한 확장성 문제 또는 새로운 보안 요구사항이 있는 API, 서비스, 애플리케이션은 상향식 아키텍처 재설계가 필요할 수 있다.
  • 문서가 거의 없고 주제 전문가가 더 이상 회사에 없는 구식 플랫폼에서 오래된 애플리케이션을 실행하는 조직은 애플리케이션 마이그레이션 외에는 대안이 없을 수 있다.
  • 작은 기업을 인수하는 기업은 비용을 줄이고 유지보수를 간소화하기 위해 애플리케이션을 표준 플랫폼으로 마이그레이션하기로 선택할 수 있다.

생성형 AI는 어떻게 도움이 되는가?

앱 마이그레이션은 값비싼 작업이다. 아키텍처나 사용자 경험을 변경하지 않고 다시 코딩하고자 한다면 코드 변환기가 프로세스의 속도를 높이는 데 도움이 될 수 있다. 그러나 중대한 변경이 필요한 경우 애플리케이션 마이그레이션을 위해 전체 코드를 다시 작성해야 할 수 있다.

이런 상황에서 생성형 AI가 프로세스 속도를 높이고 비용을 절감하거나 품질을 개선할 수 있다.

디스코프(Descope)의 공동 창업자인 길라드 슈리키는 “생성형 AI는 개발자가 새로운 패러다임에 적응하면서 논리적 일관성을 유지할 수 있게 해주는 스타터 템플릿과 변환 스크립트를 생성하는 등 개발 워크플로우를 단순화함으로써 애플리케이션 마이그레이션을 혁신하고 있다”라고 말했다.

맥킨지 보고서에 따르면 생성형 AI는 앱 현대화에서 수동 작업을 대부분 제거한다. 이를 통해 타임라인을 40~50% 가속화하고 비용을 40% 절감할 수 있다. 다음으로, 생성형 AI 기능을 사용한 애플리케이션 마이그레이션을 계획할 때의 주요 고려 사항을 살펴보자.

워크플로우와 변경 요구사항 이해

애플리케이션 마이그레이션을 준비하는 첫 단계로 가장 효과적인 방법은 기존 문서를 검토하고 주제 전문가와 대화하는 것이다. 개선 기회를 모색할 때는 기존 시스템의 비즈니스 목적과 워크플로우, 데이터 요구사항을 필수적으로 이해해야 한다.

외부의 시각을 활용한 이 검토는 팀이 마이그레이션에 필수적인 요구사항, 변경이 필요한 지점, 추가 조사가 필요한 알려지지 않은 부분의 체크리스트를 작성하는 데 도움이 된다. 또한 개발팀은 마이그레이션 중에 최종 사용자를 지원하기 위한 변경 관리 프로그램을 계획해야 한다. 애플리케이션을 거의 변경할 필요가 없다 해도 최종 사용자와 소통하면 이들의 우려를 덜고 예상치 못한 문제를 보고하기 위한 피드백 채널도 열린다.

제품 소유자와 비즈니스 분석가는 요구사항과 애자일 사용자 스토리를 작성하는 데 도움이 되는 새로운 생성형 AI 툴에 관심을 가져야 한다. 지라(Jira) 플랫폼을 예로 들면 지라용 AI 테스트 케이스 및 사용자 스토리 문제 자동 생성기(AI Test Case and User Story Issue Auto Generator for Jira), 지라용 애자일 사용자 스토리 맵, 포트폴리오 로드맵 및 페르소나(Agile User Story Map, Portfolio Roadmaps & Persona for Jira)가 있다.

종속성에 대한 아키텍처 분석

기술자는 코드 검토, 런타임 인프라 다이어그램 생성, 데이터 검색, 로그 파일 또는 기타 관찰가능성 아티팩트 분석을 포함한 내부 중심 분석을 수행하기를 원한다. 또한 종속 API, 서드파티 데이터 소스, 데이터 파이프라인을 포함한 종속성을 캡처하는 것이 더욱 중요할 수도 있다.

아키텍처 검토에는 오랜 시간이 걸리고 상당한 기술적 전문성이 필요한 경우가 많다. 생성형 AI를 사용하면 프로세스를 단순화하고 속도를 높일 수 있다. 크로노스피어(Chronosphere)의 CTO 겸 공동 창업자인 롭 스킬링턴은 “생성형 AI는 개발자와 설계자가 마이그레이션 대상 앱의 아키텍처, 배포 옵션과 관련된 질문에 대한 답을 빠르게 찾을 수 있게 해주는 등 여러 방법으로 앱 마이그레이션에 영향을 미친다. 또한 생성형 AI는 데이터베이스, 로드 밸런서, 서드파티 서비스 등 제안된 새로운 아키텍처에서 어떤 외부 종속성을 사용할 수 있는지를 개략적으로 설명해 앱 마이그레이션의 속도를 높이고, 결과적으로 마이그레이션의 위험 및 가용성 제약에 부합하는 마이그레이션 접근 방식을 도출한다”라고 설명했다.

생성형 AI를 활용해 아키텍처와 흐름 다이어그램을 만드는 방법에는 챗GPT를 사용한 플랜트UML(PlantUML) 다이어그램 생성, 이레이저(Eraser)의 다이어몬드GPT(DiamondGPT)를 사용한 코드베이스 다이어그램 생성 등이 포함된다.

혼란에 빠지지 않고 코드 설명하기

다른 사람의 코드를 검토하는 일은 소프트웨어 개발자가 가장 꺼리는 활동 중 하나다. 그러나 코드에서 결함을 찾고, 보안 취약점을 파악하고, 풀 요청에 대한 문서를 생성하고, 코딩 표준을 준수하기 위해서는 코드 검토가 필수적이다.

레거시 코드 분석의 중요성은 마이그레이션을 준비할 때 더욱 커진다. 오픈AI 코덱스(현재 챗GPT의 일부), 깃허브 코파일럿과 같은 생성형 AI 툴은 코드를 설명으로 변환하고 비즈니스 규칙을 추출하고 함수 호출 시퀀스의 다이어그램을 생성하고 데이터 유효성 검사를 식별하고 테스트 기능을 분리하는 등의 작업을 가속화할 수 있다.

SADA의 AI 부문 책임자인 채드 존슨은 “앱 마이그레이션에서 일반적인 과제는 레거시 코드와 애플리케이션 논리, 특히 시간 경과 또는 엔지니어의 퇴사로 인해 손실된 지식을 이해하는 것이다. 엔지니어는 오래된 언어와 난해한 의미를 몰라도 생성형 AI의 도움을 받아 레거시 코드를 해독하고 설명할 수 있다. 심층 연구 에이전트는 웹에 보관된 문서와 사용자 포럼, 블로그를 광범위하게 검색해 까다로운 버그와 마이그레이션 문제에 대한 해결책을 고안할 수 있다”라고 말했다.

개발자는 생성형 AI 프롬프트에 코드 세그먼트를 입력하면 해당 세그먼트의 목적과 기능을 설명하는 자연어 응답을 받을 수 있다.

유틸리티 코드를 다른 언어로 변환

마이그레이션을 위해 앱을 검토할 때, 특히 사용자 경험이나 비즈니스 로직에 변경이 필요한 경우 코드의 일부 영역을 다시 작성해야 한다. 그 외의 유틸리티 코드 영역은 성능을 개선하고 결함을 피하면서 언어를 변환하는 것으로 충분할 수 있다. 코드 변환기는 이 전환 작업의 일부를 자동화하는 한 가지 방법이다.

유가바이트(Yugabyte)의 성장 부문 부사장인 슈레야스 아그니호트리는 “생성형 AI는 코드 변환을 자동화하고 성능을 최적화하고 마이그레이션 중에 오류를 식별해서 애플리케이션 이식을 간소화한다. 예를 들어 최신 기술을 활용하도록 애플리케이션을 전환할 때 생성형 AI는 호환성을 위해 레거시 코드를 리팩터링하고 테스트 케이스를 생성하고 종속성 매핑을 간소화해서 수동 작업과 위험을 크게 줄일 수 있다”라고 설명했다.

개발자는 자바 언어 변환 도우미(Java Language Conversion Assistant, JLCA)와 같은 툴을 사용해 자바를 닷넷으로 변환하거나 코드컨버트(CodeConvert)를 사용해 C#을 자바 또는 파이썬으로 변환할 수 있다. 코볼과 같은 레거시 언어의 경우 숙련된 전문가를 찾기 어렵기 때문에 코드를 설명하고 번역하는 데 부가적인 어려움이 따른다. 생성형 AI, 그리고 코볼 프로젝트를 마이그레이션하기 위한 다른 여러 툴은 코볼 전문 지식이 없는 개발자가 이런 프로젝트에 더 쉽게 기여할 수 있게 해준다.

포스트맨(Postman)의 수석 디벨로퍼 애드버케이트인 스털링 친은 “메인프레임에서 현대 플랫폼으로 마이그레이션하는 경우 생성형 AI의 코볼 및 기타 레거시 코드베이스 분석 기능이 특히 유용하다. 이 기능은 수십 년 전에 작성된 코드에 포함된 복잡한 비즈니스 규칙을 파싱하고 현대 테스트 프레임워크에서 동일한 테스트 시나리오를 자동으로 생성하고 중요한 비즈니스 로직이 마이그레이션 이후에도 변경되지 않고 유지되는지 확인할 수 있다”라고 말했다.

레거시 코드에서 테스트 케이스 생성

코드 변환, 리팩터링, 개선은 애플리케이션 마이그레이션에서 쉬운 편에 속한다. 그러나 테스트의 경우, 특히 레거시 애플리케이션에는 단위 테스트와 자동화된 회귀 테스트가 없는 경우가 많아 어려운 과제가 될 수 있다.

포스트맨의 친은 “기존 애플리케이션을 종합적으로 분석하는 생성형 AI의 역량은 테스트 기반 마이그레이션 접근 방식을 가능하게 해준다. 자동화된 테스트 모음을 미리 생성해서 마이그레이션 프로세스 전반에 걸쳐 기능적 동등성을 검증함으로써 마이그레이션된 각 구성요소가 원래 시스템의 동작을 유지하도록 하면서 증분적 현대화를 추진할 수 있다”라고 말했다.

가능한 경우 마이그레이션하기 전에 레거시 애플리케이션에서 테스트 케이스와 테스트 프레임워크를 생성하는 것이 가장 좋다. 그런 다음 새 애플리케이션에서 동일한 테스트 케이스를 사용해 두 애플리케이션 버전에 걸쳐 결과를 벤치마킹할 수 있다.

디스코프의 슈리키는 “AI 기반 테스트 프레임워크는 테스트 케이스를 자동으로 생성하고 소프트웨어 개발 라이프사이클의 초기에 보안 검사를 통합하고 새 플랫폼에 대한 성능 벤치마크를 최적화해서 프로세스의 속도를 높여준다. 이런 발전은 기술 부채를 줄일 뿐만 아니라 팀이 품질, 보안 또는 개발자 효율성을 저해하지 않으면서 애플리케이션을 더 빠르게 현대화할 수 있게 해준다”라고 강조했다.

데이터 마이그레이션 계획

애플리케이션과 그 종속성을 테스트한 후에도 데이터 마이그레이션이 필요할 수 있다. 예를 들어 작은 규모의 온프레미스 SQL 데이터베이스를 클라우드 데이터베이스 서비스로 변환하는 경우와 같이 데이터베이스 기술과 스키마에 변경이 필요하지 않다면 간단한 마이그레이션이 될 수 있지만, 스키마가 상당 부분 변경되거나 데이터 품질 문제를 해결해야 하는 경우 마이그레이션 자체가 프로젝트가 될 수 있다.

SS&C 블루 프리즘(SS&C Blue Prism)의 미주 CTO인 루 바켄하이머는 “생성형 AI는 앱 마이그레이션의 두 가지 큰 고충을 모두 해결할 수 있다. 하나는 다양한 종속성을 고려한 광범위한 계획, 다른 하나는 데이터 손실이나 손상을 방지하기 위한 단조로운 검사가 포함된 반복적인 데이터 마이그레이션이다. AI는 필수 단계를 파악하고 사전 구축된 자동화를 트리거해서 데이터 마이그레이션을 실행하고, 기존 자동화 기술을 활용해 생성형 AI가 잠재적으로 민감한 데이터를 취급할 때 발생하는 위험을 완화하는 동시에 마이그레이션 프로세스의 속도를 대폭 높이고 간소화할 수 있다”라고 말했다.

대규모 데이터베이스의 경우 앱에 고속 트랜잭션이 있거나 레거시 앱에서 마이그레이션된 앱으로 전환하기 위한 긴 다운타임을 비즈니스 측에서 받아들일 수 없다면 데이터 세그먼트가 반복적으로 마이그레이션되는 증분 마이그레이션이 필요할 수 있다.

AI가 생성한 코드의 위험 관리

많은 툴이 앱 마이그레이션을 돕고 코드를 생성하지만, 전문가들은 애플리케이션의 기능 변경이 최소한만 이뤄지는 경우라 해도 테스트 중에 개발팀이 직접 세부적인 코드 및 보안 검토를 수행해야 한다고 경고한다. 개발팀은 이해관계자들에게 앱 마이그레이션에 테스트와 보안 검토가 필요하다는 점을 알려야 한다.

아피로(Apiiro)의 최고 제품 책임자 모티 긴디는 “소프트웨어 개발에 생성형 AI 툴이 도입되면서 개발자 생산성이 대폭 높아졌지만 코드 볼륨의 빠른 증가가 보안 검토, 위협 모델링과 같은 중요한 수동 애플리케이션 보안 통제 절차를 앞지르고 있어 프로세스 자동화의 필요성이 부각되고 있다. 효율적인 방법이기는 하지만 생성형 AI에서 생성한 코드는 회사별 정책과 규정 준수 요구사항을 인식하지 못하는 경우가 많아 새로운 비즈니스 위험을 초래할 수 있다. 또한 모든 비즈니스의 애플리케이션 스택에 생성형 AI를 통합하면 프롬프트 주입과 같은 새로운 잠재적 공격 표면이 발생하므로 새로운 위협에 맞는 새로운 코드 보안 컨트롤을 구현하고 시행해야 한다”라고 강조했다.

성공적인 마이그레이션의 핵심은 요구사항을 이해하고 최종 사용자와 소통하고 마이그레이션을 지원하는 적절한 툴을 선택하고 철저한 테스트 프로그램을 개발하는 것이다. 기업에는 현대화가 필요한 앱이 쌓여 있다. 마이그레이션 방식을 개발하는 IT 조직은 속도를 높이고 비용을 절감하고 위험을 최소화할 수 있다.
dl-itworldkorea@foundryco.com

관련자료

댓글 0
등록된 댓글이 없습니다.
Member Rank