Claude Code로 레거시 COBOL 코드베이스 현대화

AAnthropic
컴퓨터/소프트웨어AI/미래기술

Transcript

00:00:00개발자들이 Clod Code를 활용해 COBOL 코드베이스를 현대화하는 방법을 살펴보겠습니다.
00:00:05이 데모에서는 AWS의 메인프레임 현대화 데모 저장소를 사용하겠습니다.
00:00:11약 100개 파일로 구성된 중간 규모의 신용카드 관리 시스템으로,
00:00:15COBOL 프로그램,
00:00:16카피북,
00:00:17JCL 스크립트가 포함되어 있습니다.
00:00:191단계 – 발견 및 문서화 우리의 COBOL 코드베이스는 거의 문서화되지 않았습니다.
00:00:25이것은 물론 레거시 코드베이스에서 흔한 일인데,
00:00:28중요한 비즈니스 로직과 규제 요구사항이 문서화되지 않은 코드에 포함되어 있고,
00:00:34코드를 작성한 개발자들은 이미 떠났으며,
00:00:36COBOL에 능숙한 개발자를 고용하기 어렵습니다.
00:00:40먼저 Clod Code의 /agent 명령을 사용하여 특화된 서브에이전트를 만들었습니다.
00:00:44이것이 우리의 COBOL 문서화 전문가이자 번역가였습니다.
00:00:47서브에이전트는 Clod Code에 의해 병렬로 호출될 수 있으며,
00:00:51메인 스레드를 오염시키지 않도록 격리된 컨텍스트 윈도우로 작동합니다.
00:00:56사고 모드를 활성화하고 Clod Code에 코드베이스의 아키텍처를 분석해 달라고 요청했습니다.
00:01:01Clod Code는 94개 파일 모두의 할 일 목록을 작성하고 진행 상황을 추적하여 파일이 두 번 처리되지 않고 놓친 것이 없도록 했습니다.
00:01:09Clod가 작성한 문서는 단순한 코드 주석을 넘어섰습니다.
00:01:13예를 들어, 이자 계산 프로그램 CBACT04C를 살펴봅시다.
00:01:20전체 비즈니스 워크플로우,
00:01:21프로그램이 거래 카테고리 잔액을 읽는 방식,
00:01:24계정 그룹별 이자율을 조회하는 방식,
00:01:26폴백 이자율에 대한 비즈니스 규칙을 적용하는 방식,
00:01:29그리고 계정 레코드를 업데이트하는 방식을 추출했습니다.
00:01:33Clod는 각 파일에 대해 이를 수행했을 뿐만 아니라 평문으로 두 개의 메모리 파일을 작성했습니다.
00:01:39Catalog.txt는 CBACT04C 같은 암호화된 이름을 이자 계산기 배치 프로그램으로 변환합니다.
00:01:48Relationships.txt는 간단한 파이프 구분 형식을 사용하여 모든 종속성을 매핑합니다.
00:01:55이러한 인덱스를 사용하여 Clod는 머메이드 다이어그램을 생성했고,
00:01:59거래 입력에서 전기,
00:02:00이자 계산,
00:02:01최종적으로 고객 명세서까지 데이터가 흐르는 방식을 보여주는 일일 배치 처리 워크플로우의 완전한 맵을 생성했습니다.
00:02:08이 데모에서 Clod Code는 100페이지 이상의 문서를 작성하기 위해 1시간 동안 계속 실행되었지만,
00:02:15Clod Code는 30시간 이상 자율적으로 실행할 수 있으며,
00:02:19여기서 사용된 기술은 훨씬 더 큰 코드베이스로 확장됩니다.
00:02:232단계.
00:02:24마이그레이션 및 검증.
00:02:26Cobalt 코드베이스를 철저히 문서화한 후,
00:02:28Clod에 핵심 기능 중 하나를 Java로 마이그레이션해 달라고 요청했습니다.
00:02:31Clod가 파일을 조기에 편집하지 않고 전체 마이그레이션 전략을 신중하게 생각하도록 계획 모드로 전환했습니다.
00:02:39Clod는 이전에 CBACT04C로 알려진 프로그램을 분석하고 줄 바꿈 처리 및 다중 파일 조정과 같은 복잡한 Cobalt 패턴을 식별했습니다.
00:02:50Clod는 이 기능에 대해 5단계로 구성된 마이그레이션 계획을 개발했습니다.
00:02:541.
00:02:55프로젝트 구조를 만듭니다.
00:02:562.
00:02:57카피북에서 Java 클래스로 데이터 모델을 변환합니다.
00:02:593.
00:03:00원본 파일 형식과 호환되는 I/O 레이어를 구축합니다.
00:03:044.
00:03:05Cobalt 특정 동작을 보존하면서 비즈니스 로직을 변환합니다.
00:03:08그리고 마지막으로 원본 코드베이스의 경우 GNU Cobalt 3.2.0을 사용하고 Java 17을 사용하는 이중 테스트 하네스를 만듭니다.
00:03:17결과 Java 코드는 단순한 구문 변환을 넘어섰습니다.
00:03:20Clod는 적절한 디자인 패턴, 오류 처리, 로깅이 포함된 적절한 Java 클래스를 만들었습니다.
00:03:25현대적인 개발 팀이 실제로 유지보수할 관용적인 Java입니다.
00:03:30다음은 새로운 Java 코드가 대체하는 Cobalt 코드와 동일하게 작동하는지 확인하는 검증입니다.
00:03:37Clod는 여러 테스트 데이터 파일을 만들고 원본 Cobalt와 새 프로그램 모두에 대해 실행했습니다.
00:03:43검증은 최종 출력뿐만 아니라 중간 계산, 파일 쓰기, 데이터 변환을 비교했습니다.
00:03:50결과는 완벽한 비트 대 비트 충실도였습니다.
00:03:53모든 계산, 비즈니스 규칙, 엣지 케이스가 보존되었습니다.
00:03:57물론 이 데모 애플리케이션은 레거시 Cobalt 코드베이스보다 훨씬 작습니다.
00:04:02하지만 여기서 사용된 모든 기술은 확장 가능합니다.
00:04:04Clod Code는 개발자들이 단 12개월 전에는 불가능했을 신뢰도와 효율성으로 코드베이스를 현대화할 수 있도록 힘을 실어줄 것입니다.

Key Takeaway

Claude Code는 레거시 COBOL 코드베이스를 자동으로 문서화하고 Java로 마이그레이션하여 완벽한 기능 동등성을 보장하면서 현대적인 유지보수 가능한 코드로 변환할 수 있다.

Highlights

Claude Code의 /agent 명령어를 사용하여 COBOL 전문 서브에이전트를 생성하고 격리된 컨텍스트에서 병렬 처리 수행

94개 COBOL 파일 분석을 통해 100페이지 이상의 문서 생성, 프로그램 카탈로그와 종속성 맵 작성

머메이드 다이어그램으로 거래 입력에서 최종 고객 명세서까지의 전체 일일 배치 처리 워크플로우 시각화

5단계 마이그레이션 계획을 수립하여 COBOL 프로그램을 Java로 변환하면서 비즈니스 로직과 데이터 모델 보존

검증 단계에서 여러 테스트 데이터 파일을 생성하고 중간 계산, 파일 쓰기, 데이터 변환을 비교하여 완벽한 비트 대 비트 충실도 달성

Claude Code가 30시간 이상 자율적으로 실행 가능하며 더 큰 코드베이스로 확장 가능한 기술 제시

관용적인 Java 클래스 생성으로 현대적 개발 팀이 유지보수할 수 있는 코드 품질 확보

Timeline

프로젝트 개요 및 문제 상황

AWS 메인프레임 현대화 데모 저장소에서 약 100개 파일로 구성된 중간 규모의 신용카드 관리 시스템을 대상으로 COBOL 코드베이스 현대화 방법을 설명합니다. 레거시 COBOL 코드베이스가 거의 문서화되지 않았다는 핵심 문제를 제시하며, 이는 중요한 비즈니스 로직과 규제 요구사항이 문서화되지 않은 코드에 숨겨져 있고, 코드 작성자들이 이미 떠났으며, COBOL 전문가 채용이 어렵다는 실제 업계 문제를 반영합니다. 이러한 상황에서 Claude Code를 활용하여 효율적으로 현대화하는 방법을 소개합니다.

1단계: 발견 및 문서화 - COBOL 서브에이전트 생성

Claude Code의 /agent 명령어를 사용하여 COBOL 문서화 전문가이자 번역가 역할을 수행하는 특화된 서브에이전트를 생성합니다. 서브에이전트는 Claude Code에 의해 병렬로 호출되며, 격리된 컨텍스트 윈도우에서 메인 스레드를 오염시키지 않도록 작동합니다. 사고 모드를 활성화하여 코드베이스의 아키텍처를 분석하도록 요청했으며, 94개 파일 모두의 할 일 목록을 작성하고 진행 상황을 추적하여 파일이 중복 처리되지 않고 누락되지 않도록 관리했습니다.

1단계: 고급 문서 생성 및 인덱싱

Claude Code가 1시간 동안 연속 실행되어 100페이지 이상의 상세 문서를 생성했습니다. 이자 계산 프로그램 CBACT04C 예시를 통해 전체 비즈니스 워크플로우, 거래 카테고리 잔액 읽기 방식, 계정 그룹별 이자율 조회, 폴백 이자율 비즈니스 규칙, 계정 레코드 업데이트 방식을 상세히 추출했습니다. 각 파일에 대한 개별 문서 외에도 Catalog.txt(암호화된 프로그램명을 기능 설명으로 변환)와 Relationships.txt(파이프 구분 형식의 종속성 맵)라는 두 개의 메모리 파일을 작성하고, 이를 기반으로 머메이드 다이어그램을 생성하여 거래 입력부터 이자 계산, 고객 명세서까지의 일일 배치 처리 워크플로우를 완전히 시각화했습니다.

2단계: 마이그레이션 전략 수립

COBOL 코드베이스의 철저한 문서화 이후, Claude Code에 핵심 기능을 Java로 마이그레이션하도록 요청했습니다. 계획 모드를 활성화하여 Claude Code가 파일을 조기에 편집하지 않고 전체 마이그레이션 전략을 신중하게 수립하도록 했습니다. CBACT04C 프로그램을 분석하여 줄 바꿈 처리 및 다중 파일 조정 같은 복잡한 COBOL 패턴을 식별했습니다. 프로젝트 구조 생성, 카피북에서 Java 클래스로 데이터 모델 변환, 원본 파일 형식과 호환되는 I/O 레이어 구축, COBOL 특정 동작을 보존하면서 비즈니스 로직 변환, GNU COBOL 3.2.0과 Java 17 간의 이중 테스트 하네스 구축으로 구성된 5단계 마이그레이션 계획을 개발했습니다.

2단계: Java 코드 생성 및 검증

Claude Code가 생성한 Java 코드는 단순 구문 변환을 넘어서 적절한 디자인 패턴, 오류 처리, 로깅이 포함된 현대적 개발 팀이 실제로 유지보수할 수 있는 관용적인 Java 클래스를 제공했습니다. 검증 단계에서 여러 테스트 데이터 파일을 생성하고 원본 COBOL과 새로운 Java 프로그램 모두에서 실행하여, 최종 출력뿐만 아니라 중간 계산, 파일 쓰기, 데이터 변환을 비교했습니다. 결과는 완벽한 비트 대 비트 충실도를 달성하여 모든 계산, 비즈니스 규칙, 엣지 케이스가 보존되었음을 확인했습니다.

확장성 및 향후 전망

이 데모 애플리케이션은 실제 레거시 COBOL 코드베이스보다 훨씬 작은 규모지만, 여기서 사용된 모든 기술과 방법론은 확장 가능합니다. Claude Code는 30시간 이상 자율적으로 실행 가능하며, 더 큰 규모의 코드베이스 현대화에 동일한 접근 방식을 적용할 수 있습니다. Claude Code를 활용함으로써 개발자들은 단 12개월 전에는 불가능했을 신뢰도와 효율성으로 레거시 코드베이스를 현대화할 수 있게 되었습니다.

Community Posts

No posts yet. Be the first to write about this video!

Write about this video