GitHub Copilot 및 AI 에이전트가 레거시 시스템을 저장하는 방법

GitHub Copilot 및 AI 에이전트가 레거시 시스템을 저장하는 방법

여러분은 2025년의 개발자이고, 회사에서는 매일 수백만 건의 ATM 거래를 처리하는 메인프레임 시스템을 현대화해야 한다고 방금 말했습니다. 우리는 65년 동안 사용된 프로그래밍 언어인 COBOL에 대해 이야기하고 있습니다. 그것은 인터넷보다 오래되었습니다.

이제, 당신의 첫 번째 본능은 웃거나 어쩌면 조금 우는 것일 수도 있습니다. 하지만 문제는 COBOL이 아무데도 가지 않는다는 것입니다. 실제로 이는 현재 지구상에서 가장 크고 가장 중요한 시스템 중 일부에 전력을 공급하고 있습니다.

문제? COBOL을 이해하는 개발자를 찾는 것은 유니콘을 찾는 것과 같습니다. 원래 개발자는 은퇴하고 있지만 2000억 줄의 COBOL 코드가 여전히 은행, 보험 회사 및 정부 시스템을 운영하고 있습니다.

하지만 여기에 반전이 있습니다. 이제 우리는 유니콘을 지원할 기회를 갖게 되었습니다. GitHub Copilot과 자율 AI 에이전트가 있습니다.

COBOL을 현대화하는 개발자를 만나보세요(COBOL을 배우지 않고)

저는 최근 AI를 사용하여 COBOL 시스템을 현대화하고 있는 Microsoft 글로벌 블랙 벨트인 Julia Kordick과 이야기를 나눴습니다. 주목할만한 점은 무엇입니까? 그녀는 COBOL을 배운 적이 없습니다.

Julia는 자신의 AI 전문 지식을 활용하여 수십 년간의 도메인 지식을 보유한 사람들과 직접 협력했습니다. 여기서는 이러한 파트너십이 핵심 통찰력입니다. 그녀는 COBOL 전문가가 될 필요가 없었습니다. 대신 그녀는 자신이 가장 잘하는 일, 즉 지능형 솔루션 설계에 집중했습니다. COBOL 전문가는 레거시 시스템 지식을 제공했습니다.

Gen AI에 대한 전체 아이디어가 등장했을 때 우리는 아직 실제로 해결되지 않은 이 문제를 해결하기 위해 AI를 실제로 어떻게 사용할 수 있는지 생각하고 있었습니다.

Julia Kordick, Microsoft 글로벌 블랙 벨트

AI 기반 레거시 현대화를 위한 3단계 프레임워크

Microsoft의 Julia와 그녀의 팀은 COBOL뿐만 아니라 모든 레거시 현대화 프로젝트에 적합한 체계적인 접근 방식으로 코드를 해독했습니다. GitHub Copilot 기반의 전투 테스트를 거친 프레임워크는 다음과 같습니다.

1단계: 코드 준비(역엔지니어링)

레거시 시스템의 가장 큰 문제는 무엇입니까? 조직은 더 이상 코드가 실제로 무엇을 하는지 전혀 모릅니다. 그들은 그것을 사용하고 의존하지만 그것을 이해합니까? 그것은 또 다른 이야기입니다.

GitHub Copilot이 고고학 도구가 되는 곳입니다. 코드를 분석하기 위해 컨설턴트를 고용하는 대신 AI를 사용하면 다음을 수행할 수 있습니다.

  • 레거시 파일에서 비즈니스 로직을 추출합니다.
  • 사람이 검토할 수 있도록 마크다운으로 모든 것을 문서화하세요.
  • 호출 체인 및 종속성을 자동으로 식별합니다.
  • 관련 없는 댓글과 기록 로그를 정리하세요.
  • 필요한 경우 추가 정보를 설명으로 추가합니다.
💡팁: 항상 인간 전문가가 AI 생성 분석을 검토하도록 하세요. AI는 패턴 인식 능력이 뛰어나지만 비즈니스 맥락에서는 도메인 지식이 여전히 중요합니다.

GitHub Copilot이 생성하는 내용은 다음과 같습니다.

# Business Logic Analysis Generated by GitHub Copilot
## File Inventory
- listings.cobol: List management functionality (~100 lines)
- mainframe-example.cobol: Full mainframe program (~10K lines, high complexity)

## Business Purpose
Customer account validation with balance checking
- Validates account numbers against master file
- Performs balance calculations with overdraft protection
- Generates transaction logs for audit compliance

## Dependencies Discovered
- DB2 database connections via SQLCA
- External validation service calls
- Legacy print queue system

2단계: 강화(코드 AI를 소화 가능하게 만들기)

일반적으로 AI가 코드를 더 잘 이해할 수 있도록 컨텍스트를 추가해야 합니다. 그 모습은 다음과 같습니다.

번역: 코드에 덴마크어, 독일어 또는 기타 영어가 아닌 주석이 있는 경우 해당 주석을 번역하세요. 모델은 영어 상황에서 더 잘 작동합니다.

구조 분석: COBOL에는 결정적 패턴이 있습니다. COBOL을 작성해 본 적이 없더라도 이러한 패턴은 예측 가능하므로 활용할 수 있습니다. 방법은 다음과 같습니다.

COBOL 프로그램은 항상 동일한 4개 부문 구조를 따릅니다.

  • IDENTIFICATION DIVISION(프로그램에 대한 메타데이터)
  • 환경 부문(파일 및 시스템 구성)
  • DATA DIVISION(변수 선언 및 데이터 구조)
  • PROCEDURE DIVISION (실제 비즈니스 로직)

GitHub Copilot에 문의하여 이러한 부서를 매핑해 보세요. 다음과 같은 프롬프트를 사용하세요.

"Identify all the divisions in this COBOL file and summarize what each one does"

"List all data structures defined in the DATA DIVISION and their purpose"

"Extract the main business logic flow from the PROCEDURE DIVISION"

AI는 이러한 구조화된 섹션을 구문 분석하고 일반 영어로 설명할 수 있습니다. COBOL 구문을 이해할 필요는 없습니다. COBOL의 견고한 구조로 인해 AI가 유연한 언어보다 더 쉽게 분석할 수 있다는 점만 알아두면 됩니다.

진실의 원천으로서의 문서: AI가 생성하는 모든 것을 기본 참조가 되는 마크다운 파일로 저장합니다. Julia는 다음과 같이 설명했습니다. “Copilot이 준비로 생성하도록 허용한 모든 항목은 실제로 이러한 마크다운 파일을 진실의 소스로 참조할 수 있도록 마크다운 파일로 기록해 둡니다.”

💡프로 팁: COBOL의 장황함은 실제로 여기서 장점이 됩니다. 다음과 같은 진술 ADD TOTAL-SALES TO ANNUAL-REVENUE 거의 자체 문서화되어 있습니다. Copilot에게 이러한 비즈니스 규칙을 자연어 설명으로 추출하도록 요청하세요.

3단계: 자동화 지원(프로세스 확장)

개별 파일을 분석하고 강화한 후에는 파일이 어떻게 서로 조화를 이루는지 이해해야 합니다. Copilot을 대화형으로 사용하는 것에서 AI 에이전트를 사용하여 자동화된 워크플로를 구축하는 것으로 전환하는 단계입니다.

Julia의 팀은 여러 전문 에이전트를 조율하는 Microsoft Semantic Kernel을 사용하여 프레임워크를 구축했습니다. 각 에이전트에는 특정 작업이 있으며 단일 AI 호출을 압도하는 복잡성을 처리하기 위해 협력합니다.

이 오케스트레이션의 실제 모습은 다음과 같습니다.

  • 콜 체인 매핑: 파일이 상호 작용하는 방식을 보여주는 인어 다이어그램을 생성합니다. 한 에이전트는 COBOL 파일을 읽고, 다른 에이전트는 프로그램 간의 CALL 문을 추적하고, 세 번째 에이전트는 시각적 다이어그램을 생성합니다. 종속성을 수동으로 추적하지 않고도 전체 시스템의 맵을 얻을 수 있습니다.
  • 테스트 기반 현대화: 비즈니스 로직(에이전트 1)을 추출하고 해당 로직을 검증하는 테스트 사례를 생성한 다음(에이전트 2) 해당 테스트를 통과하는 최신 코드를 생성합니다(에이전트 3). 테스트는 마이그레이션 중에 안전망이 됩니다.
  • 종속성 최적화: 최신 동등 항목으로 대체할 수 있는 유틸리티 클래스와 라이브러리를 식별합니다. 에이전트는 사용 중인 타사 COBOL 라이브러리를 분석하고 최신 대안이 있는지 확인하며 마이그레이션을 단순화할 수 있는 기회를 표시합니다.

다음과 같이 생각해보세요. IDE의 Copilot은 대화입니다. 이 프레임워크는 생산 라인입니다. 각 에이전트는 한 가지 작업을 잘 수행하며 오케스트레이션 계층은 에이전트 간의 워크플로를 관리합니다.

💡프로 팁: 변경하기 전에 인어 다이어그램을 사용하여 복잡한 종속성을 시각화하세요. 이는 극단적인 사례를 조기에 파악하는 데 도움이 됩니다. Copilot에 코드베이스의 모든 CALL 문을 추적하고 이를 Mermaid 구문으로 출력하도록 요청하여 이러한 다이어그램을 생성할 수 있습니다. 인어 차트 예:
COBOL에서 Java 현대화 에이전트 워크플로로의 흐름을 보여주는 흐름도입니다. 화살표로 연결된 7개의 상자는 위에서 아래로 흐릅니다. COBOLAnalyzerAgent, 종속성MapperAgent, 비즈니스 논리 추출기, 테스트 생성기, JavaConverterAgent, Human Validation 및 Production-Ready Java Quarkus 출력입니다.

현실 점검: 만병통치약은 아니다

Julia는 한계에 대해 잔인할 정도로 솔직합니다.

현재 ‘클릭 한 번으로 메인프레임 문제를 모두 해결할 수 있습니다’라고 약속하는 모든 사람은 거짓말을 하고 있습니다.

현실은 다음과 같습니다

  • 인간은 검증을 위해 계속해서 루프를 유지해야 합니다.
  • 각 COBOL 코드베이스는 고유하고 복잡합니다.
  • 우리는 에이전트 AI 여정의 초기 단계에 있습니다.
  • 완전 자동화는 아마도 적어도 5년은 걸릴 것입니다.

하지만 그렇다고 해서 오늘날 우리가 엄청난 진전을 이룰 수 없다는 뜻은 아닙니다.

실제 사례 보기: Azure 샘플 프레임워크

Julia와 그녀의 팀은 전체 프레임워크를 오픈 소스로 공개했습니다. 에이전트 오케스트레이션을 위해 Microsoft Semantic Kernel로 구축되었으며 다음을 포함합니다.

  • 여러 전문 에이전트: 종속성MapperAgent, COBOLAnalyzerAgent, JavaConverterAgent
  • 비용 추적: 각 AI 작업 비용이 정확히 얼마인지 확인하세요(일반적으로 분석된 라인 1000개당 2~5달러).
  • 인간 검증 포인트: 전문가 검토를 위한 내장 체크포인트
  • doctor.sh: 빠르게 시작할 수 있는 구성 및 테스트 스크립트

COBOL 현대화 프레임워크를 실행해 보세요.

  1. 저장소를 포크하십시오: aka.ms/cobol
  2. 환경을 설정하십시오. Azure OpenAI 엔드포인트 구성(또는 중요한 데이터에 로컬 모델 사용)
  3. 의사 스크립트를 실행합니다: ./doctor.sh doctor 설정 및 종속성을 검증합니다.
  4. 현대화 시작: ./doctor.sh run 자동화된 프로세스가 시작됩니다
# Quick setup for the impatient developer

git clone 

cd Legacy-Modernization-Agents

./doctor.sh setup

./doctor.sh run

모든 것을 변화시키는 비즈니스 사례

이것은 단지 기술적 부채에 관한 것이 아닙니다. 기업의 생존에 관한 것입니다. 조직은 가장 필요할 때 COBOL 전문 지식이 심각하게 부족한 상황에 직면해 있습니다.

전통적인 접근 방식은 값비싼 컨설턴트를 고용하고, 수동 변환에 5년 이상을 소비하고, 결국 유지 관리가 불가능한 자동 생성 코드로 끝나는 것이었습니다. 나는 여러 조직에서 이런 일이 일어나는 것을 보았습니다. 컨설턴트가 들어와 자동화된 변환 도구를 실행하고 수천 줄의 생성된 코드를 넘겨주고 떠납니다. 그런 다음 내부 팀은 아직 배우고 있는 언어로 이해하지 못하는 코드를 유지 관리하는 데 어려움을 겪습니다.

AI 기반 접근 방식은 이러한 상황을 변화시킵니다. AI를 사용하여 비즈니스 논리를 이해하고, 사람이 읽을 수 있는 최신 코드를 생성하고, 지적 재산에 대한 통제권을 유지합니다. 귀하의 팀은 프로세스 전반에 걸쳐 계속 참여합니다. 그들은 진행하면서 비즈니스 논리를 배웁니다. 반대편에서 나오는 코드는 개발자가 실제로 작업할 수 있는 코드입니다.

Julia는 변화를 다음과 같이 설명했습니다.

많은 고객이 자신의 모든 지적 재산을 더 이상 파트너에게 100% 제공하고 싶어하지 않습니다. 그렇죠? 그들은 그것을 확인하고 싶어합니다.

여기에서 시작하세요: 현대화 영웅이 되기 위한 길

COBOL, 고대 Java 또는 레거시 시스템을 다루든 관계없이 오늘 시작할 수 있는 방법은 다음과 같습니다.

작게 시작하세요

  • 문제가 있는 레거시 시스템 하나 식별(5,000줄 미만으로 시작)
  • GitHub Copilot을 사용하여 단일 파일 분석
  • 마크다운에서 발견한 내용을 문서화하세요.
  • 팀과 결과 공유

AI 툴킷 구축

  • Azure 샘플 프레임워크 실험
  • 코드 분석을 위한 신속한 엔지니어링 학습(예: “이 COBOL 프로그램을 분석하고 간단한 용어로 비즈니스 목적을 설명하십시오”)
  • 반복적인 현대화 기술 실습

코드 너머로 생각하기

  • 클라우드 네이티브 설계에 대한 비기능적 요구 사항 고려
  • 분산 시스템 아키텍처 계획
  • 기억하세요: 대부분의 COBOL 프로그램은 간단한 CRUD 작업을 수행합니다. 메인프레임만큼의 복잡성이 필요하지 않습니다. 현대 건축의 단순함이 필요합니다.

다음은 과제입니다. 조직에서 레거시 시스템을 찾아보세요. 6개월 된 코드는 업계에서 레거시로 간주됩니다. GitHub Copilot을 사용해 다음을 수행해 보세요.

  1. 비즈니스 로직 문서 생성
  2. 잠재적인 현대화 기회 파악
  3. 사람의 검증 체크포인트를 통해 마이그레이션 계획 수립

결과를 LinkedIn에 공유하고 저를 태그해 주세요. 나는 당신이 무엇을 발견했는지보고 싶습니다.

시작하기 가장 좋은 때는 지금이다

Julia와의 대화에서 얻은 가장 강력한 통찰력은 다음과 같습니다. AI는 개발자의 전문성을 대체하지 않습니다. 그것은 그것을 증폭시킵니다.

COBOL 전문가는 대체할 수 없는 도메인 지식을 제공합니다. 현대 개발자들은 아키텍처와 모범 사례에 대한 새로운 관점을 제시합니다. AI는 패턴 인식 및 번역 기능을 대규모로 제공합니다.

이 세 가지 힘이 함께 작용할 때 레거시 현대화는 불가능한 과제에서 달성 가능한 프로젝트로 전환됩니다.

레거시 코드를 현대화하기 가장 좋은 시기는 10년 전이었습니다. 두 번째로 좋은 때는 바로 지금이다.

이 블로그 게시물이 가능하도록 통찰력과 경험을 공유해준 Microsoft 글로벌 블랙 벨트 Julia Kordick에게 특별히 감사드립니다.

더 깊이 알아볼 준비가 되셨나요? aka.ms/cobol-blog에서 이 프로젝트에 대한 전체 블로그 게시물을 확인하고 LinkedIn에서 Julia와 연결하여 최신 업데이트를 확인하세요.

레거시 코드의 시대는 더 이상 장벽이 될 필요가 없습니다. 올바른 AI 도구와 프레임워크를 사용하면 65년 된 COBOL도 접근하기 쉽고 유지 관리가 가능하며 현대적으로 변할 수 있습니다.

다음에는 어떤 레거시 시스템을 현대화할 예정입니까? 지금 GitHub Copilot으로 구축을 시작해 보세요 >

작성자:

안드레아 그리피스

Andrea는 개발자 도구 분야에서 10년 이상의 경험을 보유한 GitHub의 수석 개발자 옹호자입니다. 그녀는 기술적 깊이와 첨단 기술에 대한 접근성을 높이는 사명을 결합했습니다. 육군 복무 및 건설 관리에서 소프트웨어 개발로 전환한 후 그녀는 복잡한 엔지니어링 개념과 실제 구현을 연결하는 독특한 관점을 제시합니다. 그녀는 웨일스 파트너, 두 아들, 두 마리의 개와 함께 플로리다에 거주하며 GitHub의 글로벌 이니셔티브를 통해 계속해서 혁신을 주도하고 오픈 소스를 지원하고 있습니다. 온라인 @alacolombiadev에서 그녀를 찾아보세요.

출처 참조

Post Comment

당신은 놓쳤을 수도 있습니다