메인프레임 애플리케이션 현대화

이 가이드에서는 VS Code용 Cloud Code 확장 프로그램을 사용하여 기존 메인프레임 애플리케이션을 현대화하는 방법을 알아봅니다.

메인프레임 현대화 코드 재작성을 사용하면 고객과 파트너가 코드 재작성에 반복적인 접근 방식을 적용할 수 있습니다. 일반적으로 메인프레임 평가 도구 (MAT)로 평가를 완료한 후에 사용합니다. 이 확장 프로그램은 코드 분석, 사양, 코드 생성, 테스트 생성을 위한 메인프레임 생성형 AI 기능을 통합하여 대화형 개발 환경을 제공합니다.

시작하기 전에

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

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

  4. Enable the Vertex AI API.

    Enable the API

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

    Go to project selector

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

  7. Enable the Vertex AI API.

    Enable the API

  8. 아직 설치하지 않은 경우 Cloud Code 확장 프로그램을 설치합니다.
  9. 아직 설치하지 않았다면 Google Cloud CLI를 설치합니다.

메인프레임 현대화 코드 재작성 설정

다음 섹션에서는 메인프레임 현대화 코드 재작성을 설정하는 방법을 설명합니다. 먼저 IDE에서 메인프레임 현대화 코드 재작성을 사용 설정한 다음 Vertex AI에 연결해야 합니다.

메인프레임 현대화 코드 재작성 사용 설정

메인프레임 현대화 코드 재작성을 사용 설정하려면 다음 단계를 따르세요.

  1. Ctrl/Cmd+Shift+P를 사용하여 명령어 팔레트를 엽니다.

  2. 환경설정: 사용자 설정 열기 (JSON) 명령어를 선택합니다.

    메인프레임 현대화 코드 재작성을 사용 설정하려면 settings.json 파일에 "cloudcode.beta.enableMainframeModernization": true 설정을 추가합니다.

    {
        "cloudcode.updateChannel": "Insiders",
        "cloudcode.beta.enableMainframeModernization": true
    }
    
  3. 명령어 팔레트를 다시 열고 (Ctrl/Cmd+Shift+P 누르기) 개발자: 창 새로고침 명령어를 선택합니다.

메인프레임 현대화 코드 재작성을 Vertex AI에 연결

메인프레임 현대화 코드 재작성을 Vertex AI에 연결하려면 다음 단계를 따르세요.

  1. 터미널 창에서 다음 명령어를 실행합니다.

    gcloud auth application-default login
    
  2. 새로 열린 웹브라우저 창에 표시된 안내를 따릅니다.

  3. 표시되는 메시지에 따라 Google Cloud에 로그인합니다.

  4. 사용할 프로젝트를 선택합니다.

  5. 개발자: 창 새로고침 명령어를 실행합니다.

설정 후 메인프레임 코드가 포함된 작업공간이나 폴더를 열고 COBOL, JCL, Easytrieve, HLASM에서 Generate Specification SummaryGenerate Modernized Code 명령어를 실행할 수 있습니다.

사양 요약 생성

Cloud Code: Generate Specification Summary for Active File(Cloud Code: 활성 파일의 사양 요약 생성) 명령어를 사용하면 기존 메인프레임 코드의 중립 언어 사양을 만들 수 있습니다. COBOL, JCL, Easytrieve, HLASM이 지원됩니다.

명령어 팔레트 또는 탐색기 뷰에서 사양 요약에 액세스할 수 있습니다.

명령어 팔레트

  1. 편집기에서 사용할 소스 파일을 선택하여 활성 파일로 만듭니다.

  2. 명령어 팔레트를 열려면 Ctrl/Cmd+Shift+P를 누릅니다.

  3. Cloud Code: Generate Specification Summary for Active File(Cloud Code: 활성 파일의 사양 요약 생성) 명령어를 검색하여 선택합니다.

코드 옆에 사양 요약이 표시됩니다.

탐색기

  1. 작업 표시줄에서 탐색기를 클릭하거나 Ctrl/Cmd+Shift+E를 누릅니다.

  2. 원하는 소스 파일을 마우스 오른쪽 버튼으로 클릭하고 사양 요약 생성을 선택합니다.

코드 옆에 사양 요약이 표시됩니다.

메인프레임 기존 코드에 주석 달기

사양 요약 생성 프로세스를 안내하려면 주석을 추가하여 기존 코드에 주석을 달 수 있습니다. JCL 작업 또는 COBOL 프로그램에 주석을 추가하려면 작업/프로그램 정의 줄 옆에 있는 추가 Add 버튼을 찾습니다.

JCL 작업

JCL 작업에 주석 추가

COBOL 프로그램

COBOL 프로그램에 주석 추가

  1. 작업/프로그램에 주석을 달 수 있는 인라인 CMS 보기를 열려면 추가 추가를 클릭합니다. 설명을 추가한 후 메모 작성을 클릭하여 저장합니다.

  2. 주석이 저장되면 사양 요약 생성 명령어를 사용하여 주석에 따라 작업/프로그램의 사양을 생성합니다.

    그런 다음 주석을 수정하여 제공된 안내를 미세 조정하거나 더 이상 모델에서 고려하지 않도록 삭제할 수 있습니다.

현대화된 코드 생성

Cloud Code: Generate Modernized Code for Active File(Cloud Code: 활성 파일의 최신화된 코드 생성) 명령어를 사용하면 메인프레임 기존 코드에서 최신 코드를 만들 수 있습니다.

지원되는 소스 언어: COBOL, JCL, Easytrieve, HLASM

지원되는 대상 언어: Java, C#, Python, SQL

명령어 팔레트 또는 탐색기 뷰에서 이 명령어에 액세스할 수 있습니다.

명령어 팔레트

  1. 편집기에서 사용할 소스 파일을 선택하여 활성 파일로 만듭니다.

  2. Ctrl/Cmd+Shift+P를 눌러 명령어 팔레트를 엽니다.

  3. Cloud Code: Generate Modernized Code for Active File 명령어를 검색하여 선택합니다.

  4. 현대화된 코드를 생성할 대상 언어를 선택합니다.

    생성된 최신화된 코드는 편집기에 제목이 없는 새 파일로 표시됩니다.

탐색기

  1. 작업 표시줄에서 탐색기를 클릭하거나 Ctrl/Cmd+Shift+E를 누릅니다.

  2. 현대화된 코드를 생성할 소스 파일을 마우스 오른쪽 버튼으로 클릭하고 현대화된 코드 생성을 선택합니다.

  3. 현대화된 코드를 생성할 대상 언어를 선택합니다.

    생성된 최신화된 코드는 편집기에 제목이 없는 새 파일로 표시됩니다.

설정 수정

메인프레임 현대화 코드 재작성에는 워크스페이스 범위 또는 (전역) 사용자 설정 범위에서 구성할 수 있는 다음 설정이 있습니다.

워크스페이스 수준에서 설정을 수정하려면 Ctrl/Cmd+Shift+P를 눌러 명령어 팔레트를 열고 환경설정: 워크스페이스 설정 열기(JSON) 명령어를 선택합니다.

전역 사용자 설정 수준에서 설정을 수정하려면 Ctrl/Cmd+Shift+P를 눌러 명령어 팔레트를 열고 환경설정: 사용자 설정 열기 (JSON) 명령어를 선택합니다.

다음은 확장 프로그램의 모든 구성 속성이 포함된 settings.json 파일의 예입니다.

{
    "cloudcode.beta.enableMainframeModernization": true,
    "cloudcode.beta.mainframeModernization.enableGoogleAnalytics": true,
    "cloudcode.beta.mainframeModernization.enableCloudLogging": false,
    "cloudcode.beta.mainframeModernization.model": "gemini-2.0-pro",
    "cloudcode.beta.mainframeModernization.codeGenerationSettings.targetLanguage": "csharp",
    "cloudcode.beta.mainframeModernization.codeGenerationSettings.techStackHints": [
        "Do not print messages directly to the console; use a logging framework instead."
    ],
}

Google 애널리틱스 사용 설정 및 중지

이 구성 속성은 확장 프로그램의 사용 분석 수집을 사용 설정하거나 사용 중지합니다.

  • 구성 속성 이름: cloudcode.beta.mainframeModernization.enableGoogleAnalytics

  • 구성 값 예시: false

  • 기본값: true (분석이 사용 설정됨)

Cloud Logging 사용 설정 및 중지

이 구성 속성은 로깅이 사용 설정되어 있는지 여부를 제어합니다.

  • 구성 속성 이름: cloudcode.beta.mainframeModernization.enableCloudLogging

  • 구성 값 예시: true

  • 기본값: false (Cloud Logging이 사용 중지됨)

모델

이 구성 속성이 설정되면 메인프레임 현대화 코드 재작성은 구성에 지정된 Gemini 모델을 사용합니다.

  • 구성 속성 이름: cloudcode.beta.mainframeModernization.model

  • 구성 값 예: "gemini-1.5-flash", "gemini-1.5-pro", "gemini-2.0-flash", "gemini-2.0-flash-lite" 또는 "gemini-2.0-pro"

  • 기본값: "(default)" (매번 묻기).

도착어

이 구성 속성을 설정하면 현대화된 코드 생성 명령어에서 더 이상 코드를 생성할 때 대상 언어를 선택하라는 메시지가 표시되지 않고 대신 속성에 설정된 언어가 사용됩니다.

  • 구성 속성 이름: cloudcode.beta.mainframeModernization.codeGenerationSettings.targetLanguage

  • 구성 값 예: "java", "csharp", "python" 또는 "pgsql"

  • 기본값: null (매번 묻기).

코드 생성 기술 스택 힌트

이 구성 속성을 설정하면 현대화된 코드 생성 명령어는 코드를 생성할 때 지정된 기술 스택 힌트 목록을 LLM에 추가 안내로 전달합니다. 이 구성은 타겟 아키텍처, 프레임워크, 코드 스타일을 조정하기 위한 안내로 사용할 수 있습니다.

  • 구성 속성 이름: cloudcode.beta.mainframeModernization.codeGenerationSettings.techStackHints

  • 구성 값 예시:

    [
      "Do not print messages directly to the console; use a logging framework instead.",
      "when generating java code - use Spring Boot version 3 as the framework"
    ]
    
  • 기본값: [] (빈 목록, 기술 스택 힌트 없음)

메인프레임 현대화 코드 재작성 데이터 삭제

현재 워크스페이스의 메인프레임 현대화 코드 재작성으로 로컬에 저장된 모든 데이터를 삭제하려면 다음 단계를 따르세요.

  1. 메뉴 바에서 View > Terminal을 선택하거나 단축키를 눌러 터미널을 엽니다.

  2. 터미널에 다음 명령어를 입력합니다.

Linux (Bash 또는 Zsh)

workspace_id=$(printf %s "$PWD$(stat -c '%i' .)" | md5sum | head -c 32)
workspace_storage_dir="$HOME/.config/Code/User/workspaceStorage/$workspace_id"
rm -r "$workspace_storage_dir/googlecloudtools.cloudcode/mainframe/"

Windows(PowerShell)

$workspacePath = (Get-Location).ToString()

$tempFile = (New-TemporaryFile).FullName
($workspacePath.Substring(0, 1).ToLower() + $workspacePath.Substring(1) +
    (([decimal](Get-Date (Get-ItemProperty . |
        Select-Object -ExpandProperty CreationTimeUtc) -UFormat %s) * 1000) -split '\.')[0]
) | Out-File -FilePath $tempFile -Encoding ascii -NoNewline
$workspaceId = (Get-FileHash -Algorithm MD5 -Path $tempFile).Hash.ToLower()
Remove-Item $tempFile

$workspaceStorageDir = "$env:APPDATA\Code\User\workspaceStorage\$workspaceId"
Remove-Item -Recurse "$workspaceStorageDir\googlecloudtools.cloudcode\mainframe"

문제 해결

이 섹션에서는 메인프레임 현대화 코드 재작성의 알려진 문제를 간략하게 설명하고 문제 해결 단계를 제공합니다.

Google Cloud 프로젝트에서 Vertex AI를 사용할 수 없음

Generate Specification Summary 또는 Generate Modernized Code 명령어가 오랜 시간 실행된 후 실패하면 Vertex AI API가 사용 설정되지 않았거나 선택한 프로젝트의 할당량을 초과했을 수 있습니다. 이 문제가 맞는지 확인하려면 출력으로 이동 버튼을 클릭합니다.

출력으로 이동 버튼을 사용할 수 없는 경우 출력 채널 검사의 단계를 따르세요. 출력 채널에서 'Vertex.GenerateContent failed'가 포함된 오류 메시지를 찾습니다. 예를 들어 선택한 프로젝트에서 Vertex AI API가 사용 설정되지 않아 발생한 오류 메시지는 다음과 같습니다. Google Cloud

"generic::unknown: retry budget exhausted (30 attempts): Vertex.GenerateContent failed: 403 Forbidden (403)"

이 문제를 해결하려면 다음 중 하나를 수행하세요.

  • 프로젝트에서 Vertex AI API가 사용 설정되어 있는지 확인합니다. Google Cloud

  • Vertex AI API가 사용 설정된 다른 Google Cloud 프로젝트로 전환합니다.

메인프레임 현대화 코드 재작성 명령어를 사용할 수 없음

명령 팔레트에서 Generate Specification Summary(사양 요약 생성) 또는 Generate Modernized Code(현대화된 코드 생성)와 같은 명령어를 사용할 수 없는 경우 메인프레임 현대화 CLI 도구가 설치되지 않았음을 나타낼 수 있습니다. 이 경우인지 확인하려면 다음 실행 파일이 누락되었는지 확인합니다.

  • Linux: ~/.cache/cloud-code/mainframe/bin/codegen
  • Windows: %LOCALAPPDATA%\cloud-code\mainframe\bin\codegen.exe
  • macOS: $HOME/Library/Application Support/cloud-code/mainframe/bin/codegen_macos

이 경우 다음 작업을 수행하여 문제를 해결해 보세요.

  1. Ctrl/Cmd+Shift+P를 사용하여 명령어 팔레트를 엽니다.
  2. Cloud Code: Install or Update Mainframe Modernization Tools 명령어를 선택합니다.
  3. 실행 파일이 더 이상 누락되지 않는지 확인합니다.
  4. Ctrl/Cmd+Shift+P를 사용하여 명령어 팔레트를 다시 엽니다.
  5. 개발자: 창 새로고침 명령어를 선택합니다.

출력 채널 검사

이 가이드의 다른 부분에 나열되지 않은 다른 오류를 해결하려면 확장 프로그램의 출력 채널을 검사해 보세요. 출력 채널을 열려면 다음 작업을 실행합니다.

  1. Ctrl/Cmd+Shift+P를 사용하여 명령어 팔레트를 엽니다.
  2. Output: Show Output Channels(출력: 출력 채널 표시) 명령어를 선택합니다.
  3. Cloud Code 메인프레임 현대화 출력 채널을 선택합니다.