최근 뉴저지 주지사가 언급한 60년 된 프로그래밍 언어, 코볼(COBOL). 코볼은 정확히 무엇이며, 왜 사용하는 사람들은 거의 없는데도 금융계의 핵심 요소로 남아 있을까요?
코볼의 탄생
그레이스 호퍼는 대단한 인물이었습니다. 예일대에서 수학 박사 학위를 취득하고 바사 칼리지에서 교수로 재직했으며 해군 소장으로 전역했습니다. 컴퓨터 과학 분야에 대한 그녀의 공헌은 그녀를 기리는 행사로 기억되고 있습니다. 국립 에너지 연구 과학 컴퓨팅 센터는 그녀의 업적을 기리기 위해 크레이 XE6 슈퍼컴퓨터에 그녀의 이름을 붙였습니다. 또한 해군은 유도 미사일 구축함 USS Hopper를 그녀의 이름을 따서 명명했습니다. 배의 모토인 ‘Aude et Effice'(‘감행하고 실행하라’)는 호퍼의 정신을 반영합니다.
기계어가 아닌 영어에 더 가까운 프로그래밍 언어를 만들고자 했던 호퍼는 최초의 컴파일러를 개발했습니다. 이는 플로우매틱과 같은 최초의 컴파일된 언어가 등장하는 계기가 되었습니다. 이를 통해 그녀는 1959년 데이터 시스템 언어 회의/위원회(CODASYL)에 참여하게 되었습니다.
그녀는 또한 코볼(COBOL, Common Business-Oriented Language)의 명세와 개발에 핵심적인 역할을 했습니다. 1959년 6월 23일에 첫 회의가 열렸고, 그 결과 보고서와 코볼 언어 명세가 1960년 4월에 발표되었습니다.
코볼의 혁신성
코볼은 여러 혁신적인 개념을 포함하고 있었습니다. 그중 가장 중요한 것은 서로 다른 제조사의 하드웨어에서 실행할 수 있는 능력으로, 당시에는 전례가 없던 일이었습니다.
코볼은 정교한 언어였으며, 프로그래머가 쉽게 작업할 수 있도록 영어와 유사한 어휘를 제공했습니다. 또한, 대량의 데이터를 처리하고 높은 수학적 정확도를 갖도록 설계되었습니다.
예약어(언어를 구성하는 단어)의 어휘는 거의 400개에 달합니다. 프로그래머는 이러한 예약어를 조합하여 문법적으로 이해 가능한 프로그램을 만들 수 있습니다.
다른 언어에 익숙한 프로그래머라면 400개의 예약어가 매우 많은 수라는 것을 알 것입니다. 비교를 위해 C 언어는 32개, 파이썬은 33개를 가지고 있습니다.
코볼의 또 다른 특징은 특정 프로그램 행이 특정 열에서 시작해야 한다는 엄격한 요구 사항이었습니다. 이는 펀치 카드 시대의 유산입니다. 오늘날 프로그래머는 코볼 코드를 작성할 때 더 자유롭게 형식을 지정할 수 있으며, 모든 것을 대문자로 입력할 필요도 없어졌습니다. 이로 인해 코볼 작업이 덜 규정적이고 부담이 줄었지만, 여전히 과거의 유물과 같습니다.
IDENTIFICATION DIVISION. PROGRAM-ID. Hello-World. DATA DIVISION. FILE SECTION. WORKING-STORAGE SECTION. PROCEDURE DIVISION. MAIN-PROCEDURE. DISPLAY "Hello world, from How-To Geek!" STOP RUN. END PROGRAM Hello-World.
코볼의 성공
대부분의 ATM 거래는 여전히 코볼을 사용합니다.
현재는 구식으로 보일 수 있지만, 코볼은 출시 당시 혁명적이었습니다. 금융 기관, 연방 정부, 주요 기업 및 단체에서 널리 사용되었습니다. 이는 코볼의 확장성, 일괄 처리 능력 및 수학적 정확성 때문이었습니다. 전 세계의 메인프레임에 설치되어 뿌리를 내리고 번성했습니다.
여전히 코볼로 실행되는 시스템에 대한 의존도는 매우 높습니다. 2017년 로이터 보도는 다음과 같은 놀라운 통계를 공유했습니다.
- 현재에도 2,200억 줄의 코볼 코드가 사용되고 있습니다.
- 코볼은 모든 은행 시스템의 43%를 담당합니다.
- 코볼 기반 시스템은 매일 3조 달러의 상거래를 처리합니다.
- 코볼은 모든 ATM 카드 결제의 95%를 처리합니다.
- 코볼은 모든 대면 신용 카드 거래의 80%를 지원합니다.
보시다시피 코볼에 의존하는 시스템 없이는 하루를 보내기가 어렵습니다. 은행 계좌, 수표 결제 서비스, ATM, 신호등과 같은 공공 기반 시설은 수십 년 전에 작성된 코볼 코드로 여전히 실행되고 있습니다.
코볼의 문제점
코볼을 아는 프로그래머들은 은퇴하거나 은퇴를 고려하거나 이미 세상을 떠났습니다. 우리는 이러한 중요한 시스템을 계속 가동하고 운영할 수 있는 기술을 가진 사람들을 점점 잃고 있습니다. 새롭고 젊은 프로그래머들은 코볼을 잘 알지 못합니다. 또한 대부분은 기존의 오래된 코드를 유지보수하거나 새로운 코드를 작성해야 하는 시스템에서 일하고 싶어하지 않습니다.
코볼 전문가인 빌 힌쇼는 은퇴를 해야 했고 코볼 카우보이라는 컨설팅 회사를 설립했습니다. 이 회사는 코볼 전문가를 찾지 못해 어려움을 겪는 기업 고객을 대상으로 합니다. 코볼 카우보이(‘Not Our First Rodeo’가 모토)의 ‘젊은 인력’은 50대입니다. 이들은 포춘 500대 기업 시스템의 90%가 코볼로 실행된다고 믿습니다.
물론 금융 데이터를 처리해야 하는 것은 기업과 은행만이 아닙니다. 연방, 주, 지역 정부 서비스도 마찬가지입니다. 다른 모든 시스템과 마찬가지로 메인프레임과 코볼을 사용합니다.
코로나19 팬데믹은 사업주, 근로자 및 자영업자에게 큰 어려움을 가져다주었습니다. 뉴저지 주지사는 대규모 해고와 실업 사태로 인해 주의 오래된 백엔드 시스템을 지원할 수 있는 경험 많은 코볼 프로그래머를 긴급하게 찾고 있습니다. 이들은 326,000건의 신규 실업 신청에 대처하느라 힘겨워하고 있습니다.
오픈 메인프레임 프로젝트는 자원봉사 기반 이니셔티브를 통해 이러한 문제를 해결하려고 노력하고 있습니다. 만약 도움을 줄 수 있다면 그들은 당신의 참여를 환영할 것입니다.
이러한 어려움을 겪고 있는 것은 뉴저지뿐만이 아닙니다. 천만 명이 넘는 사람들이 실업 상태에 놓여 있으며, 그 수는 계속 증가하고 있습니다. 코네티컷은 주의 40년 된 시스템으로 인해 25만 건의 신규 실업 신청을 처리하는 데 어려움을 겪고 있습니다.
이것은 광범위하고 깊숙이 뿌리내린 문제입니다. 2016년 정부 회계 감사원 보고서에서는 최대 53년 된 메인프레임에서 실행되는 코볼 시스템들을 언급했습니다. 여기에는 보훈부, 법무부 및 사회보장국 관련 데이터를 처리하는 데 사용되는 시스템이 포함됩니다.
왜 업그레이드하지 않는가?
이러한 구형 시스템을 업그레이드하는 것은 쉬운 일이 아닙니다. 시스템은 금융, 정부 및 비즈니스 세계의 핵심 역할을 하며 24시간 연중무휴로 운영되어야 합니다. 코드는 오래되었고 복잡하며 종종 문서화가 부족하거나 전혀 되어 있지 않습니다. 또한 항상 정상적으로 작동해야 합니다. 이는 마치 비행기에서 프로펠러를 제거하고 제트 엔진을 장착하는 것과 같습니다.
위험 외에도 현대 시스템으로의 전환에 대한 경제적 논쟁도 복잡합니다. 이러한 메인프레임과 코볼 애플리케이션을 유지하는 데 막대한 비용이 소요됩니다. 기관들은 코볼 코드가 여전히 잘 작동하는 동안 모든 것을 버리고 다시 시작해야 할까요? 이는 기술에 익숙하지 않은 이사회에는 어려운 결정입니다. 코볼 마이그레이션은 저렴하지도 빠르지도 않습니다.
“저는 최근 코볼에서 자바로 전환하는 과정을 거쳤습니다.”라고 힌쇼는 말했습니다. “4년이 걸렸습니다. 그리고 그들은 아직 완료되지 않았습니다.”
호주 커먼웰스 은행이 2012년에 핵심 코볼 플랫폼을 교체했을 때, 5년이 걸렸으며 최종 비용은 7억 4990만 달러(10억 호주 달러)에 달했습니다.
그리고 이것은 계획대로 진행될 때의 이야기입니다. 영국의 은행인 TSB는 인수 합병으로 인해 2018년 코볼 기반 시스템에서 마이그레이션을 해야 했습니다. 결과는 좋지 않았습니다. 은행은 며칠 동안 거래를 할 수 없었고, 마이그레이션 비용은 결국 3억 3천만 파운드가 되었습니다. 이는 실제 마이그레이션을 위한 엔지니어링 작업 예산에 추가된 비용입니다. TSB는 시스템이 중단되는 동안 금융 사기로 4,910만 파운드를 추가로 손실을 보았습니다.
고객 보상 비용은 1억 2,500만 파운드를 초과했으며, 은행은 204,000건의 고객 불만을 처리하기 위해 새로운 직원을 고용하는 데 1억 2,200만 파운드를 지출해야 했습니다. CEO는 사임했고 회사는 사고 발생 2년 후인 현재까지도 피해 복구를 진행하고 있습니다.
코볼의 딜레마
현재 상황이 그대로 유지될 수는 없지만, 이에 대한 해결책을 찾는 것은 쉽지 않습니다. 상황을 개선할 수 있는 유일한 방법은 현대적인 소프트웨어와 하드웨어로 신중하게 전환하는 것입니다.
중단 없이 이를 달성하려면 데이터 손실 및 시스템 중단 시간을 최소화하기 위한 현대적인 전문 지식과 비용이 필요하며, 이는 방정식의 50%를 차지합니다. 나머지 절반은 코볼 전문가와 시간입니다. 안타깝게도 이러한 두 가지 요소는 점점 부족해지고 있습니다.
어쩌면 새로운 유형의 코볼 카우보이가 나타날 날이 올지도 모릅니다.