[문병로의 알고리즘 여행] 도널드 크누스:천재의 전형

출처: 중앙일보 2020년 8월 28일자 [문병로의 알고리즘 여행]

필자가 적어도 20년 동안 기다리고 있는 책이 있다. 스탠퍼드대학 교수인 도널드 크누스의 『컴퓨터 프로그래밍의 기술』(이하 ‘기술’) 8장이다. 크누스는 1967, 1968, 1972년에 ‘기술’ 3연작을 내놓으면서 컴퓨터 과학계에 충격을 던졌다. 조그만 글자로 총 2050페이지에 이르는 역작인데 그 방대함과 깊이는 상상을 초월한다.

크누스는 원래 총 12장을 계획했는데 이 중 6장까지를 세 권의 책에 담았다. 그리고는 출판술에 관한 연구로 집필을 몇 년만 늦추겠다고 했다. 곧 돌아올 요량으로 시작한 외유는 무려 10년 이상 걸렸다. 결과물로 출판용 언어인 TeX과 폰트를 기하방정식으로 표현하는 메타폰트를 내놓았다. 이것으로 출판의 혁명이 일어났다. 타이프라이터와 지루한 수작업으로 작성하던 논문과 책의 제작이 자동화되고 디자인도 자동화되면서 예술성까지 겸비하게 되었다.

지금은 출판이 모두 컴퓨터 기반으로 자동화되어 있지만 이 움직임을 일으키고 기반 기술을 제공한 사람이 크누스다. 당시의 컴퓨터 환경을 생각하면 이런 일을 했다는 것이 상상이 안된다. 지금 같은 그래픽 모니터는 있지도 않았고 CRT 모니터로 글자 하나씩 찍어가면서 보여주던 시절에 그런 일을 했다.  

복잡한 수식이 많이 들어가는 방대한 책을 세 권 쓰고 나니 출판의 불편함을 절감했을 것이다. 보통 사람들은 불편한 환경이면 잘 적응하려고 노력하지만 이런 종류의 천재들은 판을 바꾸어 버린다. 크누스는 아예 출판용 언어를 만들어 버렸다. 그 사이 『초현실수』라는 소설도 발표하고, 자기 집에 2층 높이에 이르는 거대한 파이프 오르간을 제작해서 설치하고 직접 연주회를 열기도 했다. 

이제는 ‘기술’ 집필로 돌아오나 했더니 쉴 새 없이 딴짓을 한다. 계산 기하, 프로그래밍 언어, 알고리즘, 컴퓨터를 위한 수학 등의 주제로 책을 계속 낸다. 99년에는 새로운 컴퓨터 구조를 발표하고 책으로 냈다. ‘기술’의 작업이 중단된 지 33년만인 2005년에 다시 나오기 시작한다. 한 권을 한꺼번에 내지 않고, 7장의 일부가 써지는 대로 분책으로 내고 있다. 지금까지 분책이 7개 나왔다. 7장의 반을 채우는 데만 무려 2000페이지쯤 쓴 것 같다.

크누스는 1938년 밀워키에서 태어났다. 음악을 전공하려던 가난한 고등학생은 케이스 웨스턴 리저브 대학에서 물리학 장학생 제의를 받으면서 인생이 바뀐다. 거기서 우연히 IBM 650 컴퓨터를 접하게 되고 전설적인 컴퓨터 프로그래머로 가는 첫발을 내디딘다. 그는 음악과 수학 사이에는 패턴이라는 공통점이 존재한다고 주장한다. 그의 말이다. “수학은 패턴의 과학이다. 음악도 다름 아닌 패턴들이다. 컴퓨터 과학은 추상화와 패턴의 형성에 깊은 관련이 있다. 다른 분야와 비교하여 컴퓨터 과학은 지속적으로 차원이 급상승한다는 특징이 있다.” 

추상화의 레벨이 높아지는 과정을 이렇게 표현하고 있다. 그는 음악·문학·예술 분야에서 충분한 빌딩블록을 가졌고, 이것들을 생산적으로 결합할 수 있는 주제가 그의 앞에 출현했다는 것을 감지하고는 현명하게 그것들을 결합해서 추상화 레벨을 끊임없이 높였다. 그가 해온 일을 문학적 컴퓨팅이라 하기도 한다. 고급 언어 컴퓨터 프로그램을 컴퓨터에서 돌아가도록 컴파일하는 대표적인 기법인 LR 파싱은 크누스가 만든 것이다. 유명한 패턴 매칭 알고리즘인 KMP 알고리즘도 크누스가 개입한 알고리즘이다. 크누스는 74년 컴퓨터 분야의 노벨상인 튜링상을 수상했다. 

인간의 사고가 고도화되어가는 과정은 패턴의 추상화와 관련이 깊다. 우리가 감지하지 못하고 설명하지 못하는 프로세스도 개입된다. 패턴의 추상화는 컴퓨터 과학의 대표적 특징이기도 하다.

작가 존 브로크만은 노벨 물리학상을 받은 머레이 겔만을 가리켜 “다섯 개의 뇌를 가지고 있고, 그 하나하나가 당신들의 두뇌보다 우수하다”고 말했다. 100명의 사람이 평생 걸려도 하기 힘든 일을 일생 동안 몇 개씩 해내는 사람이 있는데, 크누스가 그런 사람이다.

필자는 ‘기술’의 8장을 기다리고 있다. 필자가 컴퓨터 과학에서 가장 중요하고 재미있는 주제라 생각하는 ‘재귀’에 관한 장이기 때문이다. 7장의 반에 해당하는 분량이 2000페이지쯤 되는 것 같으니, 현재 82세인 그가 7장을 끝낼 수나 있을지 모르겠다. 이 세기의 천재가 재귀를 어떻게 요리하는지 감상할 기회가 있을지 조바심이 난다.

서울대학교 컴퓨터공학부 문병로 교수

Friday, August 28th 2020
Tag: