다음을 통해 공유


GitHub Copilot 현대화 에이전트를 사용한 일괄 처리 업그레이드

일괄 업그레이드를 사용하면 여러 리포지토리에서 일관된 현대화 계획을 동시에 적용할 수 있습니다. 이 문서에서는 엔터프라이즈 규모에서 여러 애플리케이션을 효율적으로 업그레이드하는 방법을 보여 줍니다.

일괄 업그레이드를 사용하여 다음을 수행할 수 있습니다.

  • 동일한 업그레이드 대상을 사용하여 동시에 여러 애플리케이션을 업그레이드합니다.
  • 애플리케이션 간에 유사한 업그레이드 패턴을 사용하여 일관된 패턴을 적용합니다.
  • 클라우드 코딩 에이전트에 위임할 때 병렬 실행을 활용합니다.

일괄 업그레이드는 다음과 같은 이점을 제공합니다.

  • 일관된 실행:

    • 표준화된 접근 방식: 모든 리포지토리에 동일한 현대화 패턴을 적용합니다.
    • 가변성 감소: 유사한 애플리케이션에 대해 일관된 업그레이드 경로를 보장합니다.
    • 재사용 가능한 전략: 애플리케이션에서 조직별 기술을 사용합니다.
  • 스케일 및 효율성:

    • 병렬 처리: 클라우드 코딩 에이전트를 사용하여 여러 리포지토리를 동시에 처리합니다.
    • 자동화된 워크플로: 예약된 현대화를 위해 CI/CD 파이프라인과 통합합니다.
    • 시간 절약: 총 현대화 시간을 몇 주에서 몇 시간으로 줄입니다.

사전 요구 사항

  • CLI를 현대화합니다.
  • 완료된 일괄 처리 평가 (권장되지만 필수는 아님).
  • 모든 리포지토리는 동일한 프로그래밍 언어(Java 또는 .NET)를 사용합니다.
  • 업그레이드하려는 모든 리포지토리에 액세스합니다.
  • GitHub 인증 구성 완료(gh auth login).

중요합니다

일괄 업그레이드의 모든 리포지토리는 동일한 프로그래밍 언어를 사용해야 합니다. 리포지토리에서 다른 언어를 사용하는 경우 일괄 업그레이드는 리포지토리를 실패로 표시하고 건너뜁니다.

리포지토리 구성

일괄 업그레이드를 .github/modernize/repos.json 사용하도록 설정하려면 업그레이드하려는 모든 리포지토리를 나열하는 파일을 작업 디렉터리에 만듭니다.

팁 (조언)

샘플 리포지토리의 경우 먼저 포크하고 클라우드 코딩 에이전트에 작업을 위임할 수 있는 관리자 권한이 있는지 확인합니다.

[
  {
    "name": "PhotoAlbum-Java",
    "url": "https://github.com/Azure-Samples/PhotoAlbum-Java.git"
  },
  {
    "name": "ZavaSocialFrontEnd",
    "url": "https://github.com/Azure-Samples/ZavaSocialFrontEnd"
  }
]

리포지토리 구성

각 항목에는 다음이 필요합니다.

  • 이름: 리포지토리의 이름입니다(보고서 및 대시보드에 사용됨).
  • url: Git 복제 URL(HTTPS 형식)입니다.

팁 (조언)

다른 조직의 리포지토리를 포함하고 액세스 권한이 있는 한 다른 인증 방법을 사용할 수 있습니다.

파일 위치

파일을 repos.json.github/modernize/repos.json에 배치해야 합니다.

현대화 에이전트는 일괄 처리 작업을 실행할 때 이 파일을 자동으로 검색합니다.

실행 모드 선택

Batch 업그레이드는 두 개의 실행 모드와 두 가지 상호 작용 방법을 지원합니다.

실행 모드

로컬 실행

  • 가장 적합: 테스트, 더 작은 리포지토리 집합(1-5 리포지토리) 또는 로컬 제어를 선호하는 경우
  • 작동 방식: 로컬 컴퓨터에서 리포지토리를 순차적으로 처리합니다.
  • 설치 필요: 기본 필수 구성 요소 이외의 항목은 없습니다.

클라우드 코딩 에이전트 위임

  • 가장 적합한 용도: 엔터프라이즈 규모 운영, 대규모 포트폴리오(5개 이상의 리포지토리) 또는 병렬 처리.
  • 작동 방식: 클라우드에서 병렬 실행을 위해 작업을 GitHub Cloud Coding Agents에 제출합니다.
  • 설치 필요: 각 리포지토리의 MCP 서버 구성(설치 중에 구성됨).

팁 (조언)

클라우드 코딩 에이전트 위임은 리포지토리를 병렬로 처리하여 총 현대화 시간을 시간에서 분으로 줄일 수 있습니다.

상호 작용 메서드

대화형 모드(TUI)

  • 메뉴 및 프롬프트가 포함된 안내된 환경입니다.
  • 처음 사용자 또는 옵션을 검토하려는 경우에 가장 적합합니다.
  • 로컬 및 클라우드 실행을 모두 지원합니다.

비대화형 모드(CLI/헤드리스 (그래픽 사용자 인터페이스 없이))

  • 명령줄 기반, 완전히 자동화된 시스템.
  • CI/CD 파이프라인 및 자동화에 가장 적합합니다.
  • --delegate cloud 플래그를 사용하면 로컬 및 클라우드 실행을 모두 지원합니다.

메모

모든 실행 모드를 상호 작용 메서드와 결합할 수 있습니다. 다음은 그 예입니다.

  • modernize (대화형, 로컬)
  • modernize 클라우드 코딩 에이전트 선택 →(대화형, 클라우드)
  • modernize upgrade "Java 21" (비대화형, 로컬)
  • modernize upgrade "Java 21" --delegate cloud (비대화형, 클라우드)

일괄 업그레이드 작동 방식

일괄 업그레이드 워크플로:

  1. 언어 감지: 첫 번째 리포지토리에서 프로젝트 언어(Java 또는 .NET)를 자동으로 검색합니다.
  2. 계획 만들기: 프롬프트에 따라 업그레이드 계획을 만들거나 최신 LTS 버전을 사용합니다.
  3. 실행: 각 리포지토리에 업그레이드를 적용합니다.
  4. 유효성 검사: 각 리포지토리에 대한 변경 내용을 빌드하고 유효성을 검사합니다.

일괄 업그레이드 실행

리포지토리를 구성하고 실행 모드를 선택한 후 일괄 업그레이드를 시작합니다.

대화형 모드(로컬로 업그레이드)

  1. 현대화 에이전트를 실행합니다.

    modernize
    
  2. 에이전트는 파일을 검색 repos.json 하고 리포지토리 목록을 표시합니다.

    터미널에서 리포지토리 선택 목록을 보여 주는 CLI 현대화의 스크린샷.

  3. 업그레이드할 리포지토리를 선택하고 키를 눌러 Enter 선택 항목을 확인합니다.

    • 눌러 Ctrl+A 모든 리포지토리를 선택합니다.
    • 또는 화살표 키를 사용하여 개별 리포지토리를 탐색하고 눌러 Enter 선택합니다.
  4. 주 메뉴에서 2. 업그레이드를 선택합니다.

    터미널에서 런타임 및 프레임워크 업그레이드 메뉴 옵션을 보여 주는 CLI 현대화 스크린샷

  5. 업그레이드를 실행하려면 1을 선택합니다 . 로컬로 업그레이드합니다.

    터미널에서 로컬로 업그레이드 메뉴 옵션을 보여 주는 CLI 현대화 스크린샷

  6. 에이전트는 자동으로 다음을 수행합니다.

    • 요청에 따라 업그레이드 계획을 만듭니다.
    • 계획을 각 리포지토리에 순차적으로 적용합니다.
    • 변경 후 각 리포지토리를 빌드하고 유효성을 검사합니다.
    • 각 리포지토리에 대한 진행률 및 요약을 표시합니다.

    터미널의 각 리포지토리에 대한 업그레이드 진행률을 보여 주는 CLI 현대화 스크린샷

대화형 모드(클라우드 코딩 에이전트에 위임)

필수 구성 요소: MCP 서버 구성

업그레이드를 실행하기 전에 각 리포지토리에서 GitHub Copilot Modernization MCP Server를 구성합니다.

Java 애플리케이션의 경우 리포지토리 설정의 클라우드 코딩 에이전트 섹션에 다음 구성을 추가합니다.

{
  "mcpServers": {
    "app-modernization": {
      "type": "local",
      "command": "npx",
      "tools": [
        "*"
      ],
      "args": [
        "-y",
        "@microsoft/github-copilot-app-modernization-mcp-server"
      ]
    }
  }
}

MCP 구성 섹션이 강조 표시된 리포지토리 코딩 에이전트 설정 창을 보여주는 GitHub의 스크린샷

단계

  1. 현대화 에이전트를 실행합니다.

    modernize
    
  2. 에이전트는 파일을 검색 repos.json 하고 리포지토리 목록을 표시합니다.

    터미널의 리포지토리 목록을 보여 주는 CLI 현대화의 스크린샷.

  3. 업그레이드할 리포지토리를 선택하고 키를 눌러 Enter 선택 항목을 확인합니다.

    • 눌러 Ctrl+A 모든 리포지토리를 선택합니다.
    • 또는 화살표 키를 사용하여 개별 리포지토리를 탐색하고 눌러 Enter 선택합니다.
  4. 주 메뉴에서 2. 업그레이드를 선택합니다.

  5. 업그레이드를 실행하려면 2를 선택합니다 . 클라우드 코딩 에이전트에 위임합니다.

    모던라이즈 CLI의 스크린샷으로, 터미널에서 클라우드 코딩 에이전트에 위임하는 메뉴 옵션을 보여줍니다.

  6. 에이전트는 자동으로 다음을 수행합니다.

    • 각 리포지토리에 대한 업그레이드 계획을 만듭니다.

    • 각 리포지토리에 대한 클라우드 코딩 에이전트 작업을 제출합니다.

    • 클라우드에서 독립적으로 작업을 실행합니다.

    • 각 리포지토리에 대한 작업 ID 및 PR URL을 표시합니다.

      터미널에서 클라우드 코딩 에이전트로 업그레이드를 위임하는 진행률을 보여 주는 CLI 현대화 스크린샷

    • 병렬 실행을 위해 작업을 AgentHQ에 위임합니다.

      AgentHQ에 위임된 업그레이드 작업이 있는 에이전트 창을 보여 주는 GitHub의 스크린샷

    • 각 개별 작업의 진행률을 실시간으로 추적합니다.

      개별 클라우드 코딩 에이전트 업그레이드 작업에 대한 진행률 추적이 있는 에이전트 창을 보여 주는 GitHub의 스크린샷

    • 완료된 각 작업에 대한 업그레이드 요약을 표시합니다.

      개별 클라우드 코딩 에이전트 작업에 대한 업그레이드 요약이 포함된 에이전트 창을 보여 주는 GitHub의 스크린샷

비대화형 모드(CLI)

자동화 및 CI/CD 통합의 경우 다음 modernize upgrade 명령을 사용합니다.

로컬로 업그레이드:

modernize upgrade "Java 21"

클라우드 코딩 에이전트를 사용하여 업그레이드:

modernize upgrade "Java 21" --delegate cloud

이 명령은 repos.json 파일을 자동으로 검색하고 모든 리포지토리를 처리합니다.

메모

일괄 헤드리스 실행 및 다양한 CLI 옵션은 CLI 명령 참조의 다중 리포지토리 구성 섹션을 참조하세요.

결과 검토

일괄 업그레이드가 완료되는 경우:

  1. 터미널에 표시된 집계된 보고서를 확인합니다.

  2. 개별 리포지토리 변경 내용을 검토합니다.

    cd <repository-name>
    git status
    git diff
    
  3. 성공적으로 업그레이드된 경우 풀 리퀘스트를 생성합니다.

    cd <repository-name>
    gh pr create --title "Upgrade to Java 21" --body "Automated upgrade by modernization agent"
    

일괄 처리 업그레이드 문제 해결

일반적인 문제

리포지토리 액세스 오류:

  • 를 사용하여 GitHub 인증을 확인합니다 gh auth status.
  • 의 모든 리포지토리에 액세스할 수 있는지 확인합니다 repos.json.

언어 불일치 오류:

  • 모든 리포지토리가 repos.json 동일한 언어(Java 또는 .NET)를 사용하는지 확인합니다.
  • 다른 언어에 대해 별도의 일괄 처리 작업을 만듭니다.

복제 실패:

  • 리포지토리 URL repos.json 이 올바르고 액세스할 수 있는지 확인합니다.
  • 모든 리포지토리에 대한 적절한 액세스 권한이 있는지 확인합니다.
  • 네트워크 연결 및 VPN 설정을 확인합니다.

업그레이드 후 빌드 실패:

  • 집계된 보고서에서 빌드 오류 메시지를 검토합니다.
  • 다른 종속성을 업데이트해야 하는지 확인합니다.
  • 타사 라이브러리와 새 버전의 호환성을 확인합니다.

개별 리포지토리 오류:

  • 개별 리포지토리가 실패하더라도 일괄 처리 프로세스는 계속됩니다.
  • 집계된 보고서를 검토하여 실패한 리포지토리를 식별합니다.
  • 오류 로그에서 특정 오류 메시지를 확인합니다.
  • 실패한 리포지토리를 개별적으로 다시 시도합니다.

클라우드 코딩 에이전트 오류:

  • GitHub Actions 권한 및 할당량 제한을 확인합니다.
  • .NET Framework의 경우 Windows 실행기 구성이 제대로 설정되어 있는지 확인합니다.

다음 단계

일괄 업그레이드를 완료한 후 다음을 수행할 수 있습니다.

계속 개선:

자세한 정보:

피드백 제공하기

우리는 당신의 입력을 소중히! 일괄 처리 업그레이드 또는 현대화 에이전트에 대한 피드백이 있는 경우 github-copilot-appmod 리포지토리에서 문제를 만들 거나 GitHub Copilot 현대화 피드백 양식을 사용합니다.