Java 애플리케이션 현대화
watsonx Code Assistant 표준 요금제
애플리케이션을 Liberty로 현대화할 수 있습니다. 애플리케이션을 현대화하려면 먼저 마이그레이션 번들을 업로드하거나 애플리케이션을 빌드 및 분석한 다음 애플리케이션 문제를 해결해야 합니다.
시작하기 전에 엔터프라이즈 Java 환경을 설정하세요.
선택할 수 있는 애플리케이션 서버 소스는 다음과 같습니다:
- Apache Tomcat 애플리케이션 서버
- JBoss 애플리케이션 서버
- Weblogic Application Server
- WebSphere Application Server 전통적인 V6.1
- WebSphere Application Server 전통적인 V7.0
- WebSphere Application Server 전통적인 V8.0
- WebSphere Application Server 전통적인 V8.5.5
- WebSphere Application Server 전통적인 V9.0
- 기타 타사 애플리케이션 서버
Eclipse IDE 전용: 멀티 모듈 Java 최적으로 활용하려면, 어그리게이터 모듈과 각 서브 모듈을 Eclipse 내에서 별도의 프로젝트로 가져오십시오. 최상위 디렉토리를 단일 프로젝트로 가져오면 Watsonx Code Assistant 프로젝트를 성공적으로 인트로스펙트할 가능성이 낮습니다.
애플리케이션 마이그레이션 번들을 업로드하는 단계 또는 애플리케이션을 분석하는 단계를 완료합니다. 한 가지 단계를 완료한 후에는 마이그레이션 문제를 해결할 수 있습니다. 문제를 해결하는 단계는 마이그레이션 번들 단계와 애플리케이션 분석 모두 동일합니다. 문제를 해결하고 나면 현대화된 애플리케이션을 갖게 됩니다.
코드 분석에 필요한 시간
애플리케이션을 분석하는 데 걸리는 시간은 다양합니다. 다음 시간은 일반적인 시간입니다.
| 시간 | 애플리케이션 세부사항 |
|---|---|
| 몇 초에서 몇 분 | 100개 미만의 수업 |
| 2~10분 | 20,000~50,000줄의 코드 |
| 10분 이상 | 30만 줄의 코드 |
watsonx Code Assistant 애플리케이션을 분석할 때 기본적으로 일부 타사 패키지는 코드 분석에서 제외됩니다. 자세한 내용은 애플리케이션 분석에서 제외되는 타사 패키지를 참조하세요.
마이그레이션 번들을 사용하여 애플리케이션 현대화하기
다음 단계에서는 마이그레이션 번들을 생성하기 위해 IBM Cloud® Transformation Advisor 버전 3.10 이상을 사용한다고 가정합니다. 마이그레이션 번들에는 해결해야 하는 현대화 문제 목록이 포함되어 있습니다. 또한 애플리케이션이 Liberty에서 제대로 작동할 수 있도록 자동으로 생성된 구성 정보도 포함되어 있습니다.
이미 프로젝트에 대한 마이그레이션 번들을 업로드하고 분석한 경우, 새로운 마이그레이션 번들을 업로드하면 기존 분석이 덮어쓰기됩니다.
애플리케이션을 현대화하기 전에, 애플리케이션의 전체 빌드를 수행하여 알려진 좋은 애플리케이션 빌드에서 시작하는지 확인하십시오. 이 빌드는 또한 클래스 파일이 최신 소스 코드와 일치하도록 보장합니다. 이는 Java 버전 업그레이드를 위한 변경 사항을 추가하는 자동화를 실행하기 전에 필요한 사항입니다.
코드의 변경 사항을 되돌리면 애플리케이션을 다시 현대화하려면 업로드/분석으로 돌아가기를 클릭하고 전체 분석을 수행해야 합니다.
-
IDE에서 현대화하려는 애플리케이션 디렉터리의 계층 구조에서 아무 항목이나 마우스 오른쪽 버튼으로 클릭합니다.
-
두 경로 중 하나를 사용하여 현대화 프로세스를 시작하세요. 둘 다 동일합니다:
- 를 클릭한 다음 watsonx Code Assistant 를 클릭한 다음 현대화를 클릭합니다.
- 현대화 Java 애플리케이션을 클릭한 다음, 리버티로 현대화를 클릭합니다.
-
*<애플리케이션 이름>*현대화 페이지에서 마이그레이션 번들을 업로드합니다.
IDE는 프로젝트 폴더를 분석하고 애플리케이션에 대한 정보를 수집한 다음 Transformation Advisor 생성하는 마이그레이션 번들을 업로드합니다.
-
마이그레이션 번들 업로드를 클릭합니다.
-
목록에서 애플리케이션 번들 '
.zip파일을 선택하고 열기를 클릭합니다.마이그레이션 번들 업로드 프로세스가 완료되면*<애플리케이션 이름>*현대화 페이지에 번들에 포함된 다음 구성 파일이 표시됩니다:
server.xml'은 Liberty의 구성 파일이며 애플리케이션을 시작하는 데 필요합니다.Containerfile'은 Liberty 애플리케이션의 컨테이너 이미지를 빌드할 때만 필요합니다.
-
프로젝트에 추가할 파일을 선택한 다음 '
Proceed'을 클릭합니다.- (필수) '
server.xml' 파일을 선택합니다. - (선택 사항) Liberty 애플리케이션용 컨테이너 이미지를 빌드하는 경우에만 '
Containerfile' 파일을 선택합니다.
- (필수) '
마이그레이션 번들 업로드가 완료되면 수정하거나 검토할 문제가 표시됩니다.
-
-
해결해야 할 문제에 따라 자동화, 지원 또는 자기 주도적으로 문제를 해결할 수 있습니다. 추가 정보 탭의 문제는 코드 변경이 필요하지 않지만 원하는 경우 확인하거나 테스트한 후 코드를 변경해야 할 수도 있습니다.
애플리케이션을 분석하여 현대화하기
다음 단계에서는 애플리케이션을 현대화하기 위해 Transformation Advisor 마이그레이션 번들을 사용하는 대신 애플리케이션을 분석한다고 가정합니다. 분석은 ' server.xml ' 파일에 해결해야 할 문제 목록과 제한된 서버 구성을 제공합니다. server.xml 파일에는 애플리케이션이 사용하는 기능 목록이 포함되어 있지만, 데이터베이스 연결이나 JMS 구성과 같은 다른
구성 정보는 포함되어 있지 않습니다.
코드의 변경 사항을 되돌리면 애플리케이션을 다시 현대화하려면 업로드/분석으로 돌아가기를 클릭하고 전체 분석을 수행해야 합니다.
-
IDE에서 현대화하려는 애플리케이션 디렉터리의 계층 구조에서 아무 항목이나 마우스 오른쪽 버튼으로 클릭합니다.
-
두 경로 중 하나를 사용하여 현대화 프로세스를 시작하세요. 둘 다 동일합니다:
- 를 클릭한 다음 watsonx Code Assistant 를 클릭한 다음 현대화를 클릭합니다.
- 현대화 Java 애플리케이션을 클릭한 다음, 리버티로 현대화를 클릭합니다.
-
*<애플리케이션 이름>*현대화 페이지에서 애플리케이션 분석을 확장하고 분석 시작을 클릭합니다.
-
애플리케이션 서버를 분석할 규칙을 정의하는 분석 매개변수를 선택합니다.
-
애플리케이션 서버 소스 및 애플리케이션 서버 대상을 선택합니다.
-
선택적으로 Java SE 소스를 변경하면 권장 값과 함께 자동으로 표시됩니다.
권장 값은 watsonx Code Assistant 애플리케이션 서버 소스에 대해 권장하는 Java SE 버전을 기반으로 합니다. 애플리케이션 서버가 권장되는 버전과 다른 Java SE 버전을 사용하고 있을 수 있습니다. 그렇다면 Java SE 소스를 애플리케이션 서버에서 사용하는 버전으로 변경하세요.
예를 들어, 응용 프로그램 서버에서 이전 버전의 Java SE를 사용하고 있더라도 watsonx Code Assistant WebSphere Application Server V8.5.5 대해Java SE 8을 권장합니다.
최소 지원되는 Java 버전은 Java 5입니다.
-
Java SE 대상을 선택합니다.
-
' 분석 ' 또는 ' 구축 및 분석' 중 하나를 클릭합니다.
애플리케이션 분석은 애플리케이션 바이너리에서 수행됩니다. 분석을 시작하기 전에 애플리케이션을 빌드해야 합니다. 애플리케이션을 자동 또는 수동으로 빌드할 수 있습니다.
- 애플리케이션을 자동으로 빌드하고 분석하려면 빌드 및 분석을 클릭합니다.
- 애플리케이션을 수동으로 빌드하는 경우 먼저 빌드한 다음 분석을 클릭합니다.
애플리케이션이 빌드되고 분석되면 수정하거나 검토해야 할 문제가 표시됩니다.
빌드 및 분석 버튼을 클릭하면, 현재 Java 소스 버전에서 애플리케이션이 빌드되므로, Java 업그레이드 문제 분석이 가능합니다. IDE가 애플리케이션을 성공적으로 빌드할 수 있도록 구성된 Java 소스 버전의 Java 개발자 키트가 있는지 확인하십시오.
-
-
해결해야 할 문제에 따라 자동화, 지원 또는 자기 주도적으로 문제를 해결할 수 있습니다. 추가 정보 탭의 문제는 코드 변경이 필요하지 않지만 원하는 경우 확인하거나 테스트한 후 코드를 변경해야 할 수도 있습니다.
분석 보고서에.java 파일 대신.class 파일이 포함되는 이유는 무엇인가요?
바이너리(JAR/WAR/EAR) 분석을 실행하면 항상 클래스 파일에서 문제가 발견됩니다. 바이너리 스캐너가 watsonx Code Assistant 외부에서 실행되는 경우 소스 코드에 액세스할 수 없으므로.class 파일이 분석 보고서에 포함됩니다. 마이그레이션 계획을 가져오거나 watsonx Code Assistant 에서 분석을 실행할 때 보고서에는 클래스 파일에 대한 참조가 표시되지만 watsonx Code Assistant 은.class 파일을.java 파일에 연결하고.java 파일은 watsonx Code Assistant UI에 표시됩니다.
문제 해결 및 애플리케이션에 대한 추가 정보 검토
*<애플리케이션 이름>*현대화 페이지에는 다음 정보가 나열됩니다:
- 애플리케이션 서버 소스 및 애플리케이션 서버 대상
- Java SE 버전 소스 및 Java SE 버전 대상
- 기술 보고서, 인벤토리 보고서 및 분석 보고서로 연결되는 링크
- 수정할 문제(자동화, 지원 또는 자체 수정)와 추가 정보에 대한 탭이 있습니다.
대상 Java 개발자 키트는 자동화된 수정을 실행할 때와 Java 버전 대상 변경이 이루어진 후 애플리케이션을 빌드할 때 필요합니다. 대상 Java 개발자 키트가 IDE에 맞게 구성되어 있는지 확인하세요.
- Eclipse IDE 확장 프로그램은 IDE에 구성된 모든 Java 개발자 키트 집합에서 Java 버전 대상과 일치하는 올바른 Java 개발자 키트를 자동으로 찾으려고 시도합니다.
- Visual Studio Code IDE에서 Java 개발자 키트 구성을 수동으로 변경해야 합니다.
자동화된 수정 완료
하나 이상의 수정 사항이 있는 자동화된 수정 사항 탭이 있는 경우 해당 탭을 선택합니다.
watsonx Code Assistant 수정 작업을 완료하므로 코드를 변경할 필요가 없습니다. LLM(대규모 언어 모델)은 자동 수정에 사용되지 않습니다.
- 지침을 펼쳐서 읽어보세요.
- 선택 사항으로 이슈를 열어 이슈에 대한 설명을 검토합니다.
- 자동 수정 실행을 클릭합니다.
- 자동 수정이 수정되었습니다.
- 외부 이슈는 관련 종속성을 업데이트할 때까지 목록에 남아 있습니다.
- 자동 수정 실행이 완료되면 다시 빌드 및 새로 고침을 클릭하여 문제 목록을 업데이트합니다.
자동 수정 프로그램이 실행되지 않고 콘솔 출력에 컴파일 오류가 표시되는 경우, maven-compiler 플러그인의 버전을 3.13.0 이상으로 업데이트해야 합니다.
지원 수정 완료
하나 이상의 수정 사항이 있는 지원되는 수정 사항 탭이 있는 경우 해당 탭을 선택합니다.
코드를 수정하더라도 watsonx Code Assistant 채팅에서 코드를 변경하는 방법에 대한 제안을 제공하여 도움을 줍니다.
문제에 대해 제공되는 지원 수준은 문제에 따라 다릅니다. 지원되는 수정 기능은 문제를 해결하는 데 도움이 되며, 때로는 코드 제안이 문제의 전부 또는 대부분을 해결해 줍니다. 다른 경우에는 컴파일 실패를 방지하기 위해 오래된 API를 제거하는 것처럼 간단한 코드 제안이 제공될 수 있으며 추가 조치가 필요하지 않을 수도 있습니다. 각 보조 수정의 가치와 한계를 이해하기 위해서는 각 보조 수정에 대한 단계를 따르는 것이 중요합니다. 완전한 코드 제안이 제공되지 않는 경우, 지원되는 수정 사항을 채팅에서 대화를 시작하는 것으로 생각할 수 있습니다. 채팅에 계속 참여하여 문제와 해결 방법에 대한 이해를 넓히세요.
지원되는 수정 사항과 관련된 문제 목록은 지원되는 수정 사항 참조를 참조하세요.
지원 수정 기능을 사용하려면
-
지침을 펼치고 지침을 따릅니다.
-
각 이슈에 대해 확장합니다.
-
자세한 내용을 보려면 더 읽기를 클릭하세요.
-
이슈에 나열된 파일을 클릭합니다.
파일이 편집기에서 열립니다.
-
이슈를 확장하여 이슈 세부 정보를 확인합니다.
-
세부 정보에서 코드 스니펫을 선택하라는 메시지가 표시되면 해당 코드 스니펫을 선택합니다.
-
도움말을 클릭하여 문제 해결에 도움을 받습니다.
Visual Studio Code 사용하는 경우 다음 제한 사항이 적용됩니다:
- 활성 편집기에서 Java 코드를 하나만 선택해야 합니다.
- Java 코드를 선택한 활성 편집기가 현대화에서 리버티로 또는 Java 업그레이드 보기와 다른 편집기 그룹에 있는지 확인하세요.
-
채팅에서 코드 제안을 따라 코드를 수정하여 문제를 해결하십시오.
때로는 채팅창이 코드 제안 대신 정보 제공 응답을 제공합니다.
-
문제를 해결할 때, 모든 지원되는 수정 사항이 해결될 때까지 재구축과 새로 고침을 클릭하십시오.
자기 주도적 수정 완료
하나 이상의 수정 사항이 있는 자기 주도적 수정 탭이 있는 경우 해당 탭을 선택합니다.
코드를 변경하고 코드를 수정하는 방법을 결정하지만 채팅에서 도움을 받을 수 있습니다.
-
지침을 펼치고 지침을 따릅니다.
-
각 이슈를 펼칩니다.
-
자세한 내용을 보려면 더 읽기를 클릭하세요.
-
이슈에 나열된 파일을 클릭합니다.
파일이 편집기에서 열립니다.
-
문제가 발생할 때마다 표시되는 채팅 시작을 클릭합니다.
채팅 창이 열리면 해당 상황에 대한 도움을 받을 수 있습니다. 예를 들어 코드 어시스턴트에게 현재 코드가 무엇을 하는지 물어볼 수 있습니다. 또는 문제가 있는 코드에 대한 대체 구현이 있는지 문의할 수 있습니다.
-
문제를 해결할 때, 모든 자가 해결이 완료될 때까지 재구축과 새로 고침을 클릭하세요.
추가 정보 주소 지정
추가 정보 탭에 숫자가 하나 이상 있는 경우 해당 탭을 선택합니다.
탭에 나열된 문제는 다른 탭의 문제가 결정되는 방식과 동일한 방식으로 결정됩니다. 추가 정보 문제는 코드를 변경할 필요가 없지만, 코드를 마이그레이션할 때 애플리케이션이 제대로 작동하는지 확인하기 위해 문제를 검토하십시오.
추가 정보는 API의 사소한 행동 변화, 데이터베이스 또는 사용자 등록부의 연결 문제와 같은 문제와 그 문제에 대한 대처 방법을 나타낼 수 있습니다.
예를 들어, 여러분의 애플리케이션이 연결하는 데이터베이스가 있다고 가정해 보겠습니다. 이 상황에 대한 문제를 읽으면, 애플리케이션을 마이그레이션할 때 호스트와 포트 설정이 유효하고 액세스할 수 있는지 확인합니다.
-
지침을 펼쳐서 따르세요.
-
각 문제를 클릭합니다.
- 자세한 내용을 보려면 더 읽기를 클릭하세요.
- 이슈에 나열된 파일에 있는 링크를 클릭하여 코드를 검토합니다.
현재 애플리케이션 외부에서 외부 문제 해결
수정 작업을 하는 동안 일부는 현재 애플리케이션 외부에서 발생한 외부 문제로 분류될 수 있습니다. 이러한 문제에 대한 소스 코드는 현재 소스 애플리케이션의 일부가 아닌 지정된 아카이브에 있습니다.
아카이브가 조직에서 소유하고 있는 라이브러리인 경우:
-
관련 소스 코드를 별도의 애플리케이션으로 열고 watsonx Code Assistant 을 사용하여 문제를 해결할 수 있습니다.
-
그런 다음 현재 애플리케이션을 업데이트하여 수정된 새 버전을 사용할 수 있습니다.
아카이브가 조직에서 소유하지 않은 라이브러리인 경우:
-
이 문제가 포함되지 않은 버전으로 업데이트해야 합니다. 해당 버전이 없는 경우 대체 기술을 사용해야 할 수도 있습니다.
-
watsonx Code Assistant 으로 문의하여 대체품 결정에 대한 도움을 받을 수 있습니다. 시작하려면
What is the library X used for?또는Is it easy to replace?으로 문의하세요. 대화를 계속 진행하여 구체적인 라이브러리 사용법에 대한 자세한 정보를 얻으세요.