COBOL 현대화란 일반적으로 레거시 시스템으로 간주되지만 여전히 엔터프라이즈 운영에 필수적인 COBOL 애플리케이션을 업데이트하거나 전환하는 프로세스를 의미합니다. 애플리케이션 현대화 프로세스에는 최신 소프트웨어 개발 방식을 도입하고, COBOL 코드를 더 현대적인 프로그래밍 언어로 리팩터링하거나 최신 플랫폼으로 마이그레이션하는 작업이 포함됩니다.
COBOL 시스템을 현대화하면 미션 크리티컬 비즈니스 로직과 기능을 보존하면서 유지보수성을 높이고, 오늘날의 복잡한 하이브리드 환경과의 상호 운용성을 개선하며, 확장성을 강화하고 운영 비용을 절감할 수 있습니다.
COBOL 현대화는 단순히 COBOL 코드를 최신 프로그래밍 언어로 변환하는 것 이상을 포함합니다. 해당 코드가 위치하고 실행되는 메인프레임 시스템 또는 분산 플랫폼과 상호 작용하는 기술 스택을 신중하게 고려해야 합니다. 이는 코드 변환뿐만 아니라 애플리케이션 통합, 데이터 아키텍처 재설계, 런타임 교체, 트랜잭션 처리의 무결성 및 보안 등을 포괄하는 시스템 수준의 엔지니어링 작업입니다.
COBOL(Common Business-Oriented Language)은 메인프레임 프로그래밍에 가장 널리 사용되는 언어 중 하나입니다. 비즈니스 데이터 처리 요구 사항을 위해 특별히 구축되었습니다.
COBOL의 첫 번째 버전은 1960년에 출시되었습니다. 수십 년이 지난 현재에도 금융 서비스, 정부, 물류, 제조, 소매 등 다양한 분야에서 운영 중인 약 2,500억 줄의 코드에 사용되고 있습니다.1 전 세계 엔터프라이즈에서 메인프레임 시스템이 계속해서 핵심 기반으로 활용되는 만큼 COBOL은 여전히 유효합니다.
COBOL 기반 애플리케이션은 뛰어난 데이터 처리 및 파일 처리 역량과 신뢰성 높고 안정적인 성능으로 잘 알려져 있습니다. 그러나 기업은 시스템 및 데이터 소스 간 상호 운용성을 높이고, 규제 또는 규정 준수 요구 사항에 대한 표준을 유지하며, 기존 리소스를 활용해 장기적인 성공을 보장하기 위해 애플리케이션 현대화를 고려할 수 있습니다. 전략적 관점에서 관리하면 현대화 프로세스는 코드와 시스템을 검토하고, 기존 코드를 설명하며, 요구 사항을 검증하고, 미래를 위한 효율적인 워크플로를 결정할 기회를 제공할 수 있습니다.
규정 준수 및 보안
상호 운용성
유지 관리 가능성
COBOL 레거시 코드는 현재의 데이터 개인정보 보호 통제 및 정책을 준수하지 않거나 최신 보안 패치가 정기적으로 적용되지 않을 수 있습니다. 이로 인해 사이버 공격과 데이터 유출에 취약해집니다. 이러한 구형 시스템은 끊임없이 변화하는 규제의 복잡한 요구 사항을 따라가지 못할 수도 있습니다.
구식 COBOL 애플리케이션을 최신 인프라와 통합하는 일은 복잡할 수 있습니다. 이러한 상호 운용성 부족은 혁신과 비즈니스 성장을 저해하여 기업이 경쟁에서 뒤처지게 만들 수 있습니다.
Think 뉴스레터를 통해 AI, 자동화, 데이터 등 가장 중요하고 흥미로운 업계 동향에 대한 최신 소식을 받아보세요. IBM 개인정보 보호정책을 참조하세요.
COBOL 현대화를 시작할 때 기업은 다음 방법 중 하나 이상을 선택할 수 있습니다.
캡슐화
DevOps 방식 적용
코드 리팩터링
이 현대화 접근 방식은 모놀리식 COBOL 프로그램을 모듈형 마이크로서비스로 전환합니다. 비즈니스 기능을 마이크로서비스로 래핑한 다음 애플리케이션 프로그래밍 인터페이스(API)로 노출합니다.
캡슐화는 기반 COBOL 시스템을 변경할 필요가 없으므로 신속한 현대화를 지원합니다. 따라서 클라우드 네이티브 아키텍처 및 워크플로와 통합하는 과정에서 발생할 수 있는 중단을 줄일 수 있습니다.
마이그레이션은 레거시 COBOL 시스템을 현대화하기 위한 또 다른 전략입니다. 일반적으로 특정 메인프레임 워크로드를 Amazon AWS 또는 Microsoft Azure와 같은 클라우드 컴퓨팅 플랫폼으로 이전하는 작업을 포함합니다.
이 메인프레임 현대화 프로세스에는 일반적으로 데이터 액세스 방식 변경, 미들웨어 설치, 새 환경에서 실행되도록 COBOL 애플리케이션 재컴파일과 같은 일부 변경이 필요합니다. 공급업체는 워크로드 리호스팅 또는 리플랫폼화를 지원하는 현대화 서비스를 제공하고 실시간 성능 및 보안 모니터링 툴을 제공할 수도 있습니다.
코드 리팩터링은 소스 코드 수준에서 COBOL 프로그램을 재구성합니다. 이는 기존 코드에 흔히 수반되는 기술 부채를 줄이는 것을 목표로 하며, 이러한 기술 부채는 지속적인 유지 관리를 통해 시간이 지남에 따라 '상환'되어야 합니다. 조직은 기존 COBOL 코드를 최적화하거나 C#, Java 또는 .NET과 같은 최신 코딩 언어로 전환할 수 있습니다.
최적화는 코드 분석과 비효율성을 해소하고, 종속성을 줄이며, 중복을 제거하기 위한 세부 계획 수립으로 시작됩니다. 이 계획에는 카피북에 정의된 데이터 구조의 표준화, 더 모듈화된 설계 개발, 복잡한 비즈니스 로직의 간소화가 포함될 수 있습니다.
방대한 COBOL 코드베이스를 다른 프로그래밍 언어로 전환하는 작업은 시간이 오래 걸릴 수 있습니다. 개발 팀은 전체 코드를 수동으로 다시 작성하는 대신 AI 기반 코드 변환 또는 코드 번역 툴을 비롯한 자동화를 활용하여 시간을 절약하고 현대화에 필요한 노력을 최소화할 수 있습니다.
현대화 프로젝트는 대체로 규모가 크고 부담스러운 작업입니다. 보다 원활한 진행을 위한 몇 가지 팁은 다음과 같습니다.
평가 및 계획 수립
작게 시작하기
점진적 확장
테스트 및 문서화
COBOL 코드베이스를 평가하는 것은 코드의 상태와 복잡성을 확인하고, 현대화가 의미 있는 영향을 미칠 수 있는 영역을 정확히 파악하며, 가장 적합한 접근 방식을 결정하기 위한 핵심적인 첫 단계입니다. 이후 팀은 범위와 일정을 포함하여 현대화 프로세스를 개괄하는 계획을 수립해야 합니다.
작게 시작하면 현대화 작업의 위험을 관리하는 데 도움이 됩니다. 예를 들어 기업은 처음에 간단한 최적화 또는 리팩터링 작업을 처리하거나, 소규모 비즈니스 기능의 캡슐화 또는 마이그레이션부터 시작할 수 있습니다. 이를 통해 핵심 구성 요소의 운영을 유지하면서 다운타임을 최소화하고 발생할 수 있는 문제의 영향을 제한할 수 있습니다.
그런 다음 조직은 이전 반복 작업에서 얻은 교훈을 적용하여 COBOL 시스템의 더 중요한 모듈로 확장할 수 있습니다. 이를 통해 레거시 애플리케이션을 꾸준하고 지속 가능한 속도로 현대화하고, 더 복잡한 전환을 처리하는 데 필요한 경험을 쌓을 수 있습니다.
기능과 작동 방식을 검증하고 현대화된 시스템이 여전히 예상대로 작동하는지 확인하기 위해 철저한 테스트를 수행해야 합니다. 또한 새 코드나 구성, API 정의, DevOps 워크플로 등 모든 변경 사항을 문서화해야 합니다.
인공 지능은 COBOL 현대화 프로세스를 보강할 수 있습니다. 특히 생성형 AI 툴은 COBOL과 같은 프로그래밍 언어로 학습되거나 미세 조정된 대규모 언어 모델(LLM)을 기반으로 하므로 메인프레임 코드를 분석할 수 있습니다.
그러나 AI는 메인프레임 시스템의 필요성을 없애지 않으며, 오히려 그 필요성을 더욱 높입니다. AI가 COBOL 현대화를 가속화하고 COBOL 개발자의 은퇴로 발생하는 기술 격차를 해소하는 한편, 메인프레임은 AI가 제공하는 모든 개선 사항 속에서도 신뢰성, 확장성 및 트랜잭션 복원력을 갖춘 필수 플랫폼으로 남아 있습니다. 현대화 접근 방식에서 내리는 전략적 선택에 따라 프로세스의 원활성과 프로그램의 성공 여부가 결정될 수 있습니다.
AI가 지원할 수 있는 현대화 작업은 다음과 같습니다.
코드 이해 및 설명
코드 생성 및 리팩터링
코드 변환 및 최적화
테스트 생성 및 코드 문서화
예를 들어 Swimm의 애플리케이션 이해 플랫폼은 정적 분석과 LLM을 결합하여 비즈니스 규칙을 추출하고 COBOL 사용자 화면의 각 요소에 대한 종속성 및 변수 흐름을 식별합니다. 한편 IBM watsonx Code Assistant for Z는 AI 에이전트를 활용하여 메인프레임 코드와 기술 문서를 이해하고 이를 자연어로 설명합니다.
일부 AI 기반 애플리케이션은 자연어 프롬프트를 바탕으로 새 코드를 생성하는 챗봇 인터페이스를 제공합니다. 또 다른 애플리케이션은 실시간 인라인 코드 제안을 생성하기 위해 통합 개발 환경(IDE)에 통합됩니다. IBM watsonx Code Assistant for Z는 한 단계 더 나아가 COBOL 애플리케이션을 모듈형 비즈니스 서비스로 자동 리팩터링합니다.
Persistent Systems에서 개발한 시스템과 같은 멀티 에이전트 시스템은 여러 AI 에이전트를 사용하여 COBOL 코드를 Java와 같은 최신 프로그래밍 언어로 전환합니다. 코더 에이전트가 변환을 수행하면, 검토 에이전트가 변환된 코드에서 오류나 최적화 및 개선 기회를 확인합니다.
AI 기반 툴은 새 코드와 원본 COBOL 코드의 의미상 동등성을 비교하는 테스트를 자동으로 생성할 수 있습니다. 또한 특정 코드 조각의 기능을 문서화하는 인라인 코멘트를 생성할 수도 있습니다.
모든 AI 애플리케이션과 마찬가지로 팀은 정확성을 위해 AI 아웃풋을 검증하고, 생성된 코드와 제안된 수정 사항 또는 변경 사항을 테스트하는 등 신중하게 접근해야 합니다.
IBM zSystems는 z/OS, Linux, z/VSE, z/TPF, z/VM 및 zSystems 소프트웨어를 실행하는 최신 z/Architecture 하드웨어 제품군입니다.
미션 크리티컬 워크로드를 처리하는 동시에 전체 IT 인프라의 보안, 안정성 및 제어를 유지하도록 설계되었습니다.
IBM으로 메인프레임 애플리케이션을 현대화하여 디지털 혁신을 가속화하세요.
1. 특별 보고서: COBOL 설문조사 결과가 입증하는 보편성, 가치 및 밝은 미래, TechChannel, 2021년 10월 11일