

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

# Amazon Q Developer를 사용하여 Java 애플리케이션 트랜스포메이션
<a name="transform-java"></a>

**참고**  
이제 Java 업그레이드에 AWS Transform 사용자 지정을 사용할 수 있습니다. 버전 업그레이드, SDK 마이그레이션 등을 처리하고 실행마다 개선되는 에이전트 AI입니다. [시작](https://docs.aws.amazon.com/transform/latest/userguide/custom-get-started.html)

Amazon Q는 Java 애플리케이션에 대해 다음과 같은 유형의 트랜스포메이션을 지원합니다.
+ Java 언어 및 종속성 버전 업그레이드
+ Oracle에서 PostgreSQL로의 데이터베이스 마이그레이션을 위한 임베디드 SQL 변환

시작하려면 수행하려는 트랜스포메이션 유형에 대한 주제를 참조하세요.

**Topics**
+ [

## 할당량
](#quotas-java-transformation-ide)
+ [

# Amazon Q Developer를 사용하여 Java 버전 업그레이드
](code-transformation.md)
+ [

# Amazon Q Developer를 사용하여 Java 애플리케이션에 임베딩된 SQL 변환
](transform-sql.md)
+ [

# Amazon Q Developer를 사용하여 명령줄에서 코드 트랜스포메이션
](transform-CLI.md)
+ [

# 트랜스포메이션 작업 기록 보기
](transformation-job-history.md)
+ [

# Java 트랜스포메이션 문제 해결
](troubleshooting-code-transformation.md)

## 할당량
<a name="quotas-java-transformation-ide"></a>

IDE 및 명령줄에서 Amazon Q를 사용한 Java 애플리케이션 트랜스포메이션은 다음 할당량을 유지합니다.
+ **작업당 코드 줄** - Amazon Q가 지정된 트랜스포메이션 작업에서 트랜스포메이션할 수 있는 최대 코드 줄 수입니다.
+ **월별 코드 줄** - Amazon Q가 1개월 동안 트랜스포메이션할 수 있는 최대 코드 줄 수입니다.
+ **동시 작업** - 동시에 실행할 수 있는 최대 트랜스포메이션 작업 수입니다. 이 할당량은 [Visual Studio의 .NET 트랜스포메이션](transform-dotnet-IDE.md)을 포함하여 IDE의 모든 트랜스포메이션에 적용됩니다.
+ **월별 작업** - 한 달에 실행할 수 있는 최대 트랜스포메이션 작업 수입니다.


| Resource | 할당량 | 
| --- | --- | 
| 작업당 코드 줄 | Free 티어: 코드 1,000줄 | 
| 월별 코드 줄 | Free 티어: 코드 2,000줄 | 
| 동시 작업 |  사용자당 작업 1개  AWS 계정당 작업 25개  | 
| 월별 작업 수 |  프로 티어: 작업 1,000개 Free 티어: 작업 100개  | 

# 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)와 같은 기능을 사용하여 더 많은 프로젝트를 컨텍스트로 포함하고 한 번에 여러 파일에 대한 제안을 받을 수도 있습니다.

# Amazon Q Developer를 사용하여 Java 애플리케이션에 임베딩된 SQL 변환
<a name="transform-sql"></a>

IDE의 코드 변환을 위한 Amazon Q Developer 에이전트는 임베디드 SQL을 변환하여 AWS Database Migration Service (AWS DMS)를 사용한 Oracle에서 PostgreSQL로의 데이터베이스 마이그레이션을 완료하는 데 도움이 될 수 있습니다.

AWS DMS는 관계형 데이터베이스, 데이터 웨어하우스, NoSQL 데이터베이스 및 기타 유형의 데이터 스토어를 마이그레이션할 수 있는 클라우드 서비스입니다. DMS의 AWS DMS 스키마 변환은 대상 데이터베이스에 적용할 수 있는 데이터베이스 스키마 및 코드 객체를 변환하는 데 도움이 됩니다. 자세한 내용은 *AWS Database Migration Service 사용 설명서*의 [What is AWS Database Migration Service?](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)를 참조하세요.

 AWS DMS 및 DMS Schema Conversion을 사용하여 데이터베이스를 마이그레이션하는 경우 대상 데이터베이스와 호환되도록 애플리케이션의 임베디드 SQL을 변환해야 할 수 있습니다. 수동으로 변환하는 대신 IDE에서 Amazon Q를 사용하여 변환을 자동화할 수 있습니다. Amazon Q는 DMS 스키마 변환의 메타데이터를 사용하여 애플리케이션에 포함된 SQL을 대상 데이터베이스와 호환되는 버전으로 변환합니다.

현재 Amazon Q는 PostgreSQL로 마이그레이션하는 Oracle 데이터베이스용 Java 애플리케이션의 SQL을 변환할 수 있습니다. 애플리케이션에 Oracle SQL 문이 포함된 경우에만 IDE에서 SQL 코드를 트랜스포메이션하는 옵션이 표시됩니다. 더 많은 정보는 사전 조건을 참조하세요.

## 1단계: 사전 조건
<a name="sql-transform-prereqs"></a>

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

SQL 변환을 위한 코드 트랜스포메이션 작업을 시작하기 전에 다음 사전 조건이 충족되는지 확인합니다.
+ Oracle 데이터베이스에서 PostgreSQL 데이터베이스로 임베딩된 SQL이 있는 Java 애플리케이션을 마이그레이션하는 중입니다. 트랜스포메이션에 적합하려면 애플리케이션에 Oracle SQL 문이 포함되어야 합니다.
+  AWS DMS 스키마 변환을 사용하여 데이터베이스 스키마를 변환하는 프로세스를 완료했습니다. 자세한 내용은 *데이터베이스 마이그레이션 안내서*의 [DMS 스키마 변환을 사용하여 Oracle 데이터베이스를 Amazon RDS for PostgreSQL로 마이그레이션](https://docs.aws.amazon.com/dms/latest/sbs/schema-conversion-oracle-postgresql.html)을 참조하세요.
+ 스키마 변환이 완료되면 AWS DMS 콘솔에서 마이그레이션 프로젝트 파일을 다운로드한 것입니다.

## 2단계: 애플리케이션 구성
<a name="sql-transform-configure"></a>

임베딩된 SQL 코드를 변환하려면 Java 프로젝트에 하나 이상의 `.java` 파일이 포함되어야 합니다.

JetBrains IDE를 사용하는 경우 프로젝트 구조 설정의 SDK 필드를 해당 JDK로 설정해야 합니다. 프로젝트 구조 설정 구성에 대한 자세한 내용은 JetBrains 설명서의 [프로젝트 구조 설정](https://www.jetbrains.com/help/idea/project-settings-and-structure.html)을 참조하세요.

## 3단계: 임베딩된 SQL 변환
<a name="convert-sql"></a>

Java 애플리케이션에 포함된 SQL 코드를 PostgreSQL 대상 데이터베이스와 호환되는 형식으로 변환하려면 다음 단계를 완료하세요.

1. Amazon Q가 설치된 IDE에서 변환해야 하는 임베딩된 SQL이 포함된 Java 코드베이스를 엽니다.

1. Amazon Q 아이콘을 선택하여 채팅 패널을 엽니다.

1. Amazon Q에 채팅 패널에서 애플리케이션을 변환하도록 요청합니다.

1. Java 애플리케이션이 SQL 변환에 적합한 경우 Amazon Q는 수행할 트랜스포메이션 유형을 선택하라는 메시지를 표시합니다. **SQL conversion**을 입력합니다.

1. Amazon Q는 Amazon S3에서 검색한 스키마 메타데이터 파일을 업로드하라는 메시지를 표시합니다. 채팅에서 Amazon Q는 파일 검색 지침을 제공합니다.

1. Amazon Q는 임베딩된 SQL과 데이터베이스 스키마 파일이 포함된 프로젝트를 제공하라는 메시지를 표시합니다. 채팅 패널의 드롭다운 메뉴에서 적절한 파일을 선택합니다.

1. 데이터베이스 스키마에서 검색된 Amazon Q의 세부 정보가 정확한지 확인합니다.

1. Amazon Q가 SQL 코드 변환을 시작합니다. 몇 분 정도 걸릴 수 있습니다.

1. Amazon Q는 SQL 코드를 변환한 후 파일에 대한 모든 업데이트와 차이를 제공합니다. 차이의 변경 사항을 검토한 다음 변경 사항을 수락하여 코드를 업데이트합니다.

   또한 Amazon Q는 변경 사항에 대한 세부 정보가 포함된 트랜스포메이션 요약을 제공합니다.

1. 코드를 업데이트한 후 AWS DMS 콘솔로 돌아가서 새 SQL이 마이그레이션된 데이터베이스와 호환되는지 확인합니다.

# Amazon Q Developer를 사용하여 명령줄에서 코드 트랜스포메이션
<a name="transform-CLI"></a>

Amazon Q Developer 명령줄 트랜스포메이션 도구를 사용하여 명령줄에서 애플리케이션을 트랜스포메이션할 수 있습니다. 코드를 트랜스포메이션하는 경우, 소스 코드의 경로와 필요한 구성 파일을 제공하면 Amazon Q가 일련의 단계로 새 코드를 생성합니다. 트랜스포메이션 작업 전반에 걸쳐 Amazon Q는 로컬 환경에 코드를 빌드하여 변경 사항을 확인합니다. 자세한 내용은 [로컬 환경에서 코드 빌드](#local-builds) 단원을 참조하십시오. Amazon Q는 리포지토리에 코드 변경 사항을 커밋하는 새 브랜치를 생성합니다. 트랜스포메이션이 완료되면 브랜치를 원래 브랜치에 병합하여 변경 사항을 코드베이스에 통합할 수 있습니다.

시작하려면 명령줄 도구를 설치하고 인증한 다음 구성을 위한 명령을 확인하고 트랜스포메이션을 시작합니다.

**Topics**
+ [

## 로컬 환경에서 코드 빌드
](#local-builds)
+ [

## 명령
](#commands)
+ [

# Amazon Q Developer를 사용하여 명령줄에서 트랜스포메이션 실행
](run-CLI-transformations.md)
+ [

# 명령줄의 트랜스포메이션 문제 해결
](troubleshooting-CLI-transformations.md)
+ [

# Amazon Q Developer 명령줄 트랜스포메이션 도구 버전 기록
](transform-CLI-versions.md)

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

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

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

**참고**  
Amazon Q는 프로젝트의 요청, 설명 및 콘텐츠를 기반으로 트랜스포메이션을 수행합니다. 보안을 유지하려면 검증되지 않은 외부 아티팩트를 프로젝트 리포지토리에 포함하지 말고 기능과 보안 모두에 대해 트랜스포메이션된 코드를 항상 검증합니다.

## 명령
<a name="commands"></a>

이러한 명령 실행에 대한 단계별 지침은 [Amazon Q Developer를 사용하여 명령줄에서 트랜스포메이션 실행](run-CLI-transformations.md) 섹션을 참조하세요.

트랜스포메이션을 구성하고 Amazon Q Developer Pro에 인증하려면 다음을 실행합니다.

```
qct configure
```

Java 업그레이드를 위한 트랜스포메이션을 시작하려면 다음 명령을 실행합니다. *<your-source-java-version>*의 경우 `JAVA_1.8`, `JAVA_8`, `JAVA_11`, `JAVA_17` 또는 `JAVA_21`을 입력할 수 있습니다. *<your-target-java-version>*의 경우 `JAVA_17` 또는 `JAVA_21`을 입력할 수 있습니다. `--source_version` 및 `--target_version`은 모두 선택 사항입니다. `--trust` 플래그를 사용하면 코드를 검사하는 동안 트랜스포메이션을 실행하여 보안을 유지할 수 있습니다.

```
qct transform --source_folder <path-to-folder>
    --source_version <your-source-java-version>        
    --target_version <your-target-java-version>
    --trust
```

SQL 변환에 대한 트랜스포메이션을 시작하려면 다음을 실행합니다.

```
qct transform --source_folder <path-to-folder>
    --sql_conversion_config_file <path-to-sql-config-file>
```

사용 중인 트랜스포메이션용 명령줄 도구의 버전을 확인하려면 다음을 실행합니다.

```
qct -v
```

트랜스포메이션에 대한 도움을 받으려면 다음을 실행합니다.

```
qct -h
```

트랜스포메이션 작업 기록을 보려면 다음을 실행합니다.

```
qct history
```

트랜스포메이션 작업 기록 보기 및 관리에 대한 자세한 내용은 [명령줄에서 작업 기록 보기](transformation-job-history.md#cli-job-history) 섹션을 참조하세요.

# Amazon Q Developer를 사용하여 명령줄에서 트랜스포메이션 실행
<a name="run-CLI-transformations"></a>

Amazon Q Developer 명령줄 도구를 사용하여 명령줄에서 코드를 트랜스포메이션하려면 다음 단계를 완료하세요.

## 사전 조건
<a name="CLI-transformation-prerequisites"></a>

명령줄에서 트랜스포메이션을 시작하기 전에 다음 사전 조건을 충족해야 합니다.
+ Java 코드 버전을 업그레이드하는 경우 프로젝트는 [Amazon Q를 사용하여 Java 버전을 업그레이드하기 위한 사전 조건](code-transformation.md#java-upgrade-prerequisites)을 충족합니다.
+ Java 애플리케이션에서 임베딩된 SQL을 변환하는 경우 애플리케이션은 [SQL with Amazon Q를 변환하기 위한 사전 조건](transform-sql.md#sql-transform-prereqs)을 충족합니다.
+ 명령줄 환경에 Python이 설치되어 있습니다. 명령줄 도구를 설치하는 방법입니다. 현재 지원되는 최소 Python 버전은 3.12입니다.
+ macOS 또는 Linux에서 트랜스포메이션을 실행 중입니다.
+ 애플리케이션의 크기는 2GB 이하입니다.
+ Amazon Q가 업그레이드할 특정 종속성이 있는 경우 [종속성 업그레이드 파일](#step-3-dependency-upgrade-file)을 구성한 것입니다.

## 1단계: 인증 방법 선택 및 권한 추가
<a name="step-1-permissions-auth"></a>

IAM Identity Center를 인증하여 명령줄에서 트랜스포메이션을 실행할 수 있습니다. 필수 권한이 있는지 확인합니다.

**참고**  
명령줄에서 수행되는 트랜스포메이션에는 고객 관리형 키가 지원되지 않습니다.

### 권한 추가
<a name="transform-CLI-add-permissions"></a>

인증에 사용 중인 Amazon Q Developer 구독과 연결된 IAM 자격 증명에는 명령줄에서 트랜스포메이션을 수행할 수 있는 권한이 있어야 합니다. 계속하기 전에 IAM 자격 증명에 [사용자가 명령줄에서 변환을 실행하도록 허용](id-based-policy-examples-users.md#id-based-policy-examples-allow-cli-transformations)에 정의된 권한이 있는지 확인합니다.

### Amazon Q Developer 구독을 통한 IAM Identity Center 인증
<a name="auth-IdC"></a>

IAM Identity Center로 인증하려면 관리자가 [Amazon Q Developer Pro를 직원 사용자로 구독](subscribe-users.md)해야 하며 구독을 통해 인증할 시작 URL을 제공해야 합니다. 사용자 또는 관리자는 Amazon Q Developer 콘솔에서 시작 URL을 찾을 수 있습니다. 자세한 내용은 [Amazon Q Developer에서 사용할 시작 URL 찾기](manage-account-details.md) 섹션을 참조하세요.

필요한 권한을 추가하려면 [권한 추가](#transform-CLI-add-permissions) 섹션을 참조하세요.

[4단계: 구성 및 인증](#step-4-configure-auth)에서 시작 URL을 제공합니다.

## 2단계: 도구 설치
<a name="step-2-install"></a>



1. [트랜스포메이션을 위한 Amazon Q 명령줄 도구를 다운로드](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-1.2.2.zip)하고 압축을 풉니다.

   명령줄 도구의 이전 버전을 다운로드하려면 [버전 기록](transform-CLI-versions.md) 섹션을 참조하세요.

1. 도구를 설치하려면 Python에서 가상 환경을 설정하는 것이 좋습니다. 가상 환경을 생성하려면 도구를 설치하고 실행할 디렉터리에서 터미널 창을 엽니다.

   ```
   python -m venv qct-cli 
   ```

1. 가상 환경을 활성화하려면 다음을 수행합니다.

   ```
   source qct-cli/bin/activate 
   ```

1. 명령줄에 도구를 설치하려면 머신 아키텍처에 따라 도구의 압축을 푼 경로로 다음 명령을 실행합니다.

------
#### [ Linux\$1aarch64 ]

   ```
   pip install <path/to/unzipped-tool>/Linux_aarch64/amzn_qct_cli-1.2.2-py3-none-any.whl
   ```

------
#### [ Linux\$1x86\$164 ]

   ```
   pip install <path/to/unzipped-tool>/Linux_x86_64/amzn_qct_cli-1.2.2-py3-none-any.whl
   ```

------
**참고**  
트랜스포메이션에 이전 버전의 명령줄 도구를 사용하는 경우, 다운로드한 [버전](transform-CLI-versions.md)으로 `1.2.2`을 바꿉니다.

1. 도구가 설치되었는지 확인하려면 다음을 실행합니다.

   ```
   which qct
   ```

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

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

퍼스트 파티 종속성은 조직이 유지 관리하고 로컬 또는 조직의 프라이빗 네트워크에서만 사용할 수 있는 라이브러리, 플러그인 및 프레임워크를 나타냅니다. Amazon Q는 로컬 환경에서 빌드를 수행할 때 퍼스트 파티 종속성에 액세스할 수 있습니다. 자세한 내용은 [로컬 환경에서 코드 빌드](transform-CLI.md#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="step-4-configure-auth"></a>

트랜스포메이션을 시작하려면 먼저 IAM Identity Center로 인증하고 트랜스포메이션에 대한 구성 세부 정보를 제공해야 합니다.

1. 트랜스포메이션 구성 프로세스를 시작하려면 다음 명령을 실행합니다.

   ```
   qct configure
   ```

1. 지원되는 각 Java 버전에 대해 JDK 경로를 입력하라는 메시지가 표시됩니다. 대상 버전이 아닌 Java 애플리케이션 소스 버전의 JDK 경로만 지정하면 됩니다.

1. 그런 다음 IAM Identity Center로 인증하려면 Amazon Q Developer Pro 구독 프로필의 시작 URL을 입력하라는 메시지가 표시됩니다.

   그런 다음 구독한 AWS 리전 을 형식으로 입력합니다`us-east-1`. 지원되는 리전 목록은 [지원되는 리전](regions.md) 섹션을 참조하세요. 리전 코드 목록은 *AWS 일반 참조 안내서*의 [리전 엔드포인트](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints)를 참조하세요.

1. 구성 기본 설정은 configuration.ini 파일에 저장됩니다.

## 5단계: 트랜스포메이션 실행
<a name="step-5-run-transformation"></a>

수행 중인 트랜스포메이션 유형을 선택하여 필요한 구성 및 명령을 확인합니다.

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

------
#### [ Java upgrade ]

**트랜스포메이션 계획 수정**

Java 버전 업그레이드 중에 Amazon Q는 트랜스포메이션이 시작되기 전에 검토할 수 있는 트랜스포메이션 계획을 생성합니다. 계획에 대해 다음과 같은 변경을 요청할 수 있습니다.
+ 계획에 포함된 목록에서 Amazon Q가 업그레이드하는 라이브러리
  + 프롬프트 예제:
    + <dependency1>, <dependency2> 및 <dependency5>만 업그레이드
    + <dependency1> 또는 <dependency2> 종속성은 업그레이드하지 말 것
+ 라이브러리를 업그레이드할 대상 버전
  + 프롬프트 예제:
    + <version> 대신 이 버전에 대한 <dependency> 업그레이드
+ Amazon Q가 수행해야 하는 단계
  + 프롬프트 예제:
    + 1\$17단계만 완료
    + 5\$19단계 실행 안 함
+ 업그레이드할 종속성 추가(최신 JDK 버전으로 업그레이드할 때 옵션만 해당)
  + 프롬프트 예제:
    + 또한 <dependency1> 종속성을 <version2> 버전으로 업그레이드

**Java 코드 업그레이드**

1. 다음 명령을 실행하여 Java 업그레이드를 위한 트랜스포메이션을 시작합니다. 트랜스포메이션하려는 코드의 폴더 경로로 `<path-to-folder>`를 바꾸고 `JAVA_17` 또는 `JAVA_21`로 `<your-target-java-version>`을 바꿉니다.

   ```
   qct transform --source_folder <path-to-folder>
       --target_version <your-target-java-version>
   ```

   추가 명령 옵션: 
   + 업그레이드할 종속성을 지정하는 경우 종속성 업그레이드 파일의 경로와 함께 `--dependency_upgrade_file` 옵션을 추가합니다.
   + 트랜스포메이션 계획을 검토하거나 업데이트하지 않으려면 명령에 `--no-interactive` 플래그를 추가합니다. Amazon Q는 계획에 대한 피드백을 요청하지 않으며 변경을 요청할 기회가 없습니다.

1. 트랜스포메이션이 시작되기 전에 Maven 버전이 확인됩니다. 지원되는 최소 버전이 있는 경우 다음 출력이 표시됩니다.

   ```
   Running command: mvn --version at: path/to/current/directory 
   Your Maven version is supported for transformations.
   ```

   지원되는 Maven 버전이 없는 경우 계속 진행하려면 업데이트해야 합니다. 자세한 내용은 [사전 조건](#CLI-transformation-prerequisites) 섹션을 참조하세요.

1. `--no-interactive` 플래그를 추가하지 않으면 Amazon Q는 트랜스포메이션 계획에 대한 피드백을 제공하라는 메시지를 표시합니다. 변경하려는 사항을 영어 자연어로 설명할 수 있으며, Amazon Q는 요청한 변경 사항을 지원할 수 있는 경우 계획을 업데이트합니다.

1. Amazon Q가 트랜스포메이션을 시작합니다. 트랜스포메이션 전반에 걸쳐 상태 업데이트를 출력합니다. 완료되면 Amazon Q는 트랜스포메이션 결과, 로그 및 구성 파일이 출력되는 경로를 제공합니다.

   업그레이드된 코드는 생성된 새 브랜치 Amazon Q에 커밋됩니다. Amazon Q는 `qct configure` 실행 시 선택한 항목에 따라 하나 이상의 커밋으로 코드를 커밋합니다.

1. Java 버전을 업그레이드한 후 다른 트랜스포메이션을 실행하면, 첫 번째 트랜스포메이션에서 변경 사항을 커밋한 동일한 브랜치에서 두 번째 트랜스포메이션을 시작합니다.

------
#### [ SQL conversion ]

시작하기 전에 [Amazon Q Developer를 사용하여 Java 애플리케이션에 임베딩된 SQL 변환](transform-sql.md) 섹션을 읽고 이러한 유형의 트랜스포메이션에 대한 사전 조건을 이해해야 합니다.

1. 임베딩된 SQL을 변환하려면 먼저 [AWS DMS 스키마 변환](https://docs.aws.amazon.com/dms/latest/sbs/schema-conversion-oracle-postgresql.html)에서 스키마 메타데이터 파일의 경로가 포함된 YAML 파일을 생성해야 합니다.

   요구하는 파일 형식은 다음과 같습니다.

   ```
   schema_conv_metadata_path: <path-to-metadata-zip-file>
   ```

1. 다음 명령을 실행하여 SQL 변환에 대한 트랜스포메이션을 시작합니다. 트랜스포메이션하려는 코드의 폴더 경로로 `<path-to-folder>`를 바꾸고, 1단계에서 생성한 YAML 파일의 경로로 `<path-to-sql-config-file>`을 바꿉니다.

   ```
   qct transform --source_folder <path-to-folder>
       --sql_conversion_config_file <path-to-sql-config-file>
   ```

1. Amazon Q가 스키마 메타데이터 파일에서 여러 스키마를 찾으면 트랜스포메이션을 중지하고 감지된 스키마 목록을 제공합니다. SQL 변환에 사용할 스키마를 선택한 다음 YAML 파일에 새 필드(`schema: <schema-name>`)를 추가합니다.

1. Amazon Q가 트랜스포메이션을 시작합니다. 트랜스포메이션 전반에 걸쳐 상태 업데이트를 출력합니다. 완료되면 Amazon Q는 트랜스포메이션 결과, 로그 및 구성 파일이 출력되는 경로를 제공합니다.

   업그레이드된 코드는 생성된 새 브랜치 Amazon Q에 커밋됩니다.

------

## 트랜스포메이션 일시 중지 또는 취소
<a name="pause-cancel-CLI-transformations"></a>

현재 트랜스포메이션 작업을 일시 중지하거나 취소하도록 선택할 수 있습니다. 다시 시작하기 전에 트랜스포메이션 작업을 최대 12시간 동안 일시 중지할 수 있습니다.

**코드 트랜스포메이션 작업을 일시 중지하거나 취소하려면**

1. CLI 터미널에서 키보드에서 **Ctrl\$1C**를 누릅니다.

1. 트랜스포메이션을 일시 중지할지 취소할지 선택합니다.
   + 코드 트랜스포메이션 작업을 일시 중지하려면 `1`을 입력합니다. QCT 명령(``qct transform --source_folder=≤/Path/Given/Originally/To/QCT>``)을 사용하여 12시간 이내에 작업을 재개하여 코드 트랜스포메이션을 계속할 수 있습니다.
   + 코드 트랜스포메이션 작업을 취소하려면 `2`를 입력합니다.

# 명령줄의 트랜스포메이션 문제 해결
<a name="troubleshooting-CLI-transformations"></a>

다음 정보는 Amazon Q Developer를 사용하여 명령줄에서 애플리케이션을 트랜스포메이션할 때 발생하는 일반적인 문제를 해결하는 데 도움이 될 수 있습니다.

## 보유자 토큰이 새로 고쳐지지 않는 이유는 무엇인가요?
<a name="bearer-token-refresh"></a>

다음 오류가 표시되면 인증에 사용되는 보유자 토큰을 새로 고쳐야 합니다.

```
Refreshing bearer token
('Error refreshing bearer token due to: ', InvalidGrantException('An error occurred (InvalidGrantException) when calling the CreateToken operation: '))
('Error getting bearer token due to: ', RuntimeError(('Error refreshing bearer token due to: ', InvalidGrantException('An error occurred (InvalidGrantException) when calling the CreateToken operation: '))))
```

이 오류를 해결하려면 다음 명령을 실행합니다.

```
rm ~/.aws/qcodetransform/credentials.json
```

오래된 자격 증명 파일을 제거한 후 `qct transform`을 다시 실행하여 트랜스포메이션을 다시 시작합니다.

## 명령줄 도구의 최신 버전이 사용되지 않는 이유는 무엇인가요?
<a name="install-latest-version"></a>

트랜스포메이션을 위해 새 버전의 명령줄 도구를 다운로드할 때 이전 버전의 도구가 계속 사용되는 경우도 있습니다.

최신 버전의 도구를 사용하려면 [최신 버전](transform-CLI-versions.md)을 다운로드합니다. 그런 다음 기계 아키텍처에 따라 도구의 압축을 푼 경로로 다음 명령을 실행합니다.

------
#### [ Linux\$1aarch64 ]

```
pip install <path/to/unzipped-tool>/Linux_aarch64/amzn_qct_cli-1.2.2-py3-none-any.whl --force-reinstall
```

------
#### [ Linux\$1x86\$164 ]

```
pip install <path/to/unzipped-tool>/Linux_x86_64/amzn_qct_cli-1.2.2-py3-none-any.whl --force-reinstall
```

------

**참고**  
트랜스포메이션에 이전 버전의 명령줄 도구를 사용하는 경우 `1.2.2`을 다운로드한 [버전](transform-CLI-versions.md)으로 바꿉니다.

# Amazon Q Developer 명령줄 트랜스포메이션 도구 버전 기록
<a name="transform-CLI-versions"></a>

Amazon Q Developer 명령줄 트랜스포메이션 도구의 현재 및 과거 릴리스에 대한 자세한 내용은 다음 정보를 검토하세요. 테이블에는 각 버전의 다운로드 링크, 릴리스 날짜 및 릴리스 정보가 포함되어 있습니다.


****  

| 버전 | 릴리스 날짜 | 릴리스 노트 | 
| --- | --- | --- | 
|   [1.2.2(최신)](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-1.2.2.zip)   | 2026년 2월 26일 | QCT CLI에 AWS Transform 사용자 지정에 대한 프로모션 배너가 추가되었습니다. 변환 명령 실행 및 도움말 텍스트에 배너가 표시됩니다. 배너 출력을 억제하는 새 --skip-banner 플래그입니다. | 
|   [1.2.1](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-1.2.1.zip)   | 2025년 9월 9일 | 초기 프로젝트 업로드 중에 퍼스트 파티 상위 POM을 포함하도록 Maven 확장 업데이트를 진행했습니다. | 
|   [1.2.0](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-1.2.0.zip)   | 2025년 8월 7일 | Maven Java 프로젝트의 작업 기록 보기 및 모듈 구조 시각화에 대한 지원이 추가되었습니다. | 
|   [1.1.0](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-1.1.0.zip)   | 2025년 7월 21일 | 트랜스포메이션에 대한 원격 측정 수집 지원이 포함됩니다. | 
|   [1.0.0](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-1.0.0.zip)   | 2025년 6월 27일 | 명령줄 변환 도구는 일반적으로 사용할 수 있으며 Amazon Q Developer Pro 구독에서만 AWS IAM Identity Center를 통한 인증을 지원합니다. 유럽(프랑크푸르트) 리전의 구독 지원이 추가되었습니다. | 
|   [0.6.0](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-0.6.0.zip)   | 2025년 6월 6일 | 종속성 업그레이드 파일을 제공하고 트랜스포메이션 계획을 반복하기 위한 지원이 포함됩니다. | 
|   [0.5.2](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-0.5.2.zip)   | 2025년 4월 16일 | 버그 수정을 통해 퍼스트 파티 종속성이 있는 애플리케이션의 작업 및 실패를 재개할 때 발생하는 문제를 해결합니다. | 
|   [0.5.1](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-0.5.1.zip)   | 2025년 3월 13일 | IAM으로 인증할 때 더 이상 AWS 리전을 제공할 필요가 없습니다. 출력 로그에 작업 상태를 포함하는 버그 수정도 포함됩니다. | 
|   [0.5.0](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-0.5.0.zip)   | 2025년 2월 28일 | 를 통한 IAM 인증에 대한 지원을 포함합니다 AWS CLI. | 
|   [0.4.1](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-0.4.1.zip)   | 2025년 2월 17일 | Amazon Q Developer 구독이 구성된 AWS 리전 를 입력하기 위한 지원을 포함하는 버그 수정입니다. | 
|   [0.4.0](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-0.4.0.zip)   | 2025년 2월 14일 | Java 애플리케이션을 Java 21로 업그레이드하기 위한 지원이 포함되어 있습니다. | 
|   [0.3.0](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-0.3.0.zip)   | 2025년 2월 12일 | Java 애플리케이션에서 임베딩된 SQL 변환에 대한 지원을 포함합니다. | 
|   [0.2.0](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-0.2.0.zip)   | 2025년 2월 3일 | 여러 커밋에서 업그레이드된 Java 코드를 수신하기 위한 지원이 포함되어 있습니다. | 
|  [0.1.0](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-0.1.0.zip)  | 2024년 11월 27일 | 최초 릴리스입니다. 명령줄에서 Java 코드 버전을 업그레이드하기 위한 지원이 포함되어 있습니다. | 

# 트랜스포메이션 작업 기록 보기
<a name="transformation-job-history"></a>

Amazon Q는 Java 트랜스포메이션 작업 기록에 대한 포괄적인 개요를 제공하므로 IDE와 명령줄 모두에서 트랜스포메이션 작업을 추적하고 검토할 수 있습니다.

트랜스포메이션 작업 기록에는 작업에 대한 다음 정보가 포함됩니다.
+ **날짜** - 트랜스포메이션 작업이 실행된 시간
+ **프로젝트 이름** - 트랜스포메이션된 프로젝트의 이름입니다.
+ **상태** – 트랜스포메이션 작업의 현재 상태입니다.
+ **기간** - 트랜스포메이션을 완료하는 데 걸린 시간입니다.
+ **작업 ID** - 트랜스포메이션 작업의 고유 식별자입니다.
+ **Diff 패치** - 모든 코드 변경 사항을 보여주는 최종 diff 패치 파일의 링크 또는 경로
+ **요약** - 변경 사항에 대한 세부 정보가 포함된 트랜스포메이션 요약 파일의 링크 또는 경로입니다.

**참고**  
이 기능이 릴리스된 이후 실행된 트랜스포메이션만 작업 기록에서 사용할 수 있습니다. 기능 릴리스 날짜는 [Amazon Q Developer 사용 설명서의 설명서 기록](doc-history.md) 섹션을 참조하세요.

## IDE에서 작업 기록 보기
<a name="ide-job-history"></a>

**참고**  
이 기능은 현재 Visual Studio Code에서만 사용할 수 있습니다.

Visual Studio Code의 Transformation Hub는 Java 트랜스포메이션 작업 기록에 대한 포괄적인 보기를 제공합니다.

Transformation Hub의 테이블에는 지난 30일 동안의 가장 최근 트랜스포메이션 작업 10개가 나열됩니다. 테이블에서 트랜스포메이션 아티팩트 및 새로 고침 작업에 액세스하여 진행 상황을 추적하고 누락된 아티팩트를 가져올 수 있습니다.

### 트랜스포메이션 아티팩트 검색
<a name="retrieve-artifacts"></a>

작업 기록 테이블에서 diff 패치 및 요약 파일과 같은 트랜스포메이션 아티팩트에 액세스할 수 있습니다. 적절한 링크를 선택하여 IDE에서 diff 또는 요약을 엽니다.

아티팩트는 `.aws/transform` 디렉터리에 로컬로 저장되므로 이전 작업에서 이전에 다운로드한 트랜스포메이션 아티팩트에 액세스할 수도 있습니다.

### 작업 상태 새로 고침
<a name="refresh-jobs"></a>

작업 기록 테이블에서 작업 상태를 새로 고칠 수 있습니다. Amazon Q가 실패한 작업을 재개할 수 있는 경우와 같이 서버 측에서 아직 서버에 도달하지 않았을 수 있는 업데이트된 상태를 가져오려면 실패한 작업을 새로 고칩니다. 완료된 작업을 새로 고쳐 아직 나타나지 않았을 수 있는 아티팩트를 다운로드할 수도 있습니다.

### IDE에서 실행되는 작업에 대한 작업 기록이 저장되는 방법
<a name="ide-history-storage"></a>

Visual Studio Code의 경우 모든 트랜스포메이션 작업 정보와 아티팩트는 `.aws/transform` 디렉터리에 로컬로 저장됩니다. 스토리지는 다음과 같이 구성됩니다.

```
.aws/transform/
├── [project-name-1]/
│   ├── [job-id-1]/
│   │   ├── diff.patch
│   │   ├── [summary-1]/
│   │   │   └── summary.md
│   │   │   └── buildCommandOutput.log
│   └── [job-id-2]/
│       ├── diff.patch
│       ├── [summary-2]/
│       │   └── summary.md
│       │   └── buildCommandOutput.log
└── [project-name-2]/
    └── [job-id-3]/
        ├── diff.patch
        ├── [summary-3]/
        │   └── summary.md
        │   └── buildCommandOutput.log
```

## 명령줄에서 작업 기록 보기
<a name="cli-job-history"></a>

명령줄의 트랜스포메이션의 경우 **qct history** 명령은 사용자 지정 옵션을 사용하여 트랜스포메이션 작업 기록에 대한 액세스를 제공합니다.

CLI의 경우 트랜스포메이션 작업 기록 정보는 `.aws/qcodetransform/history/` 디렉터리에 로컬로 저장됩니다.

### qct 기록 명령 사용
<a name="cli-history-command"></a>

트랜스포메이션 작업 기록을 보는 기본 명령은 다음과 같습니다.

```
qct history
```

기본적으로 이 명령은 일시 중지되거나 진행 중인 작업 외에도 가장 최근의 트랜스포메이션 작업 10개를 표시합니다.

**--limit** 플래그와 함께 표시할 작업 기록 항목 수를 지정할 수도 있습니다. 예를 들어 20개의 작업을 표시하려면 다음을 실행합니다.

```
qct history --limit 20
```

# Java 트랜스포메이션 문제 해결
<a name="troubleshooting-code-transformation"></a>

다음 정보는 Amazon Q Developer로 Java 애플리케이션을 트랜스포메이션할 때 발생하는 일반적인 문제를 해결하는 데 도움이 될 수 있습니다.

**Topics**
+ [

## Amazon Q가 프로젝트를 업로드할 수 없는 이유는 무엇인가요?
](#project-upload-fail)
+ [

## Maven 명령이 실패하는 이유는 무엇입니까?
](#maven-commands-failing)
+ [

## 내 `PATH`에 Maven을 추가하려면 어떻게 해야 합니까?
](#add-maven-to-path)
+ [

## Amazon Q가 코드를 빌드할 수 없는 이유는 무엇입니까?
](#build-fail)
+ [

## 55분 후에 트랜스포메이션이 실패한 이유는 무엇인가요?
](#build-time-limit)
+ [

## 트랜스포메이션된 코드를 다운로드할 수 없는 이유는 무엇입니까?
](#download-code-fail)
+ [

## 코드 트랜스포메이션 로그에 액세스하려면 어떻게 해야 하나요?
](#logs)
+ [

## 트랜스포메이션 작업 ID는 어떻게 찾을 수 있나요?
](#job-id)

## Amazon Q가 프로젝트를 업로드할 수 없는 이유는 무엇인가요?
<a name="project-upload-fail"></a>

프로젝트가 업로드되지 않는 경우 다음 문제 중 하나 때문일 수 있습니다. Amazon Q에서 표시되는 오류에 해당하는 항목을 참조하세요.

**Topics**
+ [

### 프로젝트 크기 축소
](#reduce-project-size)
+ [

### IDE에서 프록시 설정 구성
](#configure-proxy)
+ [

### Amazon S3에 액세스 허용
](#allowlist-s3-bucket)

### 프로젝트 크기 축소
<a name="reduce-project-size"></a>

코드를 트랜스포메이션하기 위해 Amazon Q는 소스 코드, 프로젝트 종속성 및 빌드 로그가 포함된 프로젝트 아티팩트를 생성합니다. 트랜스포메이션 작업의 최대 프로젝트 아티팩트 크기는 2GB입니다. 프로젝트 아티팩트 크기와 관련된 오류가 발생하는 경우 프로젝트 크기를 줄이거나 더 작은 프로젝트를 트랜스포메이션해야 합니다. 코드 트랜스포메이션 로그에서 프로젝트 아티팩트 파일의 크기를 볼 수 있습니다. 자세한 내용은 [코드 트랜스포메이션 로그에 액세스하려면 어떻게 해야 하나요?](#logs) 섹션을 참조하세요.

### IDE에서 프록시 설정 구성
<a name="configure-proxy"></a>

코드를 트랜스포메이션하기 위해 Amazon Q는 프로젝트 아티팩트를 서비스 소유 Amazon S3 버킷에 업로드합니다. 업로드 프로세스의 일환으로 SSL 또는 TLS 인증서를 사용하여 Amazon S3와 IDE 간의 통신을 설정합니다. 프록시 서버를 사용하는 경우 프록시 서버에서 사용하는 SSL 또는 TLS 인증서를 신뢰할 수 있어야 합니다. 그렇지 않으면 Amazon Q가 프로젝트를 업로드할 수 없습니다.

프록시 또는 인증서와 관련된 오류가 발생하는 경우 인증서를 신뢰하거나 다른 프록시 설정을 업데이트하도록 IDE 또는 운영 체제를 구성해야 할 수 있습니다.

**참고**  
조직의 프록시 서버 또는 방화벽 뒤에 있는 경우 인증서와 관련이 없는 문제가 발생할 수도 있습니다. 인증서를 구성하기 위해 다음 절차를 완료했지만 여전히 문제가 있는 경우 네트워크 관리자에게 문의하여 IDE에서 Amazon S3와 통신할 수 있는지 확인합니다. 자세한 내용은 [Amazon S3에 액세스 허용](#allowlist-s3-bucket) 단원을 참조하십시오.

#### JetBrains에서 인증서 구성
<a name="configure-proxy-JB"></a>

프록시 서버에서 사용하는 SSL 또는 TLS 인증서를 신뢰하도록 JetBrains IDE Java 런타임 환경(JRE)을 구성하려면 SSL 또는 TLS 인증서를 JRE의 `cacerts` 파일로 가져와야 합니다. `cacerts` 파일은 HTTPS 및 SSL과 같은 보안 연결을 위한 신뢰할 수 있는 루트 인증서가 포함된 파일이며 JRE의 보안 설정의 일부입니다. 인증서를 가져오려면 다음 절차를 완료합니다.

**참고**  
실수로 인해 보안 연결에 문제가 발생할 수 있으므로 `cacerts` 파일을 수정하기 전에 백업하는 것이 좋습니다.

1. JRE의 `cacerts` 파일의 경로를 결정합니다. JetBrains IDE와 함께 제공된 내부 JRE의 `cacerts` 파일 경로는 운영 체제와 사용 중인 JetBrains IDE 버전에 따라 달라집니다.

   다음은 공통 운영 체제의 `cacerts` 파일 경로의 예입니다. 운영 체제를 선택하여 예시를 확인하세요.
**참고**  
 `<JetBrains Installation Folder>`는 JetBrains 제품이 설치된 디렉터리를 참조합니다. 이 디렉터리는 일반적으로 설치 프로세스 중에 선택됩니다.  
`jbr` 폴더는 JetBrains IDE와 함께 사용하도록 조정된 JRE의 특정 버전인 JetBrains IDE와 함께 번들링된 JRE를 나타냅니다.

------
#### [ Windows ]

   Windows에 설치된 JetBrains IDE의 `cacerts` 파일 경로는 다음과 같습니다.

   ```
   <JetBrains Installation Folder>\jbr\bin\cacerts
   ```

   예를 들어 Windows의 기본 위치에 JetBrains IDE를 설치한 경우 경로는 다음과 같을 수 있습니다.

   ```
   C:\Program Files\JetBrains\jbr\bin\cacerts
   ```

------
#### [ macOS ]

   macOS에 설치된 JetBrains IDE의 `cacerts` 파일 경로는 다음과 같습니다.

   ```
   /Applications/JetBrains Toolbox/<version>/JetBrains Toolbox.app/Contents/jbr/Contents/Home/lib/security/cacerts
   ```

   예를 들어 macOS의 기본 위치에 JetBrains IDE를 설치한 경우 경로는 다음과 같을 수 있습니다.

   ```
   /Applications/JetBrains Toolbox/2022.3.4/JetBrains Toolbox.app/Contents/jbr/Contents/Home/lib/security/cacerts
   ```

------
#### [ Linux ]

   Linux에 설치된 JetBrains IDE의 `cacerts` 파일 경로는 다음과 같습니다.

   ```
   /opt/jetbrains/jbr/lib/security/cacerts
   ```

------

1. `cacerts` 파일로 가져와야 하는 인증서를 결정합니다. 인증서 파일에는 일반적으로 `.cer`, `.crt`또는 `.der` 파일 확장자가 있습니다. 추가해야 할 인증서가 확실하지 않은 경우 네트워크 관리자에게 문의하세요.

1. 인증서를 `cacerts` 키 스토어로 가져옵니다. Java `keytool` 명령을 사용하여 수행할 수 있습니다.

   1. 명령 프롬프트를 열고 다음 명령을 입력합니다.

      ```
      keytool -import -alias <alias> -file <certificate_file> -keystore <path_to_cacerts>
      ```

   1. `<alias>`의 경우 나중에 참조하도록 가져오려는 인증서의 이름을 추가할 수 있습니다. 이 옵션은 선택 사항입니다.

   1. `<certificate_file>`의 경우 가져오려는 인증서의 경로를 지정합니다. 인증서가 포함된 `.cer`, `.crt` 또는 `.der` 파일의 경로여야 합니다.

   1. `<path_to_cacerts>`에는 1단계에서 저장한 `cacerts` 키 스토어 파일의 경로를 지정합니다. 이는 인증서를 가져오는 파일입니다.

   예를 들어 `my_certificate.cer`이라는 인증서를 Windows의 IntelliJ IDEA에서 번들링된 JRE의 `cacerts` 키 스토어로 가져오고 인증서에 별칭 `myalias`를 지정하려는 경우, 명령은 다음과 같을 수 있습니다.

   ```
   keytool -import -alias myalias -file my_certificate.cer -keystore "C:\Program Files\JetBrains\IntelliJ IDEA 2022.3.2\jbr\bin\cacerts"
   ```

1. 가져오기 프로세스 중에 키 스토어 암호를 입력하라는 메시지가 표시됩니다. `cacerts` 키 스토어의 기본 암호는 `changeit`입니다.

1. 명령을 실행한 후 인증서를 신뢰하라는 메시지가 표시됩니다. 인증서가 신뢰할 수 있는지 확인하고 가져오기를 완료하려면 `yes`를 입력합니다.

1. JRE 외에도 IDE 자체에 인증서를 추가해야 할 수도 있습니다. 자세한 내용은 JetBrains 설명서에서 [서버 인증서](https://www.jetbrains.com/help/idea/settings-tools-server-certificates.html)를 참조하세요.

#### Visual Studio Code에서 인증서 구성
<a name="configure-proxy-VSC"></a>

프록시 서버에서 사용하는 SSL 또는 TLS 인증서를 신뢰하도록 Visual Studio Code를 구성하려면 운영 체제에 대해 다음 프록시 설정을 구성했는지 확인합니다.

##### macOS의 Visual Studio Code에서 인증서 구성
<a name="certs-mac"></a>

macOS의 Visual Studio Code에 대한 다음 프록시 설정을 구성합니다.

##### macOS 키체인에 인증서 추가
<a name="w2aac11c16c17c13c23b7b9c11b5b1b5"></a>

아직 사용하지 않은 경우 프록시 서버에서 사용하는 인증서를 macOS 키체인에 추가해야 합니다. 키체인에 인증서를 추가하는 방법에 대한 자세한 내용은 키체인 액세스 사용 설명서의 [Mac에서 키체인 액세스를 사용하여 키체인에 인증서 추가](https://support.apple.com/guide/keychain-access/add-certificates-to-a-keychain-kyca2431/mac)를 참조하세요.

##### Mac CA VSCode 확장 설치
<a name="w2aac11c16c17c13c23b7b9c11b5b1b7"></a>

[Mac CA VSCode 확장](https://marketplace.visualstudio.com/items?itemName=linhmtran168.mac-ca-vscode)을 사용하면 Amazon Q가 Mac의 키체인 액세스에 추가한 인증서에 액세스할 수 있습니다.

확장을 설치하려면 다음을 수행하세요.

1. VS Code 확장 창에서 `mac-ca-vscode`를 검색하고 **설치**를 선택합니다.

1. VS Code를 다시 시작합니다.

##### macOS의 VS Code에서 프록시 설정 업데이트
<a name="w2aac11c16c17c13c23b7b9c11b5b1b9"></a>

다음 설정을 업데이트하여 VS Code가 프록시에 맞게 올바르게 구성되었는지 확인합니다.

1. VS Code에서 설정을 엽니다.

1. 검색줄에 `proxy`를 입력합니다.

1. **Http: Proxy** 필드에 프록시 URL을 추가합니다.

1. **Http: Proxy Strict SSL**의 선택을 취소합니다.

1. **Http: Proxy Support** 드롭다운 목록에서 **on**을 선택합니다.

1. 설정 검색창에 `http.experimental.systemCertificatesV2`를 입력합니다. **Http › Experimental: 시스템 인증서 V2**를 선택합니다.

##### Windows의 Visual Studio Code에서 인증서 구성
<a name="certs-windows"></a>

Windows의 Visual Studio Code에 대한 다음 프록시 설정을 구성합니다.

##### Windows에서 신뢰할 수 있는 루트 인증서로 인증서 추가
<a name="w2aac11c16c17c13c23b7b9c11b5b3b5"></a>

아직 사용하지 않은 경우 프록시 서버에서 사용하는 인증서를 Windows의 신뢰할 수 있는 루트 인증 기관 스토어에 추가해야 합니다. 인증서를 추가하려면 다음 절차를 완료합니다.

1. 검색 도구 또는 실행 명령 창을 엽니다.

1. 다음을 입력하여 인증서 관리자 도구를 엽니다.

   ```
   certmgr.msc
   ```

1. **신뢰할 수 있는 루트 인증 기관** 스토어를 선택합니다.

1. **인증서**를 마우스 오른쪽 버튼으로 클릭하고 **모든 작업**을 선택한 다음 **가져오기...**를 선택합니다.

1. 제공된 지침에 따라 프록시 인증서를 가져옵니다.

1. 인증서를 가져온 후 인증서가 추가되었는지 확인합니다.

   **신뢰할 수 있는 루트 인증 기관** 스토어에서 **인증서**를 두 번 클릭합니다. 추가한 인증서를 마우스 오른쪽 버튼으로 클릭하고 **속성**을 선택합니다. **인증서 목적**에서 **이 인증서의 모든 목적 활성화** 옵션을 선택해야 합니다.

##### Win-CA VSCode 확장 설치
<a name="w2aac11c16c17c13c23b7b9c11b5b3b7"></a>

[Win-CA VSCode 확장](https://marketplace.visualstudio.com/items?itemName=ukoloff.win-ca)을 사용하면 Amazon Q가 Windows의 신뢰할 수 있는 루트 인증서에 추가한 인증서에 액세스할 수 있습니다.

확장을 설치하려면 다음을 수행하세요.

1. VS Code 설정 창에서 `win-ca `를 검색합니다.

1. **삽입** 드롭다운 목록에서 **추가**를 선택합니다.

##### Windows의 VS Code에서 프록시 설정 업데이트
<a name="w2aac11c16c17c13c23b7b9c11b5b3b9"></a>

다음 설정을 업데이트하여 VS Code가 프록시에 맞게 올바르게 구성되었는지 확인합니다.

1. VS Code에서 설정을 엽니다.

1. 검색줄에 `proxy`를 입력합니다.

1. **Http: Proxy** 필드에 프록시 URL을 추가합니다.

1. **Http: Proxy Strict SSL**의 선택을 취소합니다.

1. **Http: Proxy Support** 드롭다운 목록에서 **on**을 선택합니다.

1. 설정 검색창에 `http.experimental.systemCertificatesV2`를 입력합니다. **Http › Experimental: 시스템 인증서 V2**를 선택합니다.

1. VS Code를 다시 시작합니다.

### Amazon S3에 액세스 허용
<a name="allowlist-s3-bucket"></a>

트랜스포메이션하는 동안 Amazon Q는 서비스 소유 Amazon S3 버킷에 코드를 업로드합니다. 네트워크 또는 조직이 Amazon S3에 대한 액세스를 구성하지 않은 경우 Amazon Q는 프로젝트를 업로드할 수 없습니다.

Amazon Q가 프로젝트를 업로드할 수 있도록 하려면 Amazon S3에 대한 액세스를 허용하도록 프록시 구성 및 데이터 손실 방지(DLP) 정책과 같은 기타 네트워크 구성 요소가 구성되어 있는지 확인합니다. Amazon Q가 프로젝트를 업로드하는 Amazon S3 버킷을 허용해야 할 수도 있습니다. 자세한 내용은 [허용 목록에 추가하는 Amazon S3 버킷 URL 및 ARN](firewall.md#data-perimeters) 단원을 참조하십시오.

대규모 프로젝트를 트랜스포메이션하면 DLP 정책 또는 기타 네트워크 구성 요소가 Amazon S3 버킷을 허용하도록 구성되지 않은 경우 지연이 발생하여 업로드가 성공하지 못할 수 있습니다. 버킷을 허용 목록에 추가하지 않도록 선택하는 경우 Amazon Q가 업로드할 수 있도록 더 작은 프로젝트를 트랜스포메이션해야 할 수 있습니다.

## Maven 명령이 실패하는 이유는 무엇입니까?
<a name="maven-commands-failing"></a>

다음은 JetBrains 및 Visual Studio Code IDE에서 볼 수 있는 Maven 구성 문제입니다. 문제를 해결했는데 여전히 Maven 오류가 표시되는 경우 프로젝트에 문제가 있을 수 있습니다. 오류 로그의 정보를 사용하여 프로젝트의 문제를 해결한 다음 프로젝트를 다시 트랜스포메이션합니다.

### JetBrains에서 Maven 구성 업데이트
<a name="jetbrains"></a>

Maven 명령 문제로 인해 JetBrains에서의 트랜스포메이션이 실패하면 **실행** 탭에 오류 로그가 표시됩니다. 로그의 정보를 사용하여 문제를 해결합니다. 다음은 해결해야 할 몇 가지 문제입니다.
+ Maven 홈 경로가 **번들링됨**으로 설정되어 있는지 확인합니다. **설정**으로 이동한 다음 **빌드, 실행, 배포** 섹션을 확장합니다. **빌드 도구** 섹션을 확장한 다음 **Maven**을 확장합니다. **Maven 홈 경로** 드롭다운 목록에서 **번들링됨**을 선택합니다.
+ Java 런타임 환경(JRE)이 프로젝트 JDK를 사용하고 있는지 확인합니다. **설정**으로 이동한 다음 **빌드, 실행, 배포** 섹션을 확장합니다. **Maven**을 확장하고 **실행기**를 선택합니다. **JRE** 드롭다운 목록에서 **프로젝트 JDK 사용**을 선택합니다.
+ Maven이 활성화되어 있는지 확인합니다. **설정**으로 이동하여 **플러그인**을 선택합니다. Maven을 검색하고 Maven 플러그인을 선택합니다. **활성화** 버튼이 표시되면 선택하여 Maven을 활성화합니다.

### Visual Studio Code에서 Maven 구성 업데이트
<a name="vscode"></a>

Maven 명령 문제로 인해 VS Code에서의 트랜스포메이션이 실패하면 오류 로그가 포함된 텍스트 파일이 새 탭에서 열립니다. 로그의 정보를 사용하여 문제를 해결합니다.

다음 옵션 중 하나를 구성했는지 확인합니다.
+ 프로젝트에는 프로젝트 루트 폴더의 Maven 래퍼가 포함되어 있습니다.
+ Amazon Q에서 지원하는 Maven 버전은 `PATH`에서 사용할 수 있습니다.

자세한 내용은 [내 `PATH`에 Maven을 추가하려면 어떻게 해야 합니까?](#add-maven-to-path) 섹션을 참조하세요.

## 내 `PATH`에 Maven을 추가하려면 어떻게 해야 합니까?
<a name="add-maven-to-path"></a>

Maven 래퍼를 사용하지 않고 VS Code에서 코드를 트랜스포메이션하려면 Maven을 설치하고 `PATH` 변수에 추가해야 합니다.

이미 Maven을 올바르게 설치했는지 확인하려면 Visual Studio Code 외부의 새 OS 터미널에서 `mvn -v`를 실행합니다. Maven 버전과 함께 출력이 표시됩니다.

Visual Studio Code 터미널에서 출력을 얻지만 OS 터미널에서는 출력을 얻지 못하거나 명령을 찾을 수 없는 경우 `PATH`에 Maven을 추가해야 합니다.

 Maven을 `PATH`에 추가하려면 시스템의 지침을 따릅니다.

------
#### [ macOS ]

macOS `PATH`에 Maven을 추가하려면 다음 단계를 완료합니다.

1. Maven 설치 디렉터리 또는 Maven을 설치한 폴더를 찾아 해당 폴더에 경로를 저장합니다.

1. 선택한 편집기에서 쉘의 구성 파일을 엽니다. 최신 macOS 버전의 경우 기본 쉘은 `zsh`이고 기본 구성 파일은 `~/.zshrc`에 있습니다.

   구성 파일 하단에 다음 줄을 추가합니다. `M2_HOME`의 값을 1단계에서 저장한 경로로 설정합니다.

   ```
   export M2_HOME="your Maven installation directory"
   export PATH="${M2_HOME}/bin:${PATH}"
   ```

   이러한 명령을 사용하면 모든 터미널에서 `mvn` 명령을 사용할 수 있습니다.

1. 모든 OS 터미널 창을 닫고 모든 Visual Studio Code 인스턴스를 종료합니다.

1. `PATH`에 Maven이 추가되었는지 확인하려면 새 OS 터미널을 열고 다음 명령을 실행합니다.

   ```
   mvn -v
   ```

   Maven 버전과 함께 출력이 표시됩니다.

1. Maven 출력이 표시되면 Visual Studio Code를 다시 시작합니다. 시스템을 다시 시작해야 할 수도 있습니다. 새 Visual Studio Code 터미널을 열고 다음 명령을 실행합니다.

   ```
   mvn -v
   ```

   출력은 4단계의 출력과 동일해야 합니다. Visual Studio Code 출력이 다른 경우 다음을 수행하여 설정이 올바른지 확인합니다.
   + Visual Studio Code에서 `PATH` 변수를 확인합니다. IDE 확장이 로컬 `PATH` 변수와 다르게 `PATH`를 변경할 수 있습니다. 확장을 제거하여 `PATH`에서 제거합니다.
   + Visual Studio Code에서 기본 쉘을 확인합니다. `zsh`가 아닌 다른 것으로 설정된 경우 쉘에 대해 이 단계를 반복합니다.

------
#### [ Windows ]

Windows `PATH`에 Maven을 추가하려면 다음 단계를 완료합니다.

1. Maven 설치 디렉터리 또는 Maven을 설치한 폴더를 찾아 해당 폴더에 경로를 저장합니다.

1. 환경 변수 창을 엽니다.

   1. Windows 버튼을 선택하여 검색 창을 엽니다.

   1. `Edit environment variables for your account`를 입력하고 선택합니다.

1. **환경 변수** 창에서 경로 변수를 찾습니다. 경로 변수가 이미 있는 경우 **편집...**을 선택하여 업데이트합니다. 경로 변수가 표시되지 않으면 **새로 만들기...**를 선택하여 추가합니다.

1. 나타나는 **환경 변수 편집** 창에서 기존 경로를 두 번 클릭하여 편집하거나 **새로 만들기**를 선택하여 새 경로 항목을 추가합니다.

   기존 Maven 경로 항목을 1단계에서 저장한 경로로 바꾸거나 경로를 새 항목으로 추가합니다. 다음 예제와 같이 경로 끝에 접미사로 `\bin`을 추가합니다.

   ```
   C:\Users\yourusername\Downloads\apache-maven-3.9.6-bin\apache-maven-3.9.6\bin
   ```

1. **확인**을 선택하여 경로 항목을 저장한 다음 **환경 변수** 창에서 **확인**을 다시 선택합니다.

1. 새 명령 프롬프트를 열고 다음 명령을 실행합니다.

   ```
   mvn -v
   ```

   Maven 버전과 함께 출력이 표시됩니다.

------

## Amazon Q가 코드를 빌드할 수 없는 이유는 무엇입니까?
<a name="build-fail"></a>

Amazon Q가 코드를 빌드할 때 트랜스포메이션이 실패하는 경우 Amazon Q가 코드를 빌드하는 환경에 맞게 프로젝트가 제대로 구성되지 않을 수 있습니다. 빌드 구성 또는 코드 구현을 업데이트해야 할 수 있습니다.

Amazon Q에서 제공하는 빌드 로그 출력을 검토하여 프로젝트에 변경할 수 있는 사항이 있는지 확인합니다. 다음은 Amazon Q가 코드를 빌드하지 못하게 할 수 있는 몇 가지 일반적인 문제입니다.

### pom.xml에서 절대 경로 제거
<a name="remove-absolute-path"></a>

pom.xml 파일에 절대 경로가 있는 경우 Amazon Q는 관련 파일을 찾을 수 없으므로 코드를 빌드하지 못할 수 있습니다.

다음은 `pom.xml` 파일에 있을 수 있는 절대 경로의 예입니다.

```
<toolspath>
    <path>/Library/Java/JavaVirtualMachines/jdk-11.0.11.jdk/Contents/Home/lib/tools.jar</path>
</toolspath>
```

절대 경로를 사용하는 대신 포인터를 사용하여 상대 경로를 생성할 수 있습니다. 다음은 이전 절대 경로를 상대 경로로 대체하는 방법의 예입니다.

```
<toolspath>
    <path>${java.home}/../lib/tools.jar</path>
</toolspath>
```

### 유닛 테스트에서 로컬 또는 외부 데이터베이스 제거
<a name="remove-external-databases"></a>

Amazon Q는 코드를 빌드할 때 프로젝트의 모든 유닛 테스트를 실행합니다. 유닛 테스트가 로컬 또는 외부 데이터베이스를 호출하는 경우 Amazon Q는 데이터베이스에 액세스할 수 없으므로 빌드가 실패합니다. 빌드가 실패하지 않도록 하려면 트랜스포메이션을 제출하기 전에 유닛 테스트에서 데이터베이스 호출을 제거하거나 유닛 테스트를 제거해야 합니다.

## 55분 후에 트랜스포메이션이 실패한 이유는 무엇인가요?
<a name="build-time-limit"></a>

55분 후에 코드 트랜스포메이션 작업이 실패하는 경우 코드 빌드 시간이 빌드 시간 제한을 초과할 수 있습니다. 현재 코드를 빌드하는 데 걸리는 시간은 55분입니다.

로컬 빌드 시간이 55분 이상 걸리는 경우 코드를 트랜스포메이션하는 데 걸리는 프로젝트의 빌드 시간을 줄입니다. 로컬 빌드가 코드 트랜스포메이션을 사용한 빌드보다 빠른 경우 프로젝트에서 실패할 수 있는 작업을 확인하거나 다른 환경에서 더 오랜 시간이 걸릴 수 있습니다. 장기 실행 테스트 사례를 비활성화하는 것이 좋습니다. 또한 보안 IDE 환경 또는 인터넷에서 사용할 수 없는 리소스에 액세스하려는 시도에는 제한 시간을 사용하는 것도 좋습니다.

## 트랜스포메이션된 코드를 다운로드할 수 없는 이유는 무엇입니까?
<a name="download-code-fail"></a>

트랜스포메이션이 완료된 후 코드를 다운로드할 수 없는 경우 다음 문제 중 하나 때문일 수 있습니다. Amazon Q에서 표시되는 오류에 해당하는 항목을 참조하세요.

**Topics**
+ [

### 프로젝트 크기 축소
](#reduce-project-size-output)
+ [

### 30일 이내에 코드 diff 다운로드
](#download-30-hrs)
+ [

### IDE에서 프록시 설정 구성
](#configure-proxy-download)
+ [

### JetBrains 프록시 설정에서 와일드카드 문자 제거
](#remove-wildcard)

### 프로젝트 크기 축소
<a name="reduce-project-size-output"></a>

트랜스포메이션이 완료되면 Amazon Q는 업그레이드된 코드와의 차이와 변경 사항에 대한 정보가 포함된 트랜스포메이션 요약이 포함된 출력 아티팩트를 생성합니다. IDE가 출력 아티팩트를 다운로드하려면 출력 아티팩트가 1GB 이하여야 합니다.

출력 아티팩트가 한도를 초과하는 경우 업그레이드된 코드 또는 트랜스포메이션 요약을 다운로드할 수 없습니다. 큰 출력 아티팩트를 방지하기 위해 작은 프로젝트를 트랜스포메이션해 보세요. 문제가 지속되면에 문의하십시오 지원. Amazon Q 지원 에 문의하는 방법에 대한 자세한 내용은 섹션을 참조하세요[Amazon Q Developer를 사용하여 지원와 채팅](support-chat.md).

### 30일 이내에 코드 diff 다운로드
<a name="download-30-hrs"></a>

업그레이드된 코드가 포함된 코드 diff 파일은 트랜스포메이션이 완료된 후 30일 동안만 사용할 수 있습니다. 트랜스포메이션이 완료된 후 30일이 지난 경우 트랜스포메이션을 다시 시작하여 diff 파일을 다운로드합니다.

### IDE에서 프록시 설정 구성
<a name="configure-proxy-download"></a>

Amazon Q는 서비스 소유 Amazon S3 버킷에서 업그레이드된 코드를 다운로드합니다. 다운로드 프로세스의 일환으로 SSL 또는 TLS 인증서를 사용하여 Amazon S3와 IDE 간의 통신을 설정합니다. 프록시 서버를 사용하는 경우 프록시 서버에서 사용하는 SSL 또는 TLS 인증서를 신뢰할 수 있어야 합니다. 그렇지 않으면 Amazon Q가 프로젝트를 업로드할 수 없습니다.

코드를 다운로드하려면 인증서를 신뢰하거나 다른 프록시 설정을 업데이트하도록 IDE를 구성해야 할 수 있습니다. 프록시 설정 업데이트에 대한 자세한 내용은 [IDE에서 프록시 설정 구성](#configure-proxy) 섹션을 참조하세요.

### JetBrains 프록시 설정에서 와일드카드 문자 제거
<a name="remove-wildcard"></a>

JetBrains IDE에서 프록시 설정을 구성한 경우 업그레이드된 코드를 다운로드할 때 다음 오류가 표시될 수 있습니다.

```
software.amazon.awssdk.core.exception.SdkClientException: 
Unable to execute HTTP request: Dangling meta character '*' near index 0
```

이는 IDE 프록시 설정의 **프록시 없음** 필드에 와일드카드 문자(\$1)가 존재하기 때문일 수 있습니다. Amazon Q에서 사용하는 Java SDK는 이 필드의 와일드카드 항목을 지원하지 않습니다.

코드를 다운로드하려면 **프록시 없음** 필드에서 와일드카드를 제거한 다음 IDE를 다시 시작합니다. 프록시를 우회해야 하는 호스트를 지정해야 하는 경우 와일드카드 대신 정규식을 사용합니다. JetBrains IDE에서 프록시 설정을 업데이트하려면 JetBrains 설명서의 [HTTP 프록시](https://www.jetbrains.com/help/idea/settings-http-proxy.html)를 참조하세요.

## 코드 트랜스포메이션 로그에 액세스하려면 어떻게 해야 하나요?
<a name="logs"></a>

### JetBrains의 로그에 액세스
<a name="jetbrains-logs"></a>

JetBrains 로그 파일에 액세스하는 방법에 대한 자세한 내용은 JetBrains 설명서의 [IDE 로그 파일 찾기](https://intellij-support.jetbrains.com/hc/en-us/articles/207241085-Locating-IDE-log-files)를 참조하세요.

JetBrains의 Amazon Q에서 이 내보낸 로그를 찾으려면 IDE 로그에서 다음 문자열을 검색하세요.

```
software.aws.toolkits.jetbrains.services.codemodernizer
```

코드 트랜스포메이션 로그는 이전 문자열로 시작합니다. Maven에서 생성된 로그는 **실행** 탭에 표시되며 로그 항목 앞뒤에 이전 문자열이 있습니다.

### Visual Studio Code의 로그에 액세스
<a name="vsc-logs"></a>

VS Code의 Amazon Q에서 내보낸 로그를 찾으려면 다음 단계를 완료합니다.

1. 상단 탐색 모음에서 **보기**를 선택한 다음 **명령 팔레트**를 선택합니다.

1. 나타나는 명령 팔레트에서 `Amazon Q: View Logs`를 검색합니다.

1. 로그는 IDE에서 열립니다. `CodeTransformation`에 대한 로그 파일을 검색하려면 `CMD + F` 또는 `Control + F`를 사용합니다.

VS Code의 코드 트랜스포메이션 로그에는 `CodeTransformation:` 접두사가 붙습니다. 다음은 Maven 복사 종속성 오류에 대해 VS Code에서 생성된 로그의 예입니다.

```
2024-02-12 11:29:16 [ERROR]: CodeTransformation: Error in running Maven copy-dependencies command mvn = /bin/sh: mvn: command not found
```

## 트랜스포메이션 작업 ID는 어떻게 찾을 수 있나요?
<a name="job-id"></a>

### JetBrains에서 작업 ID 찾기
<a name="jetbrains"></a>

JetBrains에서 트랜스포메이션 작업 ID를 찾으려면 **Transformation Hub**의 **트랜스포메이션 세부 정보** 탭으로 이동하여 **작업 상태 표시**(시계) 아이콘을 선택합니다.

### Visual Studio Code에서 작업 ID 찾기
<a name="vs-code"></a>

VS 코드에서 트랜스포메이션 작업 ID를 찾으려면 **Transformation Hub**로 이동하여 **작업 상태 표시**(시계) 아이콘을 선택합니다.