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