Amazon Q Developer가 Java 언어 업그레이드를 위한 코드를 변환하는 방법 - Amazon Q Developer

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

Amazon Q Developer가 Java 언어 업그레이드를 위한 코드를 변환하는 방법

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

코드 빌드 및 변환 계획 생성

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

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

코드 변환

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

  • Java 8~17

  • Java 8~21

  • Java 11~17

  • Java 11~21

  • Java 17~21

Amazon Q Developer는 코드를 대상 Java 버전과 호환되는 데 필요한 최소한의 변경 사항을 적용합니다. Java 17 또는 21로 성공적으로 업그레이드한 후 프로젝트의 라이브러리 및 종속성을 업그레이드하려면 추가 변환이 필요합니다. 동일한 소스 코드 버전과 대상 코드 버전(예: 17~17)을 선택합니다.

Amazon Q는 코드를 업그레이드할 때 다음과 같은 변경을 시도합니다.

  • 대상 Java 버전 권장 사항에 따라 더 이상 사용되지 않는 코드 구성 요소 업데이트

  • 인기 있는 라이브러리 및 프레임워크를 대상 Java 버전과 호환되는 버전으로 업그레이드합니다. 여기에는 다음 라이브러리 및 프레임워크를 사용 가능한 최신 메이저 버전으로 업데이트하는 작업이 포함됩니다.

    • Apache Commons IO

    • Apache HttpClient

    • bc-fips

    • Cucumber-JVM

    • 최대 절전 모드

    • 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

변환 요약 검토 및 변경 사항 수락

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

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

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

부분적으로 성공한 변환 완료

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

코드의 나머지 부분을 변환하는 데 도움이 되도록 IDE에서 Amazon Q 채팅을 사용할 수 있습니다. Amazon Q에 부분적으로 업데이트된 파일을 검토하고 컴파일 오류와 같은 문제를 해결하기 위한 새 코드를 제공하도록 요청할 수 있습니다. /dev@workspace와 같은 기능을 사용하여 더 많은 프로젝트를 컨텍스트로 포함하고 한 번에 여러 파일에 대한 제안을 받을 수도 있습니다.