.NET 애플리케이션 현대화

Gemini 생성형 AI 모델을 기반으로 하는 .NET용 코드 현대화는 코드 생성 및 애플리케이션 현대화 도구입니다. 애플리케이션을 크로스 플랫폼 .NET 코드로 리팩터링하여 Windows에 종속된 Microsoft .NET Framework 애플리케이션을 현대화하는 데 도움이 됩니다.

.NET Framework 애플리케이션과 달리 크로스 플랫폼 .NET 애플리케이션은 Linux에서 실행할 수 있으므로 Windows 라이선스가 필요하지 않으며 컨테이너화를 비롯한 클라우드 네이티브 기능을 사용할 수 있습니다.

이 가이드에서는 Google Cloud프로젝트에 IAM 역할을 부여하고, Cloud Storage 버킷을 만들고, Gemini API 키를 만들고, 로컬 머신에 code-modernization-for-dotnet 확장 프로그램을 설치하여 .NET Framework 애플리케이션을 크로스 플랫폼 .NET 코드로 리팩터링합니다.

시작하기 전에

  1. 아직 계정이 없다면 Google 계정을 만듭니다. 직장 이메일 주소를 비롯한 모든 이메일 주소를 사용하여 Google 계정을 만들 수 있습니다.
  2. .NET용 코드 현대화: 허용 목록 요청 양식을 제출하여 허용 목록에 가입하세요. 이 요청이 승인될 때까지 이 페이지의 단계를 진행할 수 없습니다.
  3. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Enable the Cloud Build, Secret Manager, Cloud Storage JSON API, Generative Language API, Cloud Logging, and Compute Engine APIs.

    Enable the APIs

  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  8. Make sure that billing is enabled for your Google Cloud project.

  9. Enable the Cloud Build, Secret Manager, Cloud Storage JSON API, Generative Language API, Cloud Logging, and Compute Engine APIs.

    Enable the APIs

  10. 아직 설치하지 않은 경우 VS Code를 설치합니다.
  11. Identity and Access Management (IAM) 역할 부여

    콘솔

    1. Google Cloud 프로젝트의 IAM 역할을 부여하려면 IAM 및 관리자 페이지로 이동하세요.

      IAM 및 관리자로 이동

    2. 다음 IAM 역할을 추가합니다.

    • 사용자 권한

      • 스토리지 객체 사용자(roles/storage.objectUser)
      • Cloud Build 편집자(roles/cloudbuild.builds.editor)
    • Cloud Build 서비스 계정

      • Cloud Build 서비스 계정 (roles/cloudbuild.builds.builder)
      • Secret Manager 뷰어 (roles/secretmanager.viewer)
      • 로그 작성자(roles/logging.logWriter)
      • 스토리지 객체 사용자(roles/storage.objectUser)

    gcloud

    필요한 IAM 역할을 추가하려면 다음 gcloud 명령어를 실행합니다.

    • 스토리지 객체 사용자 (roles/storage.objectUser) 역할을 할당합니다.

      gcloud projects add-iam-policy-binding PROJECT_ID \
      --member="user:USER_ID" \
      --role="roles/storage.objectUser"
      
    • Cloud Build 편집자 (roles/cloudbuild.builds.editor) 역할을 할당합니다.

      gcloud projects add-iam-policy-binding PROJECT_ID \
      --member="user:USER_ID" \
      --role="roles/cloudbuild.builds.editor"
      
    • Cloud Build 서비스 계정 (roles/cloudbuild.builds.builder) 역할을 할당합니다.

      gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:SERVICE_ACCOUNT" \
        --role="roles/cloudbuild.builds.builder"
      
    • Secret Manager 접근자 (roles/secretmanager.secretAccessor) 역할을 할당합니다.

      gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:SERVICE_ACCOUNT" \
        --role="roles/secretmanager.secretAccessor"
      
    • 로그 작성자 (roles/logging.logWriter) 역할을 할당합니다.

      gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:SERVICE_ACCOUNT" \
        --role="roles/logging.logWriter"
      
    • 스토리지 객체 사용자 (roles/storage.objectUser) 역할을 할당합니다.

      gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:SERVICE_ACCOUNT" \
        --role="roles/storage.objectUser"
      

    Cloud Storage 버킷 만들기

    Cloud Storage 버킷을 만들려면 다음을 실행합니다.

    gcloud storage buckets create gs://BUCKET_NAME \
    --project=PROJECT_ID
    

    Gemini API 키를 만들어 Secret Manager에 저장

    Gemini API 키를 만들려면 다음을 실행하세요.

    gcloud services api-keys create --project=PROJECT_ID \
      --display-name="API Key for .Net Modernization" \
      --api-target="service=generativelanguage.googleapis.com" \
      --key-id="gemini-api-key"
    

    Secret Manager에 Gemini API 키를 저장하려면 다음을 실행하세요.

    echo -n "(gcloud services api-keys get-key-string gemini-api-key \
    --project=PROJECT_ID \
    --format="value(keyString)")" | \
    
    gcloud secrets create "gemini-api-key" \
    --project=PROJECT_ID \
    --data-file=- \
    --replication-policy="automatic"
    

    확장 프로그램 설치 및 구성

    .NET용 코드 현대화: 허용 목록 요청 양식이 승인되면 확장 프로그램이 .VSIX 파일로 제공됩니다. 로컬 머신에 확장 프로그램을 설치하려면 다음 단계를 따르세요.

    1. VS Code의 작업 표시줄에서 확장 프로그램으로 이동합니다.

    2. more_horiz 보기 및 기타 작업을 클릭하고 VSIX에서 설치를 선택합니다.

    3. VSIX 패키지 파일로 이동하여 선택합니다. 이렇게 하면 로컬 머신의 VS Code에 Code-modernization-for-dotnet 확장 프로그램이 설치됩니다.

    4. 설치가 완료되면 VS Code를 다시 시작합니다.

    5. Code Modernization for .NET extension 설정을 다음과 같이 업데이트합니다.

      • 확장 모드: LocalGit (experimental)
      • 프로젝트 ID: PROJECT_ID
      • 버킷 이름: BUCKET_NAME
      • 리전: us-central1
      • Gemini API 보안 비밀: gemini-api-key-secret-name
      • Google 계정: GOOGLE_ACCOUNT
      • 타겟 프레임워크: .NET 8.0

      다음을 바꿉니다.

      • PROJECT_ID: Google Cloud프로젝트의 ID(예: 1234567890)
      • BUCKET_NAME: Cloud Storage 버킷의 이름입니다.
      • GOOGLE_ACCOUNT: Google 계정(예: your_full_name@gmail.com)

    빌드 트리거

    1. Google Cloud에 로그인하려면 다음 명령어를 실행합니다.

      gcloud auth login --update-adc
      
    2. 최신화 워크플로를 트리거하려면 활동 표시줄에서 소스 제어를 선택하고 more_horiz 작업 더보기를 클릭하여 컨텍스트 메뉴를 열고 Google Cloud: .NET 코드 최신화를 선택합니다.

    허용 목록에 프로젝트 추가

    프로젝트를 허용 목록에 추가하려면 Cloud Build 서비스 계정 ID를 code-modernization-for-dotnet-discuss@google.com에 이메일로 보내세요.

    지원, 질문, 의견 제공을 위해 동일한 이메일 주소로 문의할 수도 있습니다.