Amazon Web Services 한국 블로그

.NET을 위한 IDE용 Amazon Q Developer 코드 변환 기능 발표 (미리보기)

2002년에 도입된 .NET Framework는 Windows에서만 실행되며 여전히 지원되긴 하지만 더 이상 활발하게 개발되고 있지는 않습니다. 그러나 2016년에 출시된 크로스 플랫폼 .NET은 오픈 소스이고 Linux에서 실행되며 가볍고 성능이 뛰어납니다. 또한 매년 새로운 기능 및 성능 개선으로 정기적으로 업데이트됩니다. .NET Framework에서 크로스 플랫폼 .NET으로 .NET 애플리케이션을 포팅하면 Windows에서 Linux로 마이그레이션할 수 있습니다. 따라서 .NET 플랫폼의 최신 혁신 기능을 활용할 수 있을 뿐만 아니라 Microsoft 라이선스 비용도 줄일 수 있습니다.

AWS는 Porting Assistant for .NET, AWS Toolkit for .NET Refactoring, AWS Microservice Extractor for .NET 등의 도구를 사용하여 Windows에서 Linux로 .NET 애플리케이션을 포팅하고 현대화하는 작업을 지원해 왔습니다.

오늘은 .NET을 위한 Amazon Q Developer 변환 기능의 공개 평가판을 발표합니다.

이 게시물에서는 통합 개발 환경(IDE) 내에서 .NET Framework 애플리케이션을 교차 플랫폼 .NET으로 이식할 수 있는 새로운생성형 AI 기반 환경인 Amazon Q Developer .NET 코드 변환 기능을 소개합니다.

.NET용 Amazon Q Developer 변환은 자동으로 코드베이스를 분석하고, 변환 계획을 생성하고, 변환 작업을 실행합니다. 이러한 작업에는 NuGet 패키지 및 API 업그레이드 및 교체, 더 이상 사용되지 않고 비효율적인 코드 구성 요소 재작성, 크로스 플랫폼 .NET으로의 포팅이 포함됩니다.

실제 작동 모습을 살펴보겠습니다.

.NET Framework 애플리케이션 포팅
이 연습에서는 Visual Studio를 사용하고 있습니다. NET용 Amazon Q Developer 변환이 Visual Studio 확장으로 제공되기 때문입니다. AWS Toolkit with Amazon Q의 최신 버전을 설치하고 조직에서 제공한 AWS IAM Identity Center를 사용하여 로그인하겠습니다.

IAM Identity Center에 연결하여 AWS Toolkit with Amazon Q 시작하기

지원되는 크로스 플랫폼 .NET의 최신 장기 지원(LTS) 버전(현재 .NET 8)으로 포팅해야 하는 .NET Framework 솔루션을 엽니다. 솔루션 탐색기에서 변환 옵션은 전체 솔루션과 개별 프로젝트 모두에 대한 컨텍스트 메뉴 항목으로 사용할 수 있습니다. 애플리케이션의 크기와 복잡성에 따라 전체 애플리케이션을 한 번에 변환하거나 애플리케이션의 프로젝트를 단계별로 변환할 수 있습니다. 이 연습에서는 솔루션 프로젝트 중 하나를 변환하는 과정을 보여드리겠습니다.

프로젝트 중 하나의 컨텍스트 메뉴를 선택한 후 Amazon Q Developer로 프로젝트 포팅을 선택합니다.

Amazon Q Developer로 프로젝트 포팅을 선택할 수 있는 솔루션 탐색기의 컨텍스트 메뉴

그러면 변환할 추가 프로젝트를 선택하고 대상 .NET 버전을 선택할 수 있는 대화 상자가 열립니다. .NET 8을 선택하고 확인을 선택하여 변환을 진행합니다.

Q Developer로 프로젝트 포팅의 팝업

코드 변환 계획 창에서 상태를 확인하고 Amazon Q Developer 코드 변환 허브 창에서 진행 상황을 볼 수 있습니다.

변환할 프로젝트를 하나만 선택했지만 Amazon Q Developer에서 모든 종속 프로젝트도 변환할 것입니다. 선택한 프로젝트와 종속 프로젝트가 결합되어 빌드 가능한 유닛을 형성하며 이 유닛은 분해할 수 있습니다. 이 작업은 변환 후 코드베이스가 성공적인 빌드 상태에 있는지 확인하기 위한 것입니다.

코드 변환 계획 창 및 Amazon Q Developer 코드 변환 허브 창

Amazon Q Developer는 먼저 프로젝트를 로컬에서 빌드한 후, 선택한 코드와 종속성을 AWS의 안전하고 일시적인 샌드박스 환경에 복사하여 처리합니다. 고객 관리형 키를 사용하여 이 환경에서 코드를 암호화할 수 있습니다.

Amazon Q Developer에서 코드베이스를 분석하고 변환 계획을 생성합니다. 그런 다음, 변환 워크플로를 시작하고 변환 계획의 각 프로젝트에 대해 반복적으로 계획을 단계별로 진행합니다. 각 프로젝트에 대해 NuGet 패키지 및 API를 업그레이드하고, 시작 또는 런타임 구성을 업데이트하고, 더 이상 사용되지 않는 코드를 다시 작성하고, 오류를 디버깅합니다.

Amazon Q Developer 변환 허브에서 변환 진행 상황 표시

변환이 완료된 후 Q Developer의 변환 요약을 선택하여 요약을 확인합니다. 변환 상태가 성공으로 나타납니다. 각 프로젝트에 대해 파일 변경됨, 패키지 업데이트됨, API 변경됨, Linux 포팅 상태가 표시됩니다. Linux 포팅 상태 열에서 프로젝트가 자동으로 포팅되었는지 또는 보류 중인 문제를 해결하기 위해 입력이 필요한지 확인할 수 있습니다.

코드 변환의 성공됨 상태

Linux 준비 상태 보고서를 다운로드하여 수작업 해결이 필요한 문제를 살펴볼 수 있습니다.

Linux 준비 상태 보고서 다운로드를 보여주는 스크린샷

모든 코드 변경은 샌드박스에서 수행되며 로컬 작업 리포지토리에 업데이트를 적용하기 전에 검토할 수 있습니다. Amazon Q Developer에서 수행한 변경 사항을 직접 검토하려면 차이 보기를 선택한 후 Amazon Q Developer Transformation Hub 창에서 파일 중 하나에 대한 변경 사항 표시를 선택합니다.

업데이트된 코드와 원본 코드의 차이를 보여주는 스크린샷

변경 사항을 검토한 후 Q Developer의 변환 요약 창에서 제안된 변경 사항 수락을 선택하여 로컬 작업 리포지토리에 변경 사항을 적용하겠습니다.

제안된 변경 사항 수락을 보여주는 스크린샷

이제 로컬 작업 리포지토리에서 계속 작업하여 Linux 준비 상태 보고서에서 보류 중인 문제를 수정한 후 동일한 단계를 사용하여 나머지 프로젝트를 반복해서 변환할 수 있습니다.

알아야 할 사항

  • 가용성 – .NET 포팅을 위한 Amazon Q Developer 변환 기능은 Amazon Q Developer Pro 티어 구독을 통해 이제 평가판으로 사용할 수 있습니다.
  • 지원되는 .NET 버전 – .NET용 Amazon Q Developer 변환 기능은 .NET Framework 버전 3.5 이상, .NET Core 3.1 및 .NET 5 이상을 사용하여 작성된 애플리케이션을 현재 지원되는 크로스 플랫폼 .NET 버전(예: .NET 8 및 .NET 9)으로 변환하는 기능을 지원합니다.
  • 지원되는 애플리케이션 유형 – .NET용 Amazon Q Developer 변환 기능은 콘솔 애플리케이션, 클래스 라이브러리, 유닛 테스트, 웹 API, Windows Communication Foundation(WCF) 서비스, 모델 뷰 컨트롤러(MVC) 및 단일 페이지 애플리케이션(SPA)의 비즈니스 논리 계층과 같은 유형의 C# 코드 프로젝트를 포팅할 수 있도록 지원합니다. 하지만 Razor Views 및 WebForms와 같은 UI 레이어는 포팅되지 않습니다. 또한 Microsoft에서 작성한 NuGet 패키지 종속성이 있는 프로젝트만 지원됩니다. 인터넷 정보 서버(IIS)를 사용하는 .NET Framework 애플리케이션의 경우 기본 IIS 구성만 크로스 플랫폼 .NET으로 포팅할 수 있습니다.

시작하려면 AWS Toolkit for Visual Studio를 설치하고 설명서의 지침에 따라 .NET 애플리케이션을 포팅하고 업그레이드하세요.

Prasad