

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Amazon Q Developer를 사용하여 Java 버전 업그레이드
<a name="code-transformation"></a>

Amazon Q Developer는 통합 개발 환경(IDE)에서 Java 애플리케이션을 최신 언어 버전으로 업그레이드할 수 있습니다. Amazon Q가 코드를 업그레이드하기 위해 수행할 수 있는 변경 사항에는 더 이상 사용되지 않는 코드 구성 요소 및 API 업데이트와 코드의 라이브러리, 프레임워크 및 기타 종속성 업그레이드가 포함됩니다.

코드를 트랜스포메이션하려면, Amazon Q는 먼저 소스 언어 버전에서 코드를 빌드하고 코드를 트랜스포메이션하는 데 필요한 정보가 있는지 확인합니다. Amazon Q가 코드를 성공적으로 트랜스포메이션한 후 IDE의 변경 사항을 확인하고 수락합니다. Amazon Q Developer는 업그레이드된 코드를 대상 JDK와 호환되는 데 필요한 최소한의 변경을 수행하므로 프로젝트의 라이브러리 및 종속성을 업그레이드하려면 추가 트랜스포메이션이 필요합니다. Amazon Q가 코드를 트랜스포메이션하는 방법에 대한 자세한 내용은 [Amazon Q Developer가 Java 언어 업그레이드를 위한 코드를 트랜스포메이션하는 방법](how-CT-works.md) 섹션을 참조하세요.

**Topics**
+ [지원되는 Java 업그레이드 및 IDE](#supported-languages-IDEs)
+ [1단계: 사전 조건](#java-upgrade-prerequisites)
+ [2단계: 프로젝트 구성](#configure-project)
+ [3단계: 종속성 업그레이드 파일 생성(선택 사항)](#create-dependency-upgrade-file)
+ [4단계: 코드 트랜스포메이션](#transform-code-java)
+ [Amazon Q Developer가 Java 언어 업그레이드를 위한 코드를 트랜스포메이션하는 방법](how-CT-works.md)

## 지원되는 Java 업그레이드 및 IDE
<a name="supported-languages-IDEs"></a>

Amazon Q는 현재 트랜스포메이션을 위해 다음과 같은 Java 소스 코드 버전 및 대상 버전을 지원합니다. 코드를 동일한 Java 버전으로 트랜스포메이션하면 소스 코드 버전의 라이브러리 및 기타 종속성 업그레이드가 포함됩니다.


**지원되는 Java 업그레이드**  

| 소스 코드 버전 | 지원되는 대상 버전 | 
| --- | --- | 
| Java 8  | Java 17 및 Java 21 | 
| Java 11 | Java 17 및 Java 21 | 
| Java 17 | Java 17 및 Java 21  | 
| Java 21 |  Java 21   | 

Amazon Q는 다음 IDE에서 Java 업그레이드를 지원합니다.
+ JetBrains IDE의 모듈
+ Visual Studio Code의 프로젝트 및 워크스페이스

## 1단계: 사전 조건
<a name="java-upgrade-prerequisites"></a>

계속하기 전에 [IDE의 Amazon Q 설정](q-in-IDE-setup.md) 단계를 완료했는지 확인하세요.

코드 트랜스포메이션 작업을 시작하기 전에 다음 사전 조건이 충족되는지 확인합니다.
+ 프로젝트는 [지원되는 Java 버전](#supported-languages-IDEs)으로 작성되며 Maven에 구축됩니다.
+ 프로젝트는 IDE에서 Maven을 사용하여 성공적으로 빌드됩니다. 현재 Maven 3.8 이상이 지원됩니다.
+ 프로젝트 소스 JDK는 로컬에서 사용할 수 있으며 소스 코드의 버전입니다. 예를 들어 Java 8 코드를 트랜스포메이션하는 경우 로컬 JDK 설치는 JDK 8이어야 합니다.
+ 프로젝트가 55분 이내에 빌드됩니다.
+ 프로젝트가 올바르게 구성되고 올바른 JDK 버전이 지정됩니다. 자세한 내용은 [2단계: 프로젝트 구성](#configure-project) 단원을 참조하십시오.
+ 프로젝트는 가상 프라이빗 클라우드(VPC) 또는 온프레미스 네트워크를 포함한 프라이빗 네트워크의 리소스에 액세스할 필요가 없습니다. 예를 들어 프로젝트에 네트워크의 데이터베이스에 연결하는 유닛 테스트가 포함된 경우 트랜스포메이션이 실패합니다.
+ 프로젝트는 Java 프로젝트에서 Java 이외의 언어를 패키징하는 플러그인을 사용하지 않습니다. 예를 들어 프로젝트에서 [frontend-maven-plugin](https://github.com/eirslett/frontend-maven-plugin)을 사용하여 Java 소스 코드 외에도 프론트엔드 JavaScript 코드를 실행하는 경우 트랜스포메이션이 실패합니다.
+ 로컬 네트워크는 Amazon Q가 코드를 트랜스포메이션하는 데 사용하는 Amazon S3 버킷에 대한 업로드를 허용합니다. 자세한 내용은 [데이터 경계의 Amazon S3 버킷에 대한 액세스 허용](firewall.md#data-perimeters)을 참조하세요.
+ 애플리케이션은 UTF-8 문자만 사용합니다. 애플리케이션이 non-UTF-8 문자를 사용하는 경우에도 Amazon Q는 코드를 트랜스포메이션하려고 시도합니다.

## 2단계: 프로젝트 구성
<a name="configure-project"></a>

프로젝트를 구성하려면 사용 중인 IDE에 다음 정보를 사용합니다.

### JetBrains에서 프로젝트 구성
<a name="configure-jetbrains"></a>

JetBrains에서 프로젝트를 구성하려면 다음 프로젝트 및 모듈 설정을 지정해야 할 수 있습니다.

모듈이 프로젝트와 동일한 JDK 및 언어 수준을 사용하는 경우 모듈 설정을 업데이트할 필요가 없습니다.
+ 프로젝트 SDK - 프로젝트를 컴파일하는 데 사용되는 JDK입니다.
+ 프로젝트 언어 수준 - 프로젝트에 사용되는 Java 버전입니다.
+ 모듈 SDK - 모듈을 컴파일하는 데 사용되는 JDK입니다.
+ 모듈 언어 수준 - 모듈에 사용되는 Java 버전입니다.
+ Maven Runner JRE - 모듈을 빌드하는 JDK입니다.

**프로젝트 및 모듈 설정 업데이트**

프로젝트 또는 모듈의 SDK 및 언어 수준 설정을 업데이트하려면 다음 단계를 완료하세요.

1. JetBrains IDE에서 **파일**을 선택한 다음 **프로젝트 구조**를 선택합니다.

1. 프로젝트 구조 창이 열립니다. **프로젝트 설정**에서 **프로젝트**를 선택합니다.

   1. 프로젝트 JDK를 업데이트하려면 **SDK** 옆의 드롭다운 목록에서 선택합니다.

   1. 프로젝트 언어를 업데이트하려면 **언어 수준** 옆의 드롭다운에서 선택합니다.

1. **Project Settings**에서 **Modules**를 선택합니다.

   1. 모듈 JDK를 업데이트하려면 **SDK** 옆의 드롭다운 목록에서 선택합니다.

   1. 모듈 언어를 업데이트하려면 **언어 수준** 옆의 드롭다운에서 선택합니다.

자세한 내용은 JetBrains 설명서의 [프로젝트 구조 설정](https://www.jetbrains.com/help/idea/project-settings-and-structure.html) 및 [모듈 구조 설정](https://www.jetbrains.com/help/idea/configure-modules.html)을 참조하세요.

**Maven 설정 업데이트**

Maven Runner JRE를 업데이트하려면 다음 단계를 완료하세요.

1. JetBrains IDE에서 기어 아이콘을 선택한 다음 나타나는 메뉴에서 **설정**을 선택합니다.

1. **설정** 창에서 **빌드, 실행, 배포**를 선택한 다음 **빌드 도구**, **Maven**, **Runner**를 차례로 선택합니다.

1. JRE 필드에서 트랜스포메이션하려는 모듈을 빌드하는 데 사용되는 JDK를 선택합니다.

### VS Code에서 프로젝트 구성
<a name="configure-vsc"></a>

VS Code에서 프로젝트를 구성하려면 프로젝트에 다음이 포함되어야 합니다.
+ 프로젝트 루트 폴더의 `pom.xml` 파일
+ 프로젝트 디렉터리의 `.java` 파일

프로젝트에 Maven 래퍼 실행 파일(macOS용 `mvnw` 또는Windows용 `mvnw.cmd`)이 포함된 경우 프로젝트의 루트에 있는지 확인합니다. Amazon Q는 래퍼를 사용하므로 다른 Maven 구성은 필요하지 않습니다.

Maven 래퍼를 사용하지 않는 경우 Maven을 설치합니다. 자세한 내용은 Apache Maven 설명서에서 [Apache Maven 설치](https://maven.apache.org/install.html)를 참조하세요.

Maven을 설치한 후 `PATH` 변수에 추가합니다. 자세한 내용은 [내 `PATH`에 Maven을 추가하려면 어떻게 해야 합니까?](troubleshooting-code-transformation.md#add-maven-to-path)를 참조하세요. Java `runtime` 변수도 JRE가 아닌 JDK를 가리켜야 합니다. 구성이 올바른지 확인하려면 `mvn -v`를 실행합니다. 출력에는 JDK 경로를 가리키는 Maven 버전과 `runtime` 변수가 표시되어야 합니다.

## 3단계: 종속성 업그레이드 파일 생성(선택 사항)
<a name="create-dependency-upgrade-file"></a>

Amazon Q에 *종속성 업그레이드 파일*을 제공할 수 있습니다. 이 파일은 프로젝트의 종속성과 트랜스포메이션 중 업그레이드할 버전을 나열하는 YAML 파일입니다. 종속성 업그레이드 파일을 제공하여 Amazon Q가 업그레이드할 때 모르는 서드 파티 및 퍼스트 파티 종속성을 지정할 수 있습니다.

퍼스트 파티 종속성은 조직이 유지 관리하고 로컬 또는 조직의 프라이빗 네트워크에서만 사용할 수 있는 라이브러리, 플러그인 및 프레임워크를 나타냅니다. Amazon Q는 로컬 환경에서 빌드를 수행할 때 퍼스트 파티 종속성에 액세스할 수 있습니다. 자세한 내용은 [로컬 환경에서 코드 빌드](how-CT-works.md#java-local-builds) 단원을 참조하십시오. 서드 파티 종속성은 조직에 고유하지 않은 공개적으로 사용 가능한 또는 오픈 소스 종속성입니다.

YAML 파일에서 업그레이드하려는 퍼스트 파티 종속성을 지정할 수 있으며, Amazon Q는 JDK 업그레이드 중에 종속성을 업그레이드합니다(예: Java 8에서 17로). 초기 JDK 업그레이드 후 별도의 트랜스포메이션(17에서 17로 또는 21에서 21로)을 시작하여 서드 파티 종속성을 업그레이드할 수 있습니다.

Amazon Q가 최소 JDK 업그레이드를 수행하면 별도의 트랜스포메이션을 시작하여 모든 서드 파티 종속성을 업그레이드할 수 있습니다. 또는 서드 파티 종속성과 해당 버전을 YAML 파일에 지정하여 라이브러리 업그레이드 트랜스포메이션 중에만 해당 종속성을 업그레이드할 수 있습니다.

Amazon Q는 트랜스포메이션 중에 종속성 업그레이드 파일을 제공하라는 메시지를 표시합니다. 제공하려면 먼저 파일을 올바르게 구성했는지 확인합니다. YAML 파일에는 다음 필드가 필요합니다.
+ name - 종속성 업그레이드 파일의 이름입니다.
+ description(선택 사항) - 종속성 업그레이드 파일 및 트랜스포메이션에 대한 설명입니다.
+ dependencyManagement - 업그레이드할 종속성 및 플러그인 목록을 포함합니다.
+ dependencies - 업그레이드할 라이브러리의 이름과 버전을 포함합니다.
+ plugins - 업그레이드할 플러그인의 이름과 버전을 포함합니다.
+ identifier - 라이브러리, 플러그인 또는 기타 종속성의 이름입니다.
+ targetVersion - 업그레이드할 종속성의 버전입니다.
+ versionProperty(선택 사항) - 정의 중인 종속성의 버전으로, 애플리케이션의 `pom.xml` 파일에 `properties` 태그로 설정됩니다.
+ originType - 종속성이 퍼스트 파티인지 서드 파티인지를 나타내며, FIRST\$1PARTY 또는 THIRD\$1PARTY에 의해 지정됩니다.

다음은 종속성 업그레이드 YAML 파일의 예와 Amazon Q가 구문 분석하는 데 필요한 구성입니다.

```
name: dependency-upgrade
  
description: "Custom dependency version management for Java migration from JDK 8/11/17 to JDK 17/21"
  
  
dependencyManagement:
  
  dependencies:
  
    - identifier: "com.example:library1"
  
      targetVersion: "2.1.0"
  
      versionProperty: "library1.version"  # Optional
  
      originType: "FIRST_PARTY"   
  
    - identifier: "com.example:library2"
  
      targetVersion: "3.0.0"
  
      originType: "THIRD_PARTY"
  
  plugins:
  
    - identifier: "com.example.plugin"
  
      targetVersion: "1.2.0"
  
      versionProperty: "plugin.version"  # Optional
            
      originType: "THIRD_PARTY"
```

## 4단계: 코드 트랜스포메이션
<a name="transform-code-java"></a>

IDE 설정을 테스트하려면 샘플 프로젝트를 다운로드하여 압축을 풀고 IDE에 대해 다음 단계를 완료합니다. 제안된 변경 사항 및 트랜스포메이션 요약을 볼 수 있는 경우 자체 코드 프로젝트를 트랜스포메이션할 준비가 된 것입니다. 트랜스포메이션에 실패하면 IDE가 올바르게 구성되지 않은 것입니다. 구성 문제를 해결하려면 [2단계: 프로젝트 구성](#configure-project) 및 [문제 해결](troubleshooting-code-transformation.md)을 검토합니다.

**참고**  
코드 트랜스포메이션 중에 로컬 시스템을 끄거나 닫거나 절전 모드로 전환하지 마세요. 초기 및 검증 빌드는 안정적인 네트워크 연결이 필요한 클라이언트 측 환경을 사용합니다.

코드 프로젝트 또는 모듈의 언어 버전을 업그레이드하려면 IDE에 대해 다음 단계를 완료합니다.

------
#### [ JetBrains ]

1. JetBrains에서 업그레이드하려는 모듈을 엽니다. IDE에서 프로젝트를 성공적으로 구축했는지 확인합니다.

1. Amazon Q 로고를 선택하고 열리는 채팅 패널에서 애플리케이션을 변환하도록 Amazon Q에 요청합니다.

1. **애플리케이션 트랜스포메이션** 팝업이 나타납니다. 드롭다운 목록에서 업그레이드할 프로젝트를 선택한 다음 **트랜스포메이션**을 선택합니다.

1. Amazon Q는 업그레이드 종속성 파일을 제공하라는 메시지를 표시합니다. 업그레이드할 종속성 및 버전으로 YAML을 구성한 경우 파일을 추가합니다. Amazon Q는 파일을 검증하여 파일이 올바르게 구성되었는지 확인합니다. 오류가 발생하면 [3단계: 종속성 업그레이드 파일 생성(선택 사항)](#create-dependency-upgrade-file)에 설명된 형식과 필수 필드를 검토합니다.

1. Amazon Q가 트랜스포메이션을 시작합니다. **트랜스포메이션 세부 정보** 탭에서 진행 상황을 볼 수 있습니다.

1. 트랜스포메이션이 완료되면 프로젝트를 업데이트하기 전에 업그레이드된 코드를 확인할 수 있습니다. 새 코드를 보려면 **트랜스포메이션 세부 정보** 탭으로 이동한 다음 **diff 보기**를 선택합니다. 표시되는 **패치 적용** 창에서 파일을 선택하여 소스 코드와 업그레이드된 코드가 포함된 diff 보기를 엽니다.

1. Amazon Q의 변경 사항을 수락하려면 **diff 보기**를 선택하여 **패치 적용** 창을 엽니다. 업데이트된 파일을 모두 선택하고 **확인**을 선택하여 프로젝트를 업데이트합니다.

1. 코드가 업그레이드되고 제안된 다음 단계에 대한 세부 정보를 얻으려면 **트랜스포메이션 세부 정보** 탭에서 **트랜스포메이션 요약 보기**를 선택합니다.

------
#### [ Visual Studio Code ]

1. VS Code에서 업그레이드하려는 프로젝트 또는 작업 영역을 엽니다. IDE에서 프로젝트를 성공적으로 구축했는지 확인하세요.

1. Amazon Q 로고를 선택하고 열리는 채팅 패널에서 애플리케이션을 변환하도록 Amazon Q에 요청합니다.

1. IDE 상단의 검색 창에서 업그레이드할 프로젝트를 선택합니다.

1. Amazon Q가 소스 코드의 버전을 찾을 수 없는 경우 코드 버전을 선택하라는 메시지가 표시됩니다. 소스 코드가 기록되는 버전을 선택한 다음 팝업에서 **트랜스포메이션**을 선택하여 계속 진행합니다.

1. 메시지가 표시되면 JDK `JAVA_HOME` 경로를 입력합니다. 자세한 내용은 [VS Code 프로젝트 구성](#configure-vsc)을 참조하세요.

1. Amazon Q는 업그레이드 종속성 파일을 제공하라는 메시지를 표시합니다. 업그레이드할 종속성 및 버전으로 YAML을 구성한 경우 파일을 추가합니다. Amazon Q는 파일을 검증하여 파일이 올바르게 구성되었는지 확인합니다. 오류가 발생하면 [3단계: 종속성 업그레이드 파일 생성(선택 사항)](#create-dependency-upgrade-file)에 설명된 형식과 필수 필드를 검토합니다.

1. Amazon Q가 트랜스포메이션을 시작합니다. **Transformation Hub** 탭에서 진행 상황을 볼 수 있습니다.

1. 트랜스포메이션이 완료되면 **제안된 변경 사항** 탭이 열립니다. 프로젝트를 업데이트하기 전에 업그레이드된 코드를 확인하려면 **제안된 변경 사항 다운로드**를 선택합니다. 파일을 선택하여 소스 코드와 업그레이드된 코드가 포함된 diff 보기를 엽니다.

1. Amazon Q의 변경 사항을 수락하려면 **제안된 변경 사항** 탭으로 이동하여 **수락**을 선택합니다.

1. 코드가 업그레이드되고 제안된 다음 단계에 대한 세부 정보를 얻으려면 **Transformation Hub**에서 **보기 및 추가 작업** 줄임표 버튼을 선택한 다음 **트랜스포메이션 요약 표시**를 선택합니다.

------

# Amazon Q Developer가 Java 언어 업그레이드를 위한 코드를 트랜스포메이션하는 방법
<a name="how-CT-works"></a>

코드를 트랜스포메이션하기 위해 Amazon Q Developer는 프로젝트의 코드 언어 버전을 업그레이드하는 데 사용하는 트랜스포메이션 계획을 생성합니다. 코드를 트랜스포메이션한 후 변경 사항을 수락하기 전에 검토할 수 있도록 트랜스포메이션 요약과 파일 차이를 제공합니다. Amazon Q Developer는 업그레이드된 코드를 대상 JDK와 호환되는 데 필요한 최소한의 변경을 수행하므로 프로젝트의 라이브러리 및 종속성을 업그레이드하려면 추가 트랜스포메이션이 필요합니다. 다음 섹션에서는 Amazon Q가 트랜스포메이션을 수행하는 방법에 대한 자세한 내용을 제공합니다.

## 코드 빌드 및 트랜스포메이션 계획 생성
<a name="build-code-create-plan"></a>

코드 트랜스포메이션을 시작하기 위해 Amazon Q는 로컬에서 프로젝트를 빌드하고 소스 코드, 프로젝트 종속성 및 빌드 로그가 포함된 빌드 아티팩트를 생성합니다.

빌드 아티팩트를 생성한 후 Amazon Q는 보안 빌드 환경에서 코드를 빌드하고 업그레이드하려는 프로젝트 또는 모듈에 맞게 사용자 지정된 트랜스포메이션 계획을 생성합니다. 트랜스포메이션 계획에는 새로운 종속성 버전, 주요 코드 변경 사항, 더 이상 사용되지 않는 코드에 대한 권장 대체를 포함하여 Amazon Q가 시도할 특정 변경 사항이 요약되어 있습니다. 이러한 변경 사항은 코드의 예비 빌드를 기반으로 하며 트랜스포메이션 중에 변경될 수 있습니다.

## 코드 트랜스포메이션
<a name="transform-code"></a>

코드를 트랜스포메이션하기 위해 Amazon Q는 트랜스포메이션 계획의 제안된 변경 사항에 따라 코드를 대상 Java 버전으로 업그레이드하려고 시도합니다. 변경하면 소스 코드의 기존 유닛 테스트를 다시 빌드하고 실행하여 발생한 오류를 반복적으로 수정합니다. JDK 업그레이드는 다음 소스 코드 버전에서 대상 버전으로 수행할 수 있습니다.
+ Java 8\$117
+ Java 8\$121
+ Java 11\$117
+ Java 11\$121
+ Java 17\$121

Amazon Q는 코드를 대상 Java 버전과 호환되는 데 필요한 최소한의 변경 사항을 적용합니다. Amazon Q가 최소 JDK 업그레이드를 수행하면 별도의 트랜스포메이션을 시작하여 모든 서드 파티 종속성을 업그레이드할 수 있습니다. 또는 서드 파티 종속성과 해당 버전을 YAML 파일에 지정하여 라이브러리 업그레이드 트랜스포메이션 중에만 해당 종속성을 업그레이드할 수 있습니다.

Amazon Q는 코드를 업그레이드할 때 다음과 같은 변경을 시도합니다.
+ 대상 Java 버전 권장 사항에 따라 더 이상 사용되지 않는 코드 구성 요소 업데이트
+ 인기 있는 라이브러리 및 프레임워크를 대상 Java 버전과 호환되는 버전으로 업그레이드합니다. 여기에는 다음 라이브러리 및 프레임워크를 사용 가능한 최신 메이저 버전으로 업데이트하는 작업이 포함됩니다.
  + Apache Commons IO 
  + Apache HttpClient 
  + bc-fips 
  + Cucumber-JVM 
  + Hibernate 
  + jackson-annotations 
  + JakartaEE
  + Javax 
  + javax.servlet 
  + jaxb-api 
  + jaxb-impl 
  + jaxen 
  + jcl-over-slf4j 
  + json-simple 
  + jsr305 
  + junit 
  + junit-jupiter-api 
  + Log4j 
  + Micronaut 
  + Mockito 
  + mockito-core 
  + Okio 
  + PowerMockito 
  + Quarkus 
  + slf4j 
  + slf4j-api 
  + Spring Boot 
  + Spring Framework 
  + Spring Security 
  + Swagger 
  + testng 

**참고**  
클라이언트 측 빌드에는 안정적인 네트워크 연결이 필요하므로 코드 트랜스포메이션 중에 로컬 시스템을 끄거나 닫지 마세요.

## 로컬 환경에서 코드 빌드
<a name="java-local-builds"></a>

트랜스포메이션 중에 Amazon Q는 로컬 환경에서 확인 빌드를 수행합니다. Amazon Q는 서버 측 코드를 여러 단계로 트랜스포메이션합니다. 각 단계 후 Amazon Q는 코드를 로컬 환경에 전송하여 변경 사항을 빌드하고 테스트합니다. 그러면 트랜스포메이션을 계속하기 위해 코드가 서버 측으로 다시 전송됩니다.

로컬 환경의 빌드는 Amazon Q가 프라이빗 리소스에 액세스해야 하는 테스트를 실행할 수 있도록 하여 트랜스포메이션된 코드를 확인하는 데 도움이 됩니다. 로컬 환경에서 AI 생성 코드 빌드와 관련된 보안 위험을 최소화하기 위해 Amazon Q는 생성한 코드를 검토하고 업데이트하여 보안 문제를 해결합니다.

## 트랜스포메이션 요약 검토 및 변경 사항 수락
<a name="review-plan-accept-changes"></a>

트랜스포메이션이 완료되면 Amazon Q는 전체 프로젝트가 업그레이드되었는지 여부를 나타내는 최종 빌드의 상태를 포함하여 변경 사항에 대한 세부 정보가 포함된 트랜스포메이션 요약을 제공합니다. 빌드 로그 요약을 보고 Amazon Q가 업그레이드된 버전에서 코드를 빌드하지 못하게 하는 문제를 파악할 수도 있습니다.

트랜스포메이션 요약에는 트랜스포메이션 계획에 제안된 변경 사항과 Amazon Q가 궁극적으로 코드를 업그레이드하기 위해 수행한 변경 사항 간의 차이점과 원래 계획에 없는 추가 변경 사항이 추가로 포함됩니다.

트랜스포메이션 요약을 검토한 후 Amazon Q가 제안하는 변경 사항을 파일 diff 보기에서 볼 수 있습니다. Amazon Q에서 제안하는 모든 코드 변경 사항은 변경 사항을 수락할 때까지 현재 프로젝트 파일에 영향을 미치지 않습니다. 트랜스포메이션된 코드는 트랜스포메이션이 완료된 후 최대 30일까지 사용할 수 있습니다.

## 부분적으로 성공한 트랜스포메이션 완료
<a name="partially-successful-transformations"></a>

코드베이스의 복잡성과 세부 사항에 따라 트랜스포메이션이 부분적으로 성공하는 인스턴스가 있을 수 있습니다. 즉, Amazon Q는 프로젝트의 특정 파일 또는 코드 영역만 트랜스포메이션할 수 있었습니다. 이 경우 프로젝트를 업데이트된 언어 버전으로 빌드하려면 나머지 코드를 수동으로 업데이트해야 합니다.

코드의 나머지 부분을 트랜스포메이션하는 데 도움이 되도록 IDE에서 Amazon Q 채팅을 사용할 수 있습니다. Amazon Q에 부분적으로 업데이트된 파일을 검토하고 컴파일 오류와 같은 문제를 해결하기 위한 새 코드를 제공하도록 요청할 수 있습니다. 특성 [개발](q-in-IDE-chat.md#develop-code) 및 [Workspace 컨텍스트](workspace-context.md)와 같은 기능을 사용하여 더 많은 프로젝트를 컨텍스트로 포함하고 한 번에 여러 파일에 대한 제안을 받을 수도 있습니다.