Copilot CLI에서 GitHub Copilot 현대화를 사용하여 Java 앱 현대화

이 문서에서는 Java 개발자가 Copilot CLIGitHub Copilot 현대화 플러그 인을 사용하여 애플리케이션을 현대화하는 방법에 대한 개요를 제공합니다. 개발자는 이 방법을 사용하여 코딩할 때마다 애플리케이션을 현대화할 수 있습니다. 플러그 인은 업그레이드 및 마이그레이션에서 배포에 이르는 원활한 엔드 투 엔드 환경을 제공하여 팀이 변환을 가속화하고 생산성을 높이며 애플리케이션을 최신 플랫폼으로 자신 있게 이동할 수 있도록 지원합니다.

GitHub Copilot 현대화 프롬프트를 표시하는 GitHub Copilot CLI의 스크린샷입니다.

비고

GitHub Copilot CLI는 GitHub Copilot Pro, GitHub Copilot Pro+, GitHub Copilot Business 및 GitHub Copilot Enterprise 계획에서 사용할 수 있습니다. 조직에서 Copilot 받는 경우 Copilot CLI 정책을 조직의 설정에서 사용하도록 설정해야 합니다.

현대화를 위해 Copilot CLI를 사용하면 IDE로 전환할 필요 없이 터미널에서 직접 현대화 작업을 실행할 수 있습니다. 이 방법은 대화형(휴먼 인 더 루프) 및 일괄 처리 워크플로를 모두 지원합니다.

수행 가능한 작업

Capability Description
Java 업그레이드 Java 버전 업그레이드(8 → 11 → 17 → 21 → 25), Spring Boot 2.x를 3.x로 마이그레이션, javax에서 jakarta로 마이그레이션 및 사용되지 않는 API
Azure 마이그레이션 Java 애플리케이션을 평가하고 Azure 서비스(Azure Service Bus, Azure SQL, Redis, Azure Key Vault, Application Insights, 관리 ID)로 마이그레이션합니다.
CVE 및 취약성 수정 Log4j, Spring, Jackson 및 OWASP 종속성 분석을 포함하여 Maven 종속성의 CVE 취약성 검사 및 수정
애플리케이션 다시 설계 모놀리식-마이크로 서비스 분해, 레거시 UI 현대화 및 모듈 추출과 같은 구조적 재작성
Azure에 배포 업그레이드되거나 마이그레이션된 Java 애플리케이션을 Azure 직접 배포

필수 조건

비고

Azure 계정은 Azure 리소스를 배포하는 데만 필요하며 GitHub Copilot 현대화를 사용하여 코드를 변경할 때는 필요하지 않습니다.

플러그 인 설치

  1. 마켓플레이스를 추가하고 플러그 인을 설치합니다.

    copilot plugin marketplace add microsoft/github-copilot-modernization
    copilot plugin install github-copilot-modernization@github-copilot-modernization
    
  2. 설치된 플러그 인을 나열하여 플러그 인이 설치되어 있는지 확인합니다.

    /plugin list
    

    목록에 github-copilot-modernization@github-copilot-modernization이(가) 표시되어야 합니다.

팁 (조언)

새 버전을 사용할 수 있을 때 플러그 인을 업데이트하려면 다음을 실행합니다.

copilot plugin update github-copilot-modernization@github-copilot-modernization

현대화 작업 시작

옵션 1: 에이전트로 직접 시작

Java 프로젝트 폴더로 이동하고 현대화 에이전트를 사용하여 COPILOT CLI를 시작합니다.

cd /path/to/your/java-app
copilot --agent=github-copilot-modernization:modernize

옵션 2: Copilot CLI 내부에서 에이전트 선택

Copilot CLI 세션에 이미 있는 경우 /agent 명령을 사용하여 현대화 에이전트로 전환합니다.

/agent

목록에서 modernize을(를) 선택합니다.

Important

현대화 프롬프트를 실행하기 전에 github-copilot-modernization:modernize 에이전트를 선택해야 합니다. 에이전트를 선택하지 않으면 Copilot CLI는 플러그 인에서 제공하는 전체 다중 에이전트 오케스트레이션 및 특수 마이그레이션 기능을 사용할 수 없는 기본 에이전트를 사용합니다.

현대화 프롬프트 실행

에이전트가 활성화되면 자연어로 원하는 내용을 설명합니다.

modernize my application

또는 더 구체적으로 설명합니다.

upgrade this app to Java 21 and Spring Boot 3.2
migrate this Spring Boot app to Azure
fix CVE vulnerabilities in my project

무인 실행의 경우 플래그를 사용합니다.--allow-all

copilot --agent=github-copilot-modernization:modernize --allow-all

워크플로 작동 방식

플러그 인은 자동으로 실행되는 3단계 워크플로를 사용합니다. 각 단계를 수동으로 호출할 필요가 없습니다. 오케스트레이터는 요청에 따라 라우팅을 처리합니다.

1단계: 평가

  • 지정된 경로에서 Java 애플리케이션을 검색합니다.
  • 종속성, 프레임워크 및 Java 버전을 분석합니다.
  • 현대화 기회 및 위험을 식별합니다.
  • 결과를 .github/modernize/assessment/에 저장합니다.

2단계: 계획

  • 평가 결과를 로드합니다.
  • 실행 가능한 작업 계획을 생성합니다.
  • 계획을 .github/modernize/<app>/plan.mdtasks.json에 저장합니다.

3단계: 실행

  • 태스크 유형에 따라 작업을 특수 실행기 에이전트로 라우팅합니다.
  • 각 실행기는 마이그레이션 패턴에 대한 기술 자료를 쿼리합니다.
  • 실패 시 자동 재시도를 사용하여 진행률을 모니터링합니다.
  • 검토를 위해 자세한 작업별 커밋을 만듭니다.

오케스트레이터는 의도에 따라 여러 진입점을 지원합니다.

Workflow 활성화되는 경우 어떻게 되나요?
광범위한 의도 "내 애플리케이션 현대화" 전체 평가 → 계획 → 실행 파이프라인
특정 작업 "Java 21로 업그레이드" 평가를 건너뛰고 계획 → 실행으로 바로 넘어갑니다.
기존 계획 실행 "계획 실행" 평가 및 계획을 건너뛰고 기존 계획을 실행합니다.
헤드리스 --allow-all를 사용한 무인 실행 사용자 프롬프트가 없는 광범위한 의도와 동일

일반적인 시나리오

Java 애플리케이션 업그레이드

Java 애플리케이션을 최신 런타임 또는 프레임워크 버전으로 업그레이드하려면 다음 예제를 사용합니다.

copilot --agent=github-copilot-modernization:modernize
upgrade this project to JDK 21 and Spring Boot 3.2

그런 다음, 다음 스크린샷과 같이 업그레이드 계획 생성, 코드 수정 수행, 프로젝트 빌드 및 취약성 확인 등 현대화 작업이 실행됩니다.

Java 업그레이드 시나리오에서 실행 중인 작업을 보여주는 GitHub Copilot CLI의 스크린샷입니다.

프로젝트가 JDK 21 및 Spring Boot 3.2로 성공적으로 업그레이드되고 업그레이드 요약이 표시됩니다.

자바 업그레이드 요약을 보여 주는 GitHub Copilot CLI의 스크린샷입니다.

Java 애플리케이션을 Azure 마이그레이션

Java 애플리케이션을 Azure 마이그레이션하려면 다음 예제와 같이 마이그레이션 시나리오를 설명합니다. 미리 정의된 마이그레이션 작업에 대한 자세한 내용은 Java 개발자를 위한 GitHub Copilot 현대화를 위한 미리 정의된 작업 참조하세요.

copilot --agent=github-copilot-modernization:modernize
migrate this application from S3 to Azure Blob Storage

이 프롬프트를 사용하면 마이그레이션 작업이 실행되고 Copilot CLI의 진행률이 표시됩니다.

GitHub Copilot CLI의 스크린샷으로, Java 마이그레이션 시나리오에서 실행 중인 작업을 보여줍니다.

프로젝트가 Microsoft Azure Blob Storage 성공적으로 마이그레이션되면 마이그레이션 요약이 표시됩니다.

Java 마이그레이션 요약을 보여주는 GitHub Copilot CLI의 스크린샷.

Azure에 Java 애플리케이션을 배포하기

애플리케이션을 업그레이드하거나 마이그레이션한 후 다음 예제를 사용하여 Copilot CLI에서 직접 배포할 수 있습니다.

copilot --agent=github-copilot-modernization:modernize
Scan my project and help me plan how to containerize my application using the #appmod-get-containerization-plan tool. Execute the plan. The end goal is to have Dockerfiles that are able to be built.

이 프롬프트를 사용하면 배포 작업이 실행되고 Copilot CLI에서 진행률이 표시됩니다.

 Java 배포 세부 정보를 보여 주는 GitHub Copilot CLI의 스크린샷입니다.

프로젝트가 성공적으로 배포되면 배포 요약이 표시됩니다.

Java 배포 요약을 보여 주는 GitHub Copilot CLI의 스크린샷입니다.

Troubleshooting

플러그 인을 찾을 수 없음

# Verify marketplace is added
copilot plugin marketplace list

# Re-add the marketplace if needed
copilot plugin marketplace add microsoft/github-copilot-modernization

# Reinstall
copilot plugin install github-copilot-modernization@github-copilot-modernization

평가 실패: Java 애플리케이션을 찾을 수 없음

  • 프로젝트 루트에 pom.xml 또는 build.gradle이 있는지 확인하세요.
  • COPILOT CLI를 시작하기 전에 올바른 디렉터리에 있는지 확인합니다.

MCP 서버 문제

플러그 인은 해당 구성에 정의된 MCP 서버를 사용합니다. 문제가 발생하는 경우 플러그 인을 다시 설치하여 MCP 구성을 다시 설정해 보세요.

피드백 제공

GitHub Copilot modernization 플러그인에 대한 피드백이 있다면 github-copilot-appmod 리포지토리에서 이슈를 생성하세요.

다음 단계