피드로 돌아가기
Zero Variance: Proving COBOL-to-Java Semantic Equivalence with a Live Mainframe Emulator on AWS
Dev.toDev.to
Infrastructure

AWS 기반 Mainframe Emulator 구축을 통한 COBOL-Java 시맨틱 동일성 입증

Zero Variance: Proving COBOL-to-Java Semantic Equivalence with a Live Mainframe Emulator on AWS

Banu Parasuraman2026년 6월 16일17advanced

Context

수십 년간 유지된 COBOL 기반 메인프레임 시스템의 현대화 과정에서 발생하는 비즈니스 로직 손실 리스크가 핵심 병목 지점으로 작용. 단순 시뮬레이터로는 실제 하드웨어 명령어 집합의 정밀한 검증이 불가능하며, Parallel Run 구현을 위한 인프라 부재로 인해 안전한 Cutover 시점 결정에 한계 노출.

Technical Solution

  • SDL Hyperion 4.9.1을 EC2 m5.xlarge에 Bare-metal 빌드하여 실제 S/370 하드웨어 Instruction Set을 그대로 에뮬레이션하는 Legacy Lane 구축
  • Java 17 및 Spring Batch 5.x 기반의 Modernization Lane을 별도 EC2에 구성하여 동일한 Oracle 입력 데이터를 활용한 독립적 NAV 계산 로직 구현
  • COBOL의 내부 스크래치패드인 VSAM KSDS 데이터셋과 Java의 In-memory Step Context를 분리하여 상호 간섭 없는 순수 계산 결과 도출
  • Oracle RDS 상에서 두 시스템의 최종 결과물을 Diff 하는 Reconciliation View를 설계하여 레코드 단위의 데이터 일치 여부를 정밀 검증
  • Wave별 단계적 마이그레이션 전략을 채택하여 각 계산 단계의 Zero Variance 확인 후 순차적으로 COBOL 오케스트레이션 레이어를 제거하는 구조 설계

1. 마이그레이션 대상 로직의 입력/출력 인터페이스를 분리하여 Parallel Run이 가능한 독립 환경을 구성했는가

2. 추상화된 시뮬레이터 대신 실제 하드웨어 명령어 수준의 에뮬레이션을 통해 Edge Case까지 검증 가능한 구조인가

3. 전체 전환이 아닌 Wave 단위의 단계적 Cutover와 이를 검증할 Reconciliation 뷰가 설계되었는가

원문 읽기