꿈틀대는 AI, 레거시 코드의 미래를 엿보다: COBOL에서 Java로의 자동 변환과 테스트 자동화
본 기사는 LLM 기반 AI를 이용한 COBOL에서 Java로의 코드 자동 변환 및 테스트 자동화에 대한 최신 연구 결과를 소개합니다. 기호적 실행 기법을 활용한 테스트 프레임워크 개발 경험을 통해 AI 모델의 신뢰성 향상과 레거시 시스템 현대화의 가능성을 제시합니다.

최근 대규모 언어 모델(LLM) 기반 생성형 AI 기술의 눈부신 발전은 기업 시스템의 핵심을 이루는 레거시 코드, 특히 COBOL 코드를 현대적인 Java나 Python으로 변환하는 꿈을 현실로 만들어가고 있습니다. 하지만, 이러한 자동 변환 기술이 아무리 발전해도 변환된 코드의 정확성을 100% 신뢰하기는 어렵습니다. 결국, 변환된 Java 코드를 수동으로 검증하는 과정은 필수적이며, 이는 상당한 시간과 노력을 필요로 하는 고된 작업입니다.
그런데 만약 이 수동 검증 과정까지 자동화할 수 있다면 어떨까요?
Sandeep Hans 등 10명의 연구자들이 발표한 논문 "Automated Testing of COBOL to Java Transformation"은 바로 이 질문에 대한 흥미로운 답을 제시합니다. 이들은 IBM Watsonx Code Assistant for Z (WCA4Z), 즉 COBOL에서 Java로의 코드 변환을 위한 산업용 도구를 위한 테스트 프레임워크를 개발했습니다. 이 프레임워크는 변환된 Java 코드와 원래 COBOL 프로그램의 기능적 동등성을 자동으로 테스트하는 혁신적인 시스템입니다.
핵심은 바로 '기호적 실행(symbolic execution)'입니다. 이 기술을 활용하여 COBOL 코드에 대한 단위 테스트를 자동 생성하고, 외부 시스템과의 호출을 모의(mocking)하여 JUnit 테스트로 변환합니다. 이를 통해 변환된 Java 코드의 의미적 동등성을 효과적으로 검증할 수 있습니다.
이러한 자동화된 테스트 결과는 단순히 오류를 찾고 수정하는 데 그치지 않습니다. 발견된 오류는 AI 모델 자체를 개선하는 데 귀중한 피드백으로 활용될 수 있습니다. 이는 AI 기반 코드 변환 기술의 지속적인 발전과 신뢰성 향상으로 이어지는 선순환 구조를 형성합니다. 레거시 시스템의 현대화라는 난제 해결에 AI가 기여하는 멋진 사례라 할 수 있습니다.
본 연구는 단순한 기술적 진보를 넘어, 복잡한 기업 시스템의 효율적인 관리와 유지보수를 향한 중요한 이정표를 제시합니다. 앞으로 AI가 레거시 코드 변환 및 테스트 자동화 분야에서 어떤 혁신을 가져올지 기대해 볼 만합니다.
Reference
[arxiv] Automated Testing of COBOL to Java Transformation
Published: (Updated: )
Author: Sandeep Hans, Atul Kumar, Toshikai Yasue, Kouichi Ono, Saravanan Krishnan, Devika Sondhi, Fumiko Satoh, Gerald Mitchell, Sachin Kumar, Diptikalyan Saha
http://arxiv.org/abs/2504.10548v1