그레이스 호퍼 탄생 100주년

일반입력 :2006/12/12 09:52

Colin Barker

IT분야에 종사하는 사람들에게 프로그래밍 언어 코볼(COBOL)은 멸종된 도도새와 다를 바 없다.

하지만 코볼을 비즈니스 언어로 확립한 것으로 인정받는 사람인 그레이스 호퍼(Grace Hopper)는 자신이 태어난 후 100년이 지난 지금까지도 이 언어가 현대 기업계를 움직이는 많은 응용 프로그램을 든든하게 받쳐 주고 있다는 사실을 알게 되면 기뻐할 것이다.

9일은 1906년 이날에 태어난 그레이스 호퍼의 탄생 100주년이다.「코볼의 어머니」라고도 불리는 그레이스가 프로그래밍 이론 및 방법에 기여한 것은 대단한 업적으로 인정받는다. 그는 무엇보다도 컴퓨터가 한 번에 한 줄씩밖에 해석 못하던 시절에 컴파일된 프로그램을 개발한 최초의 사람이다.

호퍼는 예일대학교에서 수학 및 물리학 학사학위와 박사학위를 받았다. 바사르칼리지(Vassar College)에서 학생들을 가르치다가 1943년 미 연방 해군 예비군(Naval Reserve)에 합류, 오래된 전자계산기인 하바드 마크(Harvard Mark) 1을 사용했다. 그는 세계최초의 컴퓨터 프로그래머들 중 하나로 일하면서 매우 뛰어난 재능을 보였다(자세한 약력은 위키디피아에서 호퍼(Hopper) 항목 참조).

그레이스는 하바드 마크 1과 마크 2을 사용하다가 1949년 다른 회사로 옮겨서 유니백(Univac) 1을 사용했다. 그리고 이곳에서 컴파일러를 개발했다.

해군으로 돌아간 후에는 새 언어인 코볼로 만든 소프트웨어를 검증하는 일을 했으며, 코볼은 그레이스의 이름과 지울 수 없는 관계를 가지게 되었다. 그는 이곳에서 소프트웨어가 수학 함수와 표기법으로 이루어진 긴 문자열이 아니라 사용하기 쉬운 형태가 되어야 한다는 개념을 점진적으로 발전시켜 컴퓨팅 부문에서 커다란 성과를 거뒀다.

바로 그 지점에서 프로그램은 사무원들이 쉽게 사용하고 이해할 수 있는 것이어야 한다는 원칙이 나오게 된다. 원칙적으로, 코볼은 과학자가 아니라 사무원들을 위한 것이다.

마이크로 포커스(Micro Focus)의 제품 관리 담당 이사인 줄리앙 도빈스(Julian Dobbins)는 “코볼은 지금도 사용되고 있으며 기업을 운영하는 프로그램에서 한 부분을 차지하고 있다”라고 말했다. 마이크로 포커스는 아직도 코볼에 맞게 개발하고 있는 회사들 중 하나다. 도빈스는 “(정보 분석 회사인) 가트너(Gartner)는 비즈니스 거래의 75%가 아직도 코볼로 이루어진다고 추정한다”고 덧붙였다.

이렇게 코볼 사용 비율이 높은 것은 은행 및 기타 금융 기관 때문이다. ATM 사용과 같은 금융 거래를 실행하는 시스템은 대체로 수년 전에 만들어졌지만 아직도 가동되고 있다. 이 시스템들은 경제적이며 효율적이다. 그리고 코볼 코드는 문제가 잘못 되었을 때 수정하기 쉽다. 그래서 왜 바꿔야 하나?라는 주장이 나오게 된다.

새로운 응용 프로그램의 경우는 C++과 같은 최신 언어가 코볼을 대치하면서 아직도 코볼로 수행되는 작업은 거의 없다.

그러면 지금도 코볼을 사용하는 이유는 무엇인가? 도빈스는 “프로그래밍 언어인 코볼은 건전한 원칙을 토대로 설계됐다”라며 “웹 서비스나 서비스 중심 아키텍처(SOA)와 같은 최신 원칙을 적용해 보면 구현하기가 정말 쉽다는 것을 알게 된다”라고 설명했다.

하지만 대학시절부터 코볼을 사용한 그조차도 코볼은 형편없는 이미지를 가지게 된 것을 인정한다. 그는 “한 컨퍼런스에서 프로그래머와 이야기를 나누다가 객체 지향 응용프로그램에서 코볼을 사용하는 것에 대해 이야기한 적이 있다”라며 “그 프로그래머는「코볼을 사용해야 할 이유가 뭔가? 달구지(우차)에 터보 기능을 달아 주는 것과 다를 바 없다」라고 말했다. 나는 달구지는 더 이상 사용되지 않는다고 대꾸할 수밖에 없었다”라고 털어놓았다.

도빈스는 아직도 세상이 코볼에 의존하고 있다는 견해를 고수하고 있다. 그는 코볼을 지금까지도 건전한 언어로 만들어주는 원칙은 그레이스 호퍼가 제일 처음 세운 것이며 그레이스가 태어난 지 100년이 지난 지금 세상은 그 원칙들을 여전히 고마워해야 한다고 믿고 있다.

호퍼는 1992년 1월 1일에 사망했다. @