처리중입니다. 잠시만 기다려주세요.
TTJ 코딩클래스
정규반 단과 자료실 테크 뉴스 코딩 퀴즈
테크 뉴스
Hacker News 2026.08.03 53

AI가 옮긴 COBOL-자바 코드, '결정론적 오라클'로 검증하는 법

Hacker News 원문 보기

메인프레임 위에서 수십 년 돌아온 COBOL 프로그램을 자바로 옮기는 작업은 최근 생성형 AI의 유력한 적용처로 꼽힌다. 문법 변환 자체는 도구와 모델이 상당 부분 자동화할 수 있지만, 진짜 어려움은 '옮긴 코드가 원본과 똑같이 동작하는가'를 증명하는 데 있다. 레거시 업무 로직에는 테스트 데이터가 남아 있지 않은 경우가 많고, 실무에서 실제로 밟게 되는 예외 분기와 경계 조건을 사람이 일일이 재현하기도 어렵다. 이 지점에서 마이그레이션 프로젝트는 '변환은 끝났는데 안심하고 배포할 수는 없는' 교착에 자주 빠진다.

arXiv에 공개된 한 연구는 이 검증 문제를 정면으로 다룬다. 저자들이 제안한 방법은 'Locksmith Loop(자물쇠공 루프)'라는 이름의 에이전트 기반 테스트 합성 기법이다. 핵심 발상은 원본 COBOL과 AI가 생성한 자바를 각각 두 개의 런타임 환경으로 준비해 나란히 실행하는 것이다. 두 코드 모두에 목(mock)을 심어 외부 의존성을 대체하고, 메인프레임이 아니라 일반적인 상용 하드웨어(commodity hardware) 위에서 돌린다. 원본과 대상을 같은 조건에서 실행해 결과를 맞대어 보는, 이른바 '결정론적 오라클'을 구성하는 셈이다.

분기를 뚫는 반복 루프

루프 안에서 에이전트가 하는 일은 두 단계로 나뉜다. 첫째는 'Witness Search'로, 입력 목을 이리저리 바꿔 가며 아직 도달하지 못한 프로그램 분기 안으로 실행 흐름을 밀어 넣을 입력값을 찾아낸다. 둘째는 이렇게 확보한 입력을 바탕으로 한 '패리티 보존 변형(parity-preserving mutation)'이다. 원본과 대상이 같은 결과를 내야 한다는 제약을 유지한 채 입력을 변형해 더 많은 경우를 훑는 것이다. 단순히 무작위 입력을 뿌리는 퍼징과 달리, 검증 기준을 깨지 않으면서 탐색 범위를 넓히는 데 초점이 있다.

입력만 바꿔서는 더 이상 새로운 경로가 열리지 않는 한계, 즉 커버리지가 정체되는 지점에 다다르면 별도의 분석기가 개입한다. 이 분석기는 더 깊은 탐색을 가로막고 있는 조건을 짚어내 'Locked Paragraph(잠긴 단락)'로 지정한다. 어떤 조건이 문을 잠그고 있는지를 명시적으로 드러내므로, 입력 탐색의 정체 구간을 넘어 그 너머의 로직까지 검증을 이어 갈 수 있다는 것이 저자들의 설명이다. 이름 그대로 잠긴 분기를 하나씩 따고 들어가는 구조다.

세 건의 사례에서 나온 수치

검증은 세 개의 COBOL-자바 사례로 이뤄졌다. 두 건은 오픈소스 프로그램이고 한 건은 실제 운영 환경에 가까운 내부 COBOL 프로그램이며, 규모는 430줄에서 4,114줄에 걸친다. Locksmith는 세 경우 모두에서 단순 입력 탐색이 멈추는 지점을 넘어 커버리지를 끌어올렸다. 두 오픈소스 프로그램에서는 사실상 완전한 커버리지에 근접했고, 운영에 가까운 내부 프로그램에서는 91.90%의 분기 커버리지를 달성했다. 그리고 받아들여진 모든 테스트 케이스에서 생성된 자바는 결정론적 패리티 검사 기준으로 COBOL 원본과 동일한 결과를 냈다.

주목할 대목은 원제가 'bugs included(버그까지 포함해)'라는 표현을 쓴 점이다. 이는 AI가 옮긴 자바가 무결하다는 주장이 아니라, 원본과 대상을 나란히 돌려 차이를 잡아내는 방식이라면 원본에 있던 동작까지 그대로 재현되는지를 확인할 수 있다는 의미에 가깝다. 검증의 목표가 '이상적으로 옳은 코드'가 아니라 '원본과 동등한 코드'라는 마이그레이션 특유의 기준을 그대로 반영한 접근이다.

실무 관점의 의미와 한계

한국의 금융·공공·제조 영역에는 여전히 COBOL 기반 기간계가 남아 있고, 현대화 과제에서 가장 큰 부담은 변환보다 검증과 회귀 리스크다. 이 연구의 시사점은 AI 코딩 결과물을 사람이 눈으로 리뷰하거나 사후 통합 테스트에 의존하는 대신, 원본을 참조 기준(reference)으로 삼아 자동으로 대조하는 파이프라인을 세울 수 있다는 데 있다. 메인프레임 밖 상용 하드웨어에서 돌린다는 점도 검증 환경 확보 비용 측면에서 현실적이다.

다만 한계도 분명하다. 사례가 세 건에 그치고 최대 규모가 4,114줄로, 수십만 줄 단위의 실제 기간계 시스템과는 거리가 있다. 91.90%라는 수치는 나머지 분기가 여전히 검증 사각지대로 남는다는 뜻이기도 하다. 목으로 대체한 외부 연동이나 데이터 계층이 실제 환경과 얼마나 일치하는지, 비결정적 동작이 섞인 프로그램에서도 결정론적 오라클이 성립하는지는 별도 검토가 필요하다. 그럼에도 에이전트가 만든 코드를 결정론적 기준으로 자동 검증한다는 발상 자체는, AI 마이그레이션을 '생성' 단계에서 '신뢰 가능한 인수' 단계로 끌어올리려는 실무적 방향을 잘 보여준다.

이 뉴스가 유용했나요?

이 기술을 직접 배워보세요

바이브코딩으로 직접 만들어보세요

이 기술, 강의에서 실습으로 배울 수 있습니다.

바이브코딩 강의 보기

"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"

실제 수강생 후기
  • 비전공자도 6개월이면 첫 수익
  • 20년 경력 개발자 직강
  • 자동화 프로그램 + 소스코드 제공

매일 AI·개발 뉴스를 받아보세요

주요 테크 뉴스를 매일 아침 이메일로 전해드립니다.

스팸 없이, 언제든 구독 취소 가능합니다.