Visual Studio Code의 GitHub Copilot 앱 현대화 확장은 오래된 프레임워크, 사용되지 않는 API 및 업그레이드 차단기를 식별하여 Java 업그레이드를 자동화합니다. Copilot 코딩 에이전트은(는) 코드 변경 내용을 적용하고, 빌드 파일을 업데이트하고, 빌드 및 CVE 문제를 해결합니다.
확장에서 생성된 권장 사항 및 보고는 팀이 새로운 기술을 신속하게 채택하고 기술 부채를 줄이는 데 도움이 될 수 있습니다. Copilot 수동 작업을 줄이면서 실행 가능한 단계 및 요약을 사용하여 마이그레이션을 가속화하고 보호하는 업그레이드를 안내합니다.
확장 기능, 설정 및 사용자 인터페이스 지침은 Microsoft 설명 서의 GitHub Copilot 앱 현대화 설명서를 참조하세요.
현대화 프레임워크
[Java 업그레이드 확장을](https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-upgrade) 사용하여 에이전트 세션을 시작하면 다음 프레임워크를 사용하여 Java 애플리케이션을 현대화하는 데 도움이 됩니다.
* 평가 작업을 수행합니다. 확장은 코드, 구성 및 종속성을 분석하여 애플리케이션의 현재 상태에 대한 평가를 제공할 수 있습니다. * 사용자 지정 가능한 현대화 계획을 만듭니다. 평가에 따라 확장은 필요한 프레임워크 및 라이브러리 업데이트를 포함하여 현대화 경로를 제안할 수 있습니다. * 문제의 조기 식별. 확장은 종속성, 오래된 라이브러리 및 언어 기능 및 잠재적인 마이그레이션 문제를 식별합니다. 확장은 문제를 해결하기 위한 실행 가능한 전략을 제공합니다. * 계획을 사용자 지정합니다. 조직 표준 및 사례를 통합하거나, 특정 구성 요소를 제외하거나, 특정 기능 또는 디자인 패턴의 우선 순위를 지정하는 등 애플리케이션의 특정 요구 사항에 맞게 현대화 계획을 편집합니다. * 계획을 구현합니다. 확장은 코드 변경 내용을 적용하고, 빌드 파일을 업데이트하고, 사용되지 않는 API를 리팩터링하고, 빌드 및 구문 문제를 해결하는 데 도움이 될 수 있습니다. 확장은 자동으로 빌드 오류를 수정하고 각 단계 후에 테스트 유효성 검사를 수행하여 안정성과 오류 없는 변경을 보장합니다. * 변경 내용을 검토합니다. 확장은 자세한 업그레이드 보고서를 생성하여 적용된 변경 내용을 요약하고 수정되지 않은 문제 및 현대화를 위한 나머지 단계를 나열할 수 있습니다. * 단위 테스트를 생성합니다. 확장은 자동으로 기존 테스트를 평가하고 새 테스트 파일을 생성하여 작업 영역에 추가합니다. 사전 및 사후 생성 테스트 결과를 요약한 보고서가 생성됩니다. * 애플리케이션을 컨테이너화합니다. 확장은 AkS(Azure Kubernetes Service), ACA(Azure Container Apps) 및 AKS Automatic과 같은 컨테이너 서비스 내에서 실행되는 현대화된 애플리케이션에 대해 Dockerfiles를 자동으로 생성하고, 이미지를 빌드하고, 모든 항목의 유효성을 검사하여 배포 및 확장성을 더 쉽게 수행할 수 있습니다. * 배포를 준비합니다. 확장은 스크립트 및 구성과 같은 배포 아티팩트 생성을 통해 컨테이너화 및 배포를 위해 애플리케이션을 준비하는 데 도움이 될 수 있습니다. * Azure에 대한 배포를 자동화합니다. 확장은 Azure에 현대화된 애플리케이션을 배포하거나 프로비전하고, 필요한 아티팩트 및 Azure 리소스를 생성하고, 실행 단계를 수행하는 데 도움이 될 수 있습니다.
다음과 같은 복잡한 현대화 작업을 돕기 위해 Copilot를 사용하여 애플리케이션 코드베이스에 대한 팀의 이해를 높이고 시간과 노력을 절약할 수 있습니다.
- 리버스 엔지니어링 및 코드 변환
- 취약성 및 종속성 분석, 코드 동작 검사 및 수정
- 자동화된 자산 생성, 설명서 및 업그레이드 보고서
- 테스트 생성 및 평가
- 배포 자동화
현대화 워크플로 개요
이 예제에서는 Visual Studio Code에서 GitHub Copilot 앱 현대화 확장을 활용해 Java 애플리케이션을 현대화하는 상위 단계를 안내합니다.
자세한 필수 구성 요소 및 지침은 Microsoft 설명서의 Java 프로젝트를 GitHub Copilot 앱 현대화로 업그레이드하는 퀵스타트를 참조하십시오.
참고 항목
현대화 워크플로 중에 특정 작업을 수행하기 전에 Copilot 코딩 에이전트에게 확인하라는 메시지가 자주 표시될 수 있습니다.
1. Java 프로젝트 열기
VS Code를 사용하여 프로젝트 폴더를 엽니다.
제안된 작업
- 계속하기 전에 프로젝트가 성공적으로 빌드되었는지 확인합니다.
- 빌드 문제가 발생하는 경우 Copilot를 사용하여 현대화 프로세스를 시작하기 전에 문제를 해결할 수 있습니다.
2. 현대화 작업 영역 시작
부조종사 채팅를 실행하여 에이전트 모드에서 새 세션을 시작합니다. 사용 가능한 도구에서 GitHub Copilot 앱 현대화 - Java 업그레이드를 선택합니다.
3. 업그레이드 기회에 대한 프로젝트 분석
Copilot 코드를 스캔합니다. 분석에는 다음이 포함됩니다.
- 오래된 프레임워크 검색(예: Spring Boot, Jakarta EE, Java SE 버전).
- 사용되지 않는 API 및 사용되지 않는 패턴의 식별입니다.
- 업그레이드 기회에 대한 제안입니다.
편집기에서 결과 및 구조화된 업그레이드 계획을 검토할 수 있습니다. 그러면 다음이 표시됩니다.
- 프레임워크 및 종속성에 대한 현재 및 권장 버전입니다.
- 마이그레이션 또는 리팩터링이 필요한 코드 위치입니다.
- 블로커 또는 호환되지 않는 종속성을 업그레이드합니다.
제안된 작업
- 업그레이드를 계속하기 전에 현대화 계획을 검토하고 사용자 지정합니다.
4. Copilot에서 권장하는 업그레이드를 적용하십시오.
Copilot를 사용하여 코드 변경 내용을 적용하거나 검토하고 빌드 파일을 업데이트하고 API를 리팩터링합니다.
빌드 오류가 발견되면 Copilot는 프로젝트가 오류 없이 컴파일될 때까지 수정 및 테스트 루프를 반복할 수 있습니다.
Copilot 코딩 에이전트 자동화된 변경 내용에는 다음이 포함될 수 있습니다.
- 새 종속성 버전을 위해
pom.xml또는build.gradle파일을 업데이트합니다. - 끌어오기 요청을 생성하거나 변경 내용을 직접 커밋합니다.
- API 변경에 대한 코드 리팩터링 예를 들어,
javax.*에서jakarta.*네임스페이스로 마이그레이션하는 것입니다. - 코드 변환을 제안하거나 적용하여 호환성 손상의 변경 문제에 대처하다.
Copilot은(는) 프로젝트가 성공적으로 빌드되고 수정이 필요한 더 이상 문제가 없을 때까지 반복하여 오류를 계속 수정합니다. 즉각적인 수정이 필요하지 않은 사소한 문제가 남아 있을 수 있습니다. 이렇게 하면 업그레이드가 완료되지 않습니다.
제안된 작업
- 수락하기 전에 diff 편집기에서 모든 코드 변경 내용을 검토합니다.
- Copilot를 사용하여 코드 변경 내용을 자세히 설명하고 문서화합니다.
- 확장에서 메시지가 나타나면 알려진 CVE에 대한 수정된 종속성을 확인하고 코드 동작의 일관성을 검증하기 위한 옵션을 선택하세요.
- 남은 문제를 검토하고 그 중요성을 평가합니다.
5. 업그레이드 보고서 및 제안된 다음 단계 보기
업그레이드 프로세스가 완료되면 Copilot에서 다음을 포함하는 요약 업그레이드 보고서를 생성합니다.
- 프로젝트 정보입니다.
- 코드 줄이 변경되었습니다.
- 종속성이 업데이트되었습니다.
- 코드 변경 내용이 요약되었습니다.
- CVE 보안 및 코드 불일치 문제가 있는 경우 해결되었습니다.
- 해결되지 않은 사소한 CVE 문제입니다.
제안된 작업
- 보고서를 검토하여 변경 내용을 이해합니다.
- 제안된 다음 단계에 따라 현대화를 완료합니다.
현대화 완료
현대화를 지원하기 위한 추가 작업에는 다음이 포함될 수 있습니다.
- 초기 현대화 및 코드 변경 내용을 철저히 확인합니다. 회사의 코딩 표준 및 모범 사례가 충족되는지 확인합니다.
- 수정된 코드를 자세히 검토합니다. 예를 들어 생성된 코드가 프로젝트의 목적과 아키텍처에 맞는지 확인합니다. 자세한 제안은 AI 생성 코드 검토을 참조하세요.
-
**버그 수정** 특정 콘텐츠에 미묘한 오류가 있는지 확인하고 고유한 디버깅 및 린팅 도구를 사용하여 새 콘텐츠를 평가합니다. -
**테스트를 작성하고** 업그레이드된 프로젝트에서 테스트의 누락된 부분을 식별합니다. -
**정리** 더 이상 필요하지 않은 파일을 제거하여 프로젝트 정리 -
**리팩터링** 새로운 언어로 코드 리팩터링 현대화 프로세스로 인해 아키텍처가 원래 프로젝트의 아키텍처를 기반으로 하는 프로젝트가 생성되었을 수 있지만 더 이상 요구 사항에 적합한 이상적인 솔루션이 아닙니다. 이제 사용되는 언어 및 프레임워크의 기능을 최대한 활용하기 위해 코드를 리팩터링할 수 있습니다. -
**설명서를 업데이트합니다**. 이제 프로젝트 정보 및 기여 파일이 만료되어 다시 작성해야 할 수 있습니다. -
**컨테이너화**. 애플리케이션 코드를 업데이트하고, Dockerfiles와 같은 컨테이너화 파일을 생성하고, 유효성을 테스트하는 이미지를 빌드합니다. 필요한 경우 Copilot에서 이러한 컨테이너화 작업을 수행하고 다음 단계를 자세히 설명하는 포괄적인 계획을 만들 수 있습니다. - Microsoft Azure와 같은 클라우드 플랫폼을 포함하여 대상 환경에 현대화된 애플리케이션 배포