컴퓨터 과학자로서의 삶
토니 호어(Charles Antony Richard Hoare)는 1934년 1월 11일에 실론(현재의 스리랑카) 콜롬보에서 태어났다. 토니 호어는 상당히 긴 이름을 가지고 있는데 어렸을 때는 ‘안토니’라고 불렸으나 학교에 들어간 후부터 ‘토니’라고 불렸다.3 공식적인 문서에서는 본명의 약자인 C.A.R. Hoare로 표기될 때도 많다.
그의 부친은 식민지였던 실론에 파견된 영국 관리였고 모친은 실론에서 차를 재배하던 농장주의 딸이었다. 어린 시절에는 작가를 꿈꿨다는 그는 별로 말이 없고 학구적이어서 ‘교수’라는 별명으로 불리기도 했다.4 그의 가족은 제2차 세계대전 말기에는 일본의 공습을 피해 잠시 아프리카로 피난 가기도 했는데 1945년에 완전히 영국으로 귀국했다.
캔터버리에 있는 킹스 스쿨이라는 중고등학교에 다니면서 그는 철학과 수학에 관심을 가지게 되었고 자연스럽게 대학교에서도 철학을 전공했다.
대학을 졸업한 후 그는 해군에 입대했다. 당시 영국은 징병제였다. 그는 해군 내의 러시아어 과정에 지원했고 대학 시절에 받았던 라틴어와 그리스어 성적 덕분에 합격하여 약 2년 동안 강도 높게 러시아어를 배울 수 있었다.
제대 후 그는 옥스퍼드 대학교의 통계학 1년 과정에 등록했다.
학창 시절에 나는 랜슬롯 호그벤이 쓴 <일반인을 위한 수학>이라는 책을 접한 후 통계학과 확률론에 관심을 가져왔습니다…. 그래서 나는 통계학에 흥미가 있었을 뿐만 아니라 그것을 통해 좋은 직장을 구하게 되리라 생각했었죠. 그래서 1년 과정에 등록했습니다. 원래는 내가 저축한 돈을 쓰려고 했는데 다행히 장학금을 받았습니다.5
1년의 통계학 과정 중에 그는 생애 처음으로 컴퓨터를 접하게 된다. 그는 당시 영국의 컴퓨터 제조사이던 페란티Ferranti의 머큐리Mercury 컴퓨터에서 Autocode‡라는 프로그래밍 언어를 사용해서 프로그래밍을 했다.
1년의 과정이 끝나갈 무렵 그는 교내 게시판에서, 러시아로 갈 교환학생을 모집하는 안내문을 보게 된다. 처음부터 학위와는 상관없이 취업을 위해 대학원에 진학한 그였기에, 주저함 없이 지원서를 냈고 그는 선발되었다. 모스크바에서의 생활은 재미있고 윤택했다. 교환학생의 숙소는 모스크바의 마천루 지역에 있는 고급 아파트였다. 그는 모스크바 주립 대학교에서 기계번역machine translation과 통계학을 공부했고 중국, 동유럽, 이집트 등에서 온 교환학생들과 어울렸다.5
그가 퀵 정렬quicksort을 처음 생각해낸 때가 이 시기이다. 영국의 국립물리연구소에서 그에게 자동번역 프로젝트에 참여해 줄 것을 제안하였고 이를 계기로 그는 퀵 정렬에 대한 아이디어를 떠올렸다. 그는 이 당시를 회상하면서 이렇게 말했다.
그것은 놀랍게도 한순간에 벌어진 일click이었죠. (하하하) 그리고 바로 그때 저의 컴퓨팅 경력이 시작된 것입니다.5
후일담 두 가지를 덧붙여야 할 듯싶다. 일단 그는 국립물리연구소의 제안을 거절했다. 그는 면접까지 보았지만, 박사학위가 없으면 임시직으로 끝나리라는 생각이 들었다고 한다. 그리고 그는 퀵 정렬 알고리듬을 개념적으로는 만들었지만 실제 프로그램으로 구현할 수 없었다. 그의 생각을 적절하게 구현할 방법을 찾지 못했기 때문이다. 후에 그는 재귀적호출recursion을 알게 된 후에야 구현할 수 있었다.
러시아에 있는 그에게 접근한 곳이 국립물리연구소만 있는 것은 아니었다. 영국과학기구제조협회British Scientific Instrument Manufactures Association에서 간부로 일하고 있던 삼촌이 그에게 도움을 요청했다. 영국의 회사들이 러시아에서 전시회를 열 계획이었는데 전시장에서 통역을 담당할 사람이 필요하다는 것이었다. 그는 흔쾌히 응했고 그가 배정된 회사는, 소형 컴퓨터를 제작해서 판매하는 엘리엇 브라더즈Elliott Brothers라는 회사였다. 전시회를 마치고 철수할 때 마침 토니의 교환학생 기간도 종료되어 회사 측에서는 토니에게 화물차의 자리 하나를 내어주었다. 그리고 귀국하는 여정 중에 토니에게 좋은 조건으로 입사를 제안했고 토니는 이를 수락했다.3
당시 엘리엇 브라더즈는 직원이 약 14,000명 정도 되는 회사였지만, 컴퓨팅 사업부의 직원은 1,000명이 채 되지 않았다.4 엘리엇 브라더즈에서 토니가 처음 맡았던 일은 정렬 프로그램 작성이었다. 그의 사수는 당시 막 등장했던 방법인 쉘 정렬Shell sort을 사용하라고 그에게 지시했다. 토니는 지시받은 대로 프로그램을 작성하기는 했지만 쉘 정렬이 너무 복잡하다고 생각했다. 그래서 그가 모스크바에서 생각해냈던 퀵 정렬Quick sort을 제안했다. 그의 사수는 처음에는 코웃음을 쳤지만 직접 프로그램을 작성해본 후에는 자신이 틀렸음을 인정했다.§
첫 번째 과제를 성공적으로 마친 그에게 주어진 다음 일은, 엘리엇 브라더즈에서 새롭게 설계하고 있던 컴퓨터를 위한 새로운 프로그래밍 언어의 설계였다. 회사는 이제 9개월 된 신입사원의 능력을 높게 평가했던 모양이다. 그런데 참 다행스럽게도 토니의 걱정을 덜어주는 일이 생겼다. 정말로 우연히 그는 회사 도서관에서 <알고리듬형 언어, 알골 60에 대한 보고서Report on the Algorithmic Language, ALGOL 60>라는 소책자를 발견했다. 그는 알골 60 언어에 대한 설명을 쉽게 이해할 수 있었고, 그렇다면 회사의 고객들도 마찬가지일 거라고 생각했다. 굳이 새로운 언어를 만들 필요가 없어 보였다. 공교롭게도 마침 근처 도시인 브라이턴Brighton에서 알골 60에 관한 교육 강좌가 진행되었다. 그는 개발 관리자, 영업 관리자 등을 데리고 강좌에 참여했고 결국 모두 알골 60을 선택하는 데 동의했다.5 한편, 이 소책자에서 얻은 또 다른 수확이라면 재귀적 호출recursion을 알게 된 것이다. 덕분에 그는 퀵 정렬을 완벽하게 구현할 수 있었다.
토니가 이끄는 작은 개발팀은 알골 60의 일부만 선택하여 컴파일러를 완성했다. 이 컴파일러는 알골 60을 구현한 최초의 사례 중 하나이다. 토니는 이 일로 주목받기 시작했고 알골을 비롯하여 여러 프로그래밍 언어 설계에 초대받게 된다. 그는 알골-W¶를 포함하여 PL/I, Ada 등의 언어 설계에 자문을 했다.
알골 60 컴파일러가 성공을 거두자 이제 토니는 승진을 거듭하게 된다. 아울러 회사에서는 아주 야심 찬 계획을 세웠다. 자체적으로 운영체제를 개발하기로 한 것이다. 토니는 이 프로젝트의 책임을 맡았다. 안타깝게도 운영체제는 컴파일러에 비해 훨씬 어려웠다. 엘리엇 브라더즈의 기획팀은 운영체제에 많은 기능을 넣었고 따라서 점점 복잡해졌다. 약속한 일정에 결과물이 나오지 않는 일이 반복되었다. 결국 토니는 완전히 프로젝트를 뒤집어엎었고, 최소한의 기능을 가지는 운영체제를 만들기 시작했다. 마침내 운영체제가 동작하기 시작했으나 너무 느렸다. 메모리 부족으로 인해 프로그램이 빈번하게 메모리에서 쫓겨나는 상황이 계속되었다.# 운영체제 개발은 실패로 막을 내렸다.
1960년대 중반이 지나면서 영국의 컴퓨터 산업은 지각 변동을 겪었다. IBM을 위시한 미국의 컴퓨터 제조사들이 시장을 잠식하기 시작했고 영국의 컴퓨터 업체들은 흡수되거나 사라졌다. 엘리엇 브라더즈도 예외는 아니었다. 먼저 잉글리시 일렉트릭English Electric 사에 인수되었고, 얼마 지나지 않아 잉글리시 일렉트릭 사는 ICL에 흡수되었다. 개발 주도권을 잃어버린 토니는 회사를 떠나기로 결심했다.
그는 산업계를 떠나 학계로 옮기고 싶었지만 학위가 없는 그에게 쉽지 않은 일이었다. 그래서 그가 자리를 구한 곳은 맨체스터에 있는 국립컴퓨팅센터National Computing Centre였다. 그렇지만 석 달 만에 그는 후회했다. 그가 원하는 것과는 거리가 있었기 때문이었다. 그때 아일랜드 벨파스트에 있는 퀸즈 대학교에서 교수를 채용한다는 공고가 눈에 띄었다. 그는 밑져야 본전이라는 생각으로 지원서를 제출했고 면접 장소에 나갔다. 놀랍게도 그는 면접이 끝난 후에 바로 자리를 제안받았다.
그는 1968년부터 1977년까지 벨파스트의 퀸즈 대학교에서 정교수로 일하면서 불안정한 북아일랜드 상황 속에서도 영향력 있는 연구 결과물을 내놓았다. 대표적인 것이 프로그래밍 언어의 공리적 의미론axiomatic semantics이다. 1977년에 옥스퍼드 대학교로 자리를 옮긴 그는 옥스퍼드 대학교에 컴퓨터 과학 전공이 자리 잡을 수 있도록 노력했다. 아울러 그는 프로세스의 동기화와 관련하여 CSP(Communicating Sequential Processes)를 제안하여 업계에 큰 영향을 주었다.
1999년에 교수직에서 은퇴한 그는, 마이크로소프트 영국 연구소에서 일하며 프로그래밍 의미론을 실제 개발 현장에 적용하는 작업에 참여하고 ‘대통합 이론’과 같은 연구 활동을 계속 이어가고 있다.
그는 엘리엇 브라더즈에서 알골 60 컴파일러를 함께 개발했던 질Jill과 1962년에 결혼하여 해로하고 있으며 교육 및 컴퓨터 과학에 대한 공로로 영국 여왕으로부터 기사 작위를 받았다.
답글 남기기