애플리케이션의 Java 버전 업그레이드하기

watsonx Code Assistant 표준 요금제

Java 코드를 업그레이드하려면 먼저 애플리케이션을 빌드하고 분석한 다음 확인된 문제를 해결해야 합니다. 문제의 성격에 따라, 그 문제를 해결하는 능력이 자동화되거나, 지원되거나, 자기 주도적으로 이루어질 수 있습니다.

시작하기 전에 엔터프라이즈 Java 환경을 설정하세요.

Eclipse IDE 전용: 멀티 모듈 Java 최적으로 활용하려면, 어그리게이터 모듈과 각 서브 모듈을 Eclipse 내에서 별도의 프로젝트로 가져오십시오. 최상위 디렉토리를 단일 프로젝트로 가져오면 Watsonx Code Assistant 프로젝트를 성공적으로 인트로스펙트할 가능성이 낮습니다.

코드 분석에 필요한 시간

애플리케이션을 분석하는 데 걸리는 시간은 다양합니다. 다음 시간은 일반적인 시간입니다.

분석에 필요한 시간
시간 애플리케이션 세부사항
몇 초에서 몇 분 100개 미만의 수업
2~10분 20,000~50,000줄의 코드
10분 이상 30만 줄의 코드

watsonx Code Assistant 애플리케이션을 분석할 때 기본적으로 일부 타사 패키지는 코드 분석에서 제외됩니다. 자세한 내용은 애플리케이션 분석에서 제외되는 타사 패키지를 참조하세요.

애플리케이션을 분석하여 Java 버전 업그레이드하기

분석을 통해 해결해야 할 문제 목록을 확인할 수 있습니다. 문제를 해결하면 애플리케이션의 Java 버전이 업그레이드됩니다.

코드의 변경 사항을 되돌리는 경우 Java 업그레이드를 다시 수행하려면 '돌아가기'를 클릭하여 분석 하고 전체 분석을 수행해야 합니다.

  1. IDE에서 업그레이드하려는 애플리케이션 디렉터리의 계층 구조에서 아무 항목이나 마우스 오른쪽 버튼으로 클릭합니다.

  2. 두 경로 중 하나를 사용하여 업그레이드 프로세스를 시작하세요. 둘 다 동일합니다:

    • 를 클릭한 다음 watsonx Code Assistant 을 클릭한 다음 업그레이드 Java 버전을 클릭합니다.
    • 현대화 Java 애플리케이션을 클릭한 다음 업그레이드 Java 버전을 클릭합니다.
  3. <애플리케이션*이름>*업그레이드 페이지에서 애플리케이션을 분석할 규칙을 정의하는 분석 매개변수를 선택합니다.

    1. 선택적으로 Java 소스를 변경하면 권장 값과 함께 자동으로 표시됩니다.

      Java 소스 버전은 업그레이드하려는 Java 버전입니다. 빌드 구성에서 감지된 Java 버전에 따라 watsonx Code Assistant 소스로 사용할 Java 버전을 추천합니다. 애플리케이션에 적합한 경우 지원되는 Java 버전 목록에서 다른 Java 버전을 선택할 수 있습니다. 빌드 구성은 Maven ' pom.xml ' 파일에 있습니다.

      권장되는 Java 버전은 빌드 구성에서 감지된 Java 버전이거나 감지된 Java 버전을 고려할 때 사용 가능한 최상의 Java 버전입니다. 예를 들어 지원되지 않는 Java 9가 빌드 구성에 지정되어 있는 경우 Java 8이 권장 Java 버전이 됩니다. Java 8은 분석에 가장 근접하게 지원되는 Java 버전이며 감지된 Java 버전보다 이전 버전이므로 권장됩니다.

      최소 지원되는 Java 버전은 Java 6입니다.

    2. Java 대상을 선택합니다.

      Java 의 목표 버전은 Java 애플리케이션을 업그레이드하려는 Java 버전입니다. 선택할 수 있는 대상 버전은 장기(LTS) Java 의 릴리스입니다.

    3. ' 분석 ' 또는 ' 구축 및 분석' 중 하나를 클릭합니다.

      애플리케이션 분석은 애플리케이션 바이너리에서 수행됩니다. 분석을 시작하기 전에 애플리케이션을 빌드해야 합니다. 애플리케이션을 자동 또는 수동으로 빌드할 수 있습니다.

      • 애플리케이션을 자동으로 빌드하고 분석하려면 빌드 및 분석을 클릭합니다.
      • 애플리케이션을 수동으로 빌드한 후 분석을 클릭합니다.

      애플리케이션이 빌드되고 분석되면 수정하거나 검토해야 할 문제가 표시됩니다. 해결해야 할 문제에 따라 자동화, 지원 또는 자기 주도적으로 문제를 해결할 수 있습니다. 검토해야 할 이러한 이슈는 코드를 마이그레이션하기 위해 코드를 변경할 필요가 없습니다. 그러나 확인 또는 테스트가 필요할 수 있습니다.

      빌드 및 분석 버튼 을 클릭하면, 현재 Java 소스 버전에서 애플리케이션이 빌드되므로, Java 업그레이드 문제 분석이 가능합니다. 응용 프로그램을 성공적으로 빌드할 수 있도록 Java 소스 버전의 Java 개발자 키트로 IDE를 구성해야 합니다.

      빌드 및 분석 과정에서, 하위 모듈에 liberty-assembly 패키징이 포함된 멀티 모듈 프로젝트에 문제가 있는 경우, 프로젝트의 루트 수준에서 mvn install 를 실행하고 다시 시도하십시오.

분석 보고서에.java 파일 대신.class 파일이 포함되는 이유는 무엇인가요?

바이너리(JAR/WAR/EAR) 분석을 실행하면 항상 클래스 파일에서 문제가 발견됩니다. 바이너리 스캐너가 watsonx Code Assistant 외부에서 실행되는 경우 소스 코드에 액세스할 수 없으므로.class 파일이 분석 보고서에 포함됩니다. 마이그레이션 계획을 가져오거나 watsonx Code Assistant 에서 분석을 실행할 때 보고서에는 클래스 파일에 대한 참조가 표시되지만 watsonx Code Assistant 은.class 파일을.java 파일에 연결하고.java 파일은 watsonx Code Assistant UI에 표시됩니다.

문제 해결 및 애플리케이션에 대한 추가 정보 검토

*<애플리케이션 이름>*업그레이드 페이지에 다음 정보가 나열됩니다:

  • Java 버전 소스 및 Java 버전 대상
  • 기술 보고서, 인벤토리 보고서 및 분석 보고서로 연결되는 링크
  • 해결해야 할 문제(자동화, 지원 또는 직접 해결)와 추가 정보를 위한 탭

대상 Java 개발자 키트는 자동화된 수정을 실행할 때와 Java 버전 대상 변경이 이루어진 후 애플리케이션을 빌드할 때 필요합니다. 대상 Java 개발자 키트가 IDE에 맞게 구성되어 있는지 확인하세요.

  • Eclipse IDE 확장 프로그램은 IDE에 구성된 모든 Java 개발자 키트 집합에서 Java 버전 대상과 일치하는 올바른 Java 개발자 키트를 자동으로 찾으려고 시도합니다.
  • Visual Studio Code IDE에서 Java 개발자 키트 구성을 수동으로 변경해야 합니다.

자동화된 수정 완료

하나 이상의 수정 사항이 있는 자동화된 수정 사항 탭이 있는 경우 해당 탭을 선택합니다.

watsonx Code Assistant 수정 작업을 완료하므로 코드를 변경할 필요가 없습니다. LLM(대규모 언어 모델)은 자동 수정에 사용되지 않습니다.

  1. 지침을 펼쳐서 읽어보세요.
  2. 선택 사항으로 이슈를 열어 이슈에 대한 설명을 검토합니다.
  3. 자동 수정 실행을 클릭합니다.
    • 자동 수정이 수정되었습니다.
    • 외부 이슈는 관련 종속성을 업데이트할 때까지 목록에 남아 있습니다.
  4. 자동 수정 실행이 완료되면 다시 빌드 및 새로 고침을 클릭하여 문제 목록을 업데이트합니다.

자동 수정 프로그램이 실행되지 않고 콘솔 출력에 컴파일 오류가 표시되는 경우, maven-compiler 플러그인의 버전을 3.13.0 이상으로 업데이트해야 합니다.

자동화 실행 시, 하위 모듈에 liberty-assembly 패키징이 포함된 멀티 모듈 프로젝트에 문제가 있는 경우, 프로젝트의 루트 수준에서 mvn install 를 실행하고 다시 시도하십시오.

지원 수정 완료

하나 이상의 수정 사항이 있는 지원되는 수정 사항 탭이 있는 경우 해당 탭을 선택합니다.

코드를 수정하더라도 watsonx Code Assistant 채팅에서 코드를 변경하는 방법에 대한 제안을 제공하여 도움을 줍니다.

지원 수준은 문제의 유형에 따라 다릅니다. 도움말 수정 기능은 문제를 해결하는 데 도움이 되며, 때로는 코드 제안이 문제 해결의 전부 또는 대부분을 해결해 줍니다. 다른 경우에는 컴파일 실패를 방지하기 위해 오래된 API를 제거하는 것처럼 간단한 코드 제안이 제공될 수 있으며 추가 조치가 필요하지 않습니다. 각 보조 수정의 가치와 한계를 이해하기 위해서는 각 보조 수정에 대한 단계를 따르는 것이 중요합니다. 완전한 코드 제안이 제공되지 않는 경우, 지원되는 수정 사항을 채팅에서 대화를 시작하는 것으로 생각할 수 있습니다. 채팅에 계속 참여하여 문제와 해결 방법에 대한 이해를 넓히세요.

지원되는 수정 사항과 관련된 문제 목록은 지원되는 수정 사항 참조를 참조하세요.

지원 수정 기능을 사용하려면

  1. 지침을 펼치고 지침을 따릅니다.

  2. 각 이슈에 대해 확장합니다.

  3. 자세한 내용을 보려면 더 읽기를 클릭하세요.

  4. 이슈에 나열된 파일을 클릭합니다. 파일이 편집기에서 열립니다.

  5. 이슈를 확장하여 이슈 세부 정보를 확인합니다.

  6. 세부 정보에서 코드 스니펫을 선택하라는 메시지가 표시되면 해당 코드 스니펫을 선택합니다.

  7. 도움말을 클릭하여 문제 해결에 도움을 받습니다.

    Visual Studio Code 사용하는 경우 다음 제한 사항이 적용됩니다:

    • 활성 편집기에서 Java 코드를 하나만 선택해야 합니다.
    • Java 코드를 선택한 활성 편집기가 현대화에서 리버티로 또는 Java 업그레이드 보기와 다른 편집기 그룹에 있는지 확인하세요.
  8. 채팅에서 코드 제안을 따라 코드를 수정하고 문제를 해결하세요.

    때로는 채팅창이 코드 제안 대신 정보 제공 응답을 제공합니다.

  9. 문제를 해결할 때, 모든 지원되는 수정 사항이 해결될 때까지 재구축과 새로 고침을 클릭하십시오.

자기 주도적 수정 완료

하나 이상의 수정 사항이 있는 자기 주도적 수정 탭이 있는 경우 해당 탭을 선택합니다.

코드를 변경하고 코드를 수정하는 방법을 결정하지만 채팅에서 도움을 받을 수 있습니다.

  1. 지침을 펼치고 지침을 따릅니다.
  2. 각 이슈를 펼칩니다.
  3. 자세한 내용을 보려면 더 읽기를 클릭하세요.
  4. 이슈에 나열된 파일을 클릭합니다. 파일이 편집기에서 열립니다.
  5. 문제가 발생할 때마다 표시되는 채팅 시작을 클릭합니다. 채팅 창이 열리면 해당 상황에 대한 도움을 받을 수 있습니다. 예를 들어 코드 어시스턴트에게 현재 코드가 무엇을 하는지 물어볼 수 있습니다. 또는 문제가 있는 코드에 대한 대체 구현이 있는지 문의할 수 있습니다.
  6. 문제를 해결할 때, 모든 자가 해결이 완료될 때까지 재구축과 새로 고침을 클릭하세요.

추가 정보 주소 지정

추가 정보 탭에 숫자가 하나 이상 있는 경우 해당 탭을 선택합니다.

탭에 나열된 문제는 다른 탭의 문제가 결정되는 방식과 동일한 방식으로 결정됩니다. 추가 정보 문제는 코드를 변경할 필요가 없지만, 코드를 마이그레이션할 때 애플리케이션이 제대로 작동하는지 확인하기 위해 문제를 검토하십시오.

추가 정보는 API의 사소한 행동 변화와 그 문제에 대한 대처 방법과 같은 문제를 나타낼 수 있습니다.

  • 지침을 펼쳐서 따르세요.

  • 각 문제를 클릭합니다.

    • 자세한 내용을 보려면 더 읽기를 클릭하세요.
    • 이슈에 나열된 파일에 있는 링크를 클릭하여 코드를 검토합니다.

현재 애플리케이션 외부에서 외부 문제 해결

수정 작업을 하는 동안 일부는 현재 애플리케이션 외부에서 발생한 외부 문제로 분류될 수 있습니다. 이러한 문제에 대한 소스 코드는 현재 소스 애플리케이션의 일부가 아닌 지정된 아카이브에 있습니다.

아카이브가 조직에서 소유하고 있는 라이브러리인 경우:

  1. 관련 소스 코드를 별도의 애플리케이션으로 열고 watsonx Code Assistant 을 사용하여 문제를 해결할 수 있습니다.

  2. 그런 다음 현재 애플리케이션을 업데이트하여 수정된 새 버전을 사용할 수 있습니다.

아카이브가 조직에서 소유하지 않은 라이브러리인 경우:

  1. 이 문제가 포함되지 않은 버전으로 업데이트해야 합니다. 해당 버전이 없는 경우 대체 기술을 사용해야 할 수도 있습니다.

  2. watsonx Code Assistant 으로 문의하여 대체품 결정에 대한 도움을 받을 수 있습니다. 시작하려면 What is the library X used for? 또는 Is it easy to replace? 으로 문의하세요. 대화를 계속 진행하여 구체적인 라이브러리 사용법에 대한 자세한 정보를 얻으세요.