[마소 2008년 1월] 누가 컴퓨터의 심장을 만들었는가

박지강 (jkwave@gmail.com) 개발 및 번역 프리랜서로 활동해왔으며 현재 SK 커뮤니케이션즈에서 근무 중이다. 역서로는 "프로젝트 데드라인"(한빛미디어)이 있으며, 최근 "당신은 웹 2.0 개발자입니까?"(한빛미디어)를 집필하였다..기술을 이용한 기획과 전략, 열린 전략적 제휴, 일인 기업에 관심이 많으며, 현재 목표는 스스로 기획하고 개발하고 디자인한 서비스를 대중들에게 공개하는 것이다.

웹을 고안한 팀 버너스 리, 윈도우의 빌 게이츠, 리눅스의 리누스 토발즈 등은 누구나 한번쯤은 들어봤을 법한 이름들이다. 이 컴퓨터 괴짜들은 우리가 편리한 세상을 누리는데 많은 도움을 준 위인들로 익히 알려져 있다. 하지만 이 유명한 괴짜들조차도 컴퓨터의 도움 없이는 어떤 혁신적인 성과도 이뤄낼 수 없었을 것이다. 아쉽게도 컴퓨터를 고안한 영웅들의 이름들은 우리에게 널리 알려져 있지 않다. 마치 우리가 에디슨의 이름은 알지만 일상 생활에 없어서는 안 될 성냥이나 우산 등을 발명한 사람의 이름을 알지 못하듯이 말이다.


앨런 튜링(Alan Turing)  :  현대 컴퓨팅의 아버지

1930년대, 겨우 20대였던 앨런 튜링은 현대 컴퓨터와 프로그램이 동작하는 원리가 설명된 추상적인 수학 모델을 세상에 내놓았다. 바로 "튜링 머신(Turing Machine)"이다. 앨런 튜링은 자동화된 디지털 컴퓨터를 만들 목표로 연구하지 않았다. 그는 수학가였으므로 컴퓨팅에 대한 자신의 가설을 수학적으로 증명하는데 매진하였다. 튜링 머신 또한 단지 계산 가능한 함수(computable function)를 정의하기 위한 수단으로서 고안해낸 것이다. 하지만 그 여파는 대단하여 지금까지도 컴퓨터 산업에 큰 영향을 미치고 있다.

튜링 머신은 알고리즘을 수학적이고 기계적인 절차들로 분해하여 동작할 수 있는 컴퓨터의 실행과 저장에 관한 추상적인 모델이다. 튜링 머신은 애초에 무엇이 계산되어질 수 있는지에 대한 범위를 규정하기 위해 정의 되었다. 튜링 머신을 소개한 논문을 한마디로 요약하면 이렇다. "만약 튜링 머신에 의해 계산될 수 있으면 그 함수는 계산 가능하다." 튜링 머신의 실행이 중간에 멈추지 않고 끝까지 실행되는 경우를 계산 가능하다고 정의한 것이다.

<그림 1>에서 보다시피, 튜링 머신 그 자체는 실제 기계가 아니라 수학 원리로 구성된 가상 기계이다. 튜링 머신의 동작을 이해하면 튜링의 업적과 현대 컴퓨터에 끼치는 영향력을 온전히 느낄 수 있다.

 

 <그림 1> 튜링 머신의 구조

튜링 머신은 <그림 1>에서 보다시피 다음과 같은 4가지 요소로 구성된다.


1) 테이프(tape) : 사각형의 셀들이 일렬로 나열되어 있다. 각 셀들 안에는 한정된 심볼(숫자나 문자)이 들어간다. 테이프의 길이는 무한정하다.

2) 헤드(head) : 테이프의 셀 안에 있는심볼을 읽고 쓰며 좌우로 이동하는 장치이다.

3) 상태 레지스터 (state register) :  튜링 머신의 현재 상태 값(심볼)을 저장하는 공간으로서 값들은 한정되어 있다.

4) 액션 테이블(action table) : 튜링 머신이 셀을 읽고 쓰며 헤드를 좌우로 이동하고 상태를 변경하게 하는 명령어들의 집합이다. 보통 (현재 상태, 현재 심볼, 새로운 상태, 새로운 심볼, 왼쪽/오른쪽 이동)들로 표현된다. 각 명령어들의 해석 방법은 이렇다. 만약 상태 레지스터에 있는 값이 "현재 상태" 값이고 헤드가 "현재 심볼"을 읽었다면 상태 레지스터의 값을 "새로운 상태" 값으로 변경하고 "현재 심볼" 값을 "새로운 심볼" 값으로 바꾼 다음에 왼쪽 또는 오른쪽으로 이동한다. 만약 상태 레지스터와 헤드가 읽는 값에 대응되는 명령어가 액션 테이블에 없다면 수행을 멈춘다.


마치 어셈블리 언어를 보는 것 같지 않는가? 현대의 관점에서 튜링 머신의 "테이프"는 데이터들의 메모리, "액션 테이블"은 그 데이터를 조작하는 프로그램의 명령어들로 볼 수 있다. 현대의 컴퓨터는 튜링 머신을 구현한 자동화된 기계로서, 0과 1로 이루어진 이진 데이터를 메모리에 저장하고 프로그램의 명령을 중앙처리장치에서 해석함으로서 여러 종류의 계산을 위해 새로운 기계를 만들 필요가 없는 "범용 전자 기계"이다. 프로그램(program)은 심볼들을 이용해 기계에게 명령을 내리는 의미있는 심볼들의 집합체이며, 프로그래밍이란 프로그램을 만드는 과정이다. 프로그램 언어(program language)는 프로그램을 만들기 위한 심볼들의 의미와 관계를 규정한 것이다. 앨런 튜링의 위대한 점을 요약하면 프로그래밍이 가능한 컴퓨터의 수학적 원리를 제시함과 동시에 "테이프"에 있는 데이터와 액션 테이블의 명령어들이 같은 형식의 심볼들(숫자와 문자들)로 구성하였다는 것이다. 데이터(data)와 프로그램(program)을 동일한 방식으로 저장하고 처리할 수 있는 길이 열린 것이다.


앨런 튜링의 아이디어는 존 폰 노이만(John Von Neumann)에 의해 결실이 맺어진다. 앨런 튜링이 프린스턴 대학에서 박사학위를 받을 동안, 지도 교수였던 노이만은 튜링 머신의 아이디어에 관심이 많았으며 앨런 튜링에게 공동으로 연구를 진행하자고 제의하였다. 하지만 튜링은 요청을 거절하고 박사 학위를 받은 후 영국으로 돌아갔다. 그 후 1951년, 노이만은 튜링 머신의 원리를 구현한 프로그램 내장 방식(stored program)의 디지털 컴퓨터인 애드박(EDVAC)을 개발하여 현대 컴퓨터의 원형을 만들었다. 에드박은 10진법이 아닌 2진법을 사용했으며 프로그램 내장 방식의 최초의 컴퓨터이다. 프로그램 내장 방식이란 프로그램을 기억장치에 저장해두고 명령을 순서대로 중앙처리장치가 해석하며 실행하는 것을 의미하며 하드웨어는 중앙처리장치와 메모리가 구별된다. 튜링 머신의 "테이프""액션 테이블"이 각각 데이터와 프로그램의 형태로 컴퓨터 메모리 안에 동시에 저장되어 처리되는 것이다. 현대 대부분의 컴퓨터들은 노이만 방식의 컴퓨터 아키텍처를 채택하고 있다.

하지만 앨런 튜링이 사회에서 고귀한 명성만을 얻었던 것은 아니다. 튜링은 동성애자였다. 1952년, 동성애 파트너가 자신의 집에 도둑질 한 것을 경찰에 신고하면서 그가 동성애자라는 사실이 외부에 알려지게 되었다. 동성애자를 혐오하는 당시 사회적 분위기 속에서 경찰의 감시를 받게 되었고 동성애성을 감소시킨다는 에스트로겐 호르몬을 강제로 투여 받는다. 약물 부작용으로 가슴이 여성처럼 부풀어오르는 수모를 당하면서 2차 대전의 영웅이자 현대 컴퓨팅 모델의 창시자인 그는 결국독이 든 사과를 먹고 자살한다. 그때가 1954년이다. 그의 죽음 후 세계적인 컴퓨터 학회인 ACM(Association for Computer Machinery)은 컴퓨팅 분야의 노벨상인 튜링 상을 제정하여 컴퓨팅 분야에 지대하게 공헌한 사람에게 매년 시상한다. 

<애플사의 로고와 앨런 튜링의 독이 든사과>

많은 이들이 한 입 베어 먹은 사과 모양의 애플사 로고를 보고 앨런 튜링이 자살했을 때   먹은 독이 든 사과를 흉내낸 것이라고 주장한다.

 <그림 2> 애플사의 로고

하지만 애플사는 그 주장을 공식적으로 부인하였다. 하지만 애플사의 컴퓨터가 튜링의 영향을 받았다는 사실은 부인할 수 없을 것이다.

* 튜링 머신이 어떻게 동작하는지는 지면 관계로 자세히 설명하지는 못하지만, 좀 더 자세한 정보를 얻고 싶다면 인터넷에서 자바 애플릿으로 구현된 튜링 머신 사이트(http://www.igs.net/~tril/tm/tm.html)를 방문해보자.


배니바르 부시(Vannevar Bush)  :  컴퓨터를 통한 지식의 확장

20세기 초반, 에니악과 같은 초창기 컴퓨터들은 엄청난 비용이 들어 개발되었고 더군다나 크기도 거대했기 때문에 주로 국가나 기업의 특수한 목적으로 활용되었다. 일반 개인들이 사사로운 일과 업무 처리를 하기 위해 그런 거대한 컴퓨터를 사용한다는 것은 상상할 수 없었다. 하지만 부시는 2차 대전이 끝날 때 즈음, 전쟁을 위해 종사한 과학이 인류에게 관심을 돌려야 한다고 생각했다. 전쟁에 승리하기 위해 미사일의 탄도를 자동으로 계산했던 에니악 컴퓨터, 대량 살상용 무기인 핵폭탄 등을 만들기 위해 더 이상 과학 기술이 사용되는 것을 원하지 않았다.

1945년에 부시는 시사 월간지인 애틀랜틱 매거진 (Atlantic Magazine)에 "우리가 생각하는 것처럼(As We May Think)"이란 제목으로 IT역사에 혁명적인 에세이를 기고하게 된다. 이 원고에서 전쟁이 끝나고 나서는 과학자들이 더 이상 인간의 물리적 힘을 확장 시키는 데 열중하지 말고 인간이 가지고 있는 지식의 파워를 증폭시키는 연구를 진행해야 한다고 촉구하였다. 그는 인간이 여러 세대에 걸쳐 축적한 방대한 지식들을 빠르게 검색하고 이용하게 되면 인류의 정신적 능력은 크게 확장되고 발전된다고 믿었다. 그러기 위해서는 각 개인들이 자신들이 생산하는 정보와 지식들을 저장하고 빠르게 검색하는 소형 컴퓨터 시스템이 필요하다고 주장하였으며 그것이 메멕스다. 에세이 내에서 메멕스의 구성과 기능은 자세하게 묘사되었지만 당시 과학 기술이 갖는 한계 때문에 실제로 개발되지는 않았다. 하지만 그 후 메멕스로부터 영향을 받은 수많은 IT 개척자들이 노력하여 지금과 같은 개인용 컴퓨터와 월드 와이드 웹이 탄생하게 된다. "우리가 생각하는 것처럼" 에서 메멕스는 <그림 3>과 같이 그림으로 자세히 묘사되었다.



<그림 3> 라이프지에 실린 메멕스의 모습


책상 위 맨 왼쪽의 사각형은 개인의 노트, 책, 기록 등의 정보를 사진화하여 입력하는 스캐닝(scanning) 장치이고 가운데 2개의 사각형은 모니터 역할을 하는 스크린(screen) 장치이다. 맨 오른쪽에는 화면에 나오는 정보를 검색하고 조작하는 키보드와 레버, 버튼 등이 있다. 책상 안에는 전기에 의해 동작하는 아날로그 자동 장치들이 존재한다. 책상 내부의 동그란 원형 장치들은 스캐닝 시스템에 의해 정보가 저장되는 마이크로 필름들이다. 사용자가 키보드와 레버, 버튼을 눌러 원하는 정보를 입력하면 메멕스의 내부장치는 마이크로필름에서 해당 정보를 찾아서 영화 영사기처럼 가운데 스크린 장치에 투사한다. 무엇보다 중요한 것은 사용자는 스크린에 보여지는 정보들 중 서로 관련 있는 것들을 링크(link)로 연결할 수 있고 나중에 그 링크를 선택하면 해당되는 정보로 곧장 빠른 속도로 이동할 수 있다는 것이다. 마치 우리가 웹 브라우저를 사용하여 어떤 웹사이트의 내용을 보고 있을 때 하이퍼링크된 특정 단어를 선택하면 해당되는 정보로 곧장 이동할 수 있는 것처럼 말이다. 이처럼 메멕스는 현재의 개인용 데스트탑 환경과 월드 와이드 웹이 결합된 형태와 유사하다. 메멕스의 출현 30년 후에 개인용 컴퓨터가 나오게 되었으며 50년 후에 월드와이드 웹이 세상에 나타나 부시의 예언대로 인류의 지식은 한층 확장되게 되었다. 지금으로부터 60 년전, "우리가 생각하는 것처럼" 에서 부시가 주장한 미래의 모습은 이렇다.


 

"수많은 정보들 사이에 링크가 연결된, 완전히 새로운 형태의 백과사전이 나타나고 그것은 메멕스안에 저장될 수 있다. 변리사는 수백만 건의 특허정보들 중에서 그의 고객이 관심 있어 하는 부분들만 링크로 연결해 따로 확인할 수 있다."  

 

오. 현명한 예지자여.


이반 서덜랜드(Ivan Sutherland)  :  컴퓨터와 인간의 그래픽 대화

텍스트 기반 운영체제인 MS-DOS를 썼던 컴퓨터 사용자들은 지금의 GUI 환경이 얼마나 편리한지 설명하지도 않아도 알 것이다. 화면에 나열된 정교하고 예쁜 아이콘을 마우스로 누르면 컬러풀한 프로그램이 내가 손을 움직이기를 기다린다. 이반 서덜랜드는 컴퓨터와 인간 사이에 그래픽이란 중간 매개체를 놓았다. 그 덕분에 우리는 정밀한 하드웨어 덩어리를 예쁘게 사용하고 있다. 서덜랜드가 컴퓨터 그래픽을 연구하는데 중요하게 사용된 컴퓨터는 MIT의 링컨 연구소(Lincoln Laboratory)에서 1959년에 만들어진 TX-2이다. 이 컴퓨터는 원래 트랜지스터(transistor)가 디지털 회로에 잘 사용될 수 있는지 확인하기 위해 개발되었다. 이전의 컴퓨터들은 대부분 진공관(vacuum tube)으로 만들어졌다. 트랜지스터는 진공관보다 상대적으로 안정성이 높았다. 서덜랜드는 이 컴퓨터를 새벽 3시부터 5시까지 사용했던 유일한 대학원 생이었다고 한다. 


<그림 4> TX-2에 앉아있는 라이트펜을 쥐고 있는 서덜랜드


TX-2는 펀칭한 종이를 컴퓨터 오퍼레이터에게 제출하던 기존의 컴퓨터 동작 방식과는 달랐다. 즉 프로그래머가 컴퓨터에 붙어서 직접 작업할 수 있는 온라인(online) 방식이었다. <그림 4>처럼 프로그래머는 컴퓨터에 프로그램을 직접 입력하고 결과를 컴퓨터 오퍼레이터가 아닌 컴퓨터로부터 즉시 받을 수 있었다. 이런 장점 때문에 서덜랜드는 TX-2 앞에 붙어서 "스케치패드(sketchpad)"란 그래픽 프로그램을 성공적으로 개발할 수 있게 되었다. TX-2에서는 프로그램을 개발하고 수정하며 확인하는 것이 상대적으로 쉬었던 것이다. 서덜랜드는 박사 학위의 주제를 고민하던 중에 TX-2의 콘솔에 달려있는 <그림 5>의 라이트펜을 보고 컴퓨터를 사용하여 그림을 그리는 아이디어를 생각해 낸다.


<그림 5> 라이트 펜


만약 TX-2가 없었다면 컴퓨터 그래픽의 시초를 연 논문인 "스케치패드 : 사람과 기계와의 그래픽 대화 시스템(The Sketchpad : A Man-Machine Graphical Communication System)"는 세상에 나오지 못했을 것이 분명하다. 후일에 TX-2를 개발한 웨스 클락(Wes Clark)은 자신이 만든 이 컴퓨터를 누군가가 홀로 최대한 이점을 살려 잘 사용해 주길 바랬다고 한다. 그 사람이 바로 이반 서덜랜드였던 셈이다. 서덜랜드는 1963년도에 "스케치패드 : 사람과 기계와의 그래픽 대화 시스템" 라는 박사 학위 논문을 쓰면서 TX-2에서 동작하는 스케치패드(SketchPad)란 그래픽 프로그램을 만든다. 이 프로그램은 텍스트 기반의 출력 방식 밖에 없었던 그 시대에는 매우 혁명적인 소프트웨어였으며 사람이 컴퓨터를 다루는 방식을 근본적으로 변화시키게 되는 동력이 되었다. GUI(Graphical User Interface)라는 용어가 나오기 훨씬 이전에 이미 GUI의 기본 요소를 완전히 구현한 최초의 프로그램이었다. 종이 테이프의 실행 결과를 텍스트로 받았던 프로그래머들과 일반 사용자들은 선, 사각형, 원 등의 기하학적 도형을 콘솔 모니터에 그릴 수 있게 되었다.

1981년에 제록스 파크(Xerox PARC)는 당시 연구소에서 가장 발전된 기술을 적용해 상업적인 컴퓨터를 만들려고 시도했다. 제록스 스타 워크스테이션(Xerox Star Workstation)이 그 결과물이었다. 특히 당시에 컴퓨터 마우스로 아이콘을 다루어 데스크탑을 사용하는 혁명적인 GUI를 최초로 선보였는데, 이때 참여했던 제록스(Xerox) 연구원인 스미스(D.C Smith)는 제록스 스타의 혁신적인 GUI는 스케치패드로부터 많은 영향을 받았다고 회고했다.  이 컴퓨터의 GUI는 향후 맥킨토시와 윈도우 인터페이스에 큰 영향을 미치게 된다. 스케치패드는 윈도우와 매킨토시로 이루어진 현대 개인용 컴퓨터의 GUI에 근본적인 영향을 끼친 것이다.  이처럼 서덜랜드는 일반 개인들이 그래픽을 사용해 컴퓨터를 쉽게 다룰 수 있도록 기존의 텍스트 기반의 인터페이스라는 장벽을 부수는데 결정적인 기여를 한 사람이다. 그와 같은 공로로 1988년에 튜링상을 수상하였다.


더글라스 엥겔바트(Douglas Engelbart)  :  마우스를 넘어

배니바르 부시의 비전과 메멕스에 감명을 받은 과학 기술자들이 이 세계에 미친 영향은 거대하다. 월드 와이드 웹을 만든 팀 버너스 리, GUI의 시발점을 제공한 이반 서덜랜드도 그의 영향력 아래 있다. 하지만 더글라스 엥겔바트만큼 그의 비전을 실행하기 위해 자신의 일생을 바친 사람은 없다. 배니바르 부시의 메멕스를 실제로 구현하기 위해 엥겔바트가 설계한 NLS(oN Line System)라는 컴퓨터 시스템은 후대의 컴퓨터와 소프트웨어 발전에 지대한 파급효과를 가져왔다.


<그림 6> NLS 시스템


NLS는 ARPA, NASA, US 공군으로부터 자금을 공급받아 개발된 컴퓨터로서 ARPANET에 연결된 혁명적인 그룹웨어 시스템이었다. 네트워크에 연결되어 여러 사람들이 협력하며 문제를 해결하는 것을 도와주는 시스템이다. 이 컴퓨터는 세계 최초로 컴퓨터 마우스가 장착되었고 하이퍼미디어를 구현하였으며 스크린 기반의 원격 비디오 화상 대화 기능을 실현하였다. NLS는 1968년에 대중에게 공개적으로 시연 되었는데 그것은 모든 데모의 어머니(Mother of Demo)라 불리울 정도로 쇼킹하고 감동적이며 역사적인 이벤트였다.

1968년 12월 9일, 엥겔바트는 샌프란시스코에 있는 컨벤션 센터에서 열린 컴퓨터 컨퍼런스에서 1000여 명의 컴퓨터 전문가들에게 기존에 행해지던 방식과 완전히 다르게 NLS를 시연하였다. 엥겔바트는 컨퍼런스 홀에서 헤드셋을 착용하고 데모를 진행했다. 이 데모에서 엥겔바트는 다음과 같은 세계 최초의 컴퓨터 기술들을 선보인다. 이들은 대부분 현대 개인용 컴퓨터의 기능에 직접적으로 영향을 끼쳤다.


1) 컴퓨터 마우스

2) 2차원 화면 편집

3) 파일 트리뷰(File Tree View)

4) 하이퍼미디어 검색 및 퍼블리싱(publishing)

5) 다중 윈도우

6) 통합된 하이퍼미디어 방식의 인트라넷 이메일 시스템

7) 문서 버전 콘트롤

8) 원격 화상 회의

9) 포맷팅 지시어를 사용한 간단한 워드 프로세싱

10) 문맥 기반 도움말


이 것들이 전부가 아니다.  분산 클라이언트 서버 아키텍처, 일관성있는 명령어 문법, 유니버설 유저 인터페이스, 문법 주도형 명령어 해석기,  버추얼 터미널의 프로토콜, RPC(Remote Procedure Call) 프로토콜들, 게시판, 지식 관리 시스템.. 놀랍지 않은가? 이 모든 것이 NLS에 구현되었고 그 날 대중들에게 데모하면서 처음으로 외부에 공개되었다.  이 충격적인 데모는 http://sloan.stanford.edu/MouseSite/1968Demo.html 에서 동영상 파일로 감상할 수 있다. 이 데모속의 기술들은 개인용 컴퓨팅에 심취한 후대 과학자들에게 큰 영향을 주었고 결국 현재의 개인용 컴퓨터에 모두 구현되었다


우리(We)  : 인간을 위한 컴퓨터

바야흐로 유비쿼터스 시대를 살며 컴퓨터가 주는 혜택을 누리고 있는 우리는 과연 인간다운 삶을 살고 있는가? 주변의 수많은 컴퓨팅 환경으로 인해 인간다움은 잃어버리고 마치 기계톱니바퀴처럼 생각 없이 돌기만 하고 있는 것은 아닌가? 앞서 설명했던 수많은 선인들이 컴퓨터를 발전시킨 목적은 오로지 인간 사회를 이롭게 하기 위해서였다. 빠른 속도로 달려가고 있는 현대 사회에서 필요한 것은 아이러니하게도 미래에 대한 조급함이 아닌 과거에 대한 반성과 다짐이다. 눈부시게 성장하는 컴퓨터를  찬미하고 추종하는 것이 아니라, 인간의 행복을 추구하기 위해 컴퓨터를 사용하는 것이다. 내년이 빨리 오기 전에 올해의 시작을 잡고 서둘러 던진 질문에 답을 해야겠다. 누가 컴퓨터의 심장을 만들었는가? 바로 우리다. 후대에 누군가 역사 속에서 우리를 인간을 위해 컴퓨터를 고안하고 사용한 따뜻한 인간군상이라고 기록해주길 바란다. 이제 그만 컴퓨터를 끄고 사랑하는 가족과 함께 새해를 설계해야겠다.


[참고서적] : 본 원고는 누가 소프트웨어의 심장을 만들었는가? (박지훈 저 / 한빛미디어)에서 원작자의 허락을 받아 책의 내용을 상당 부분 도용하였음을 알려드립니다.

by 마음속폭풍 | 2008/02/03 23:24 | 컬럼 | 트랙백 | 덧글(0)

트랙백 주소 : http://jkwave.egloos.com/tb/1376184
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]

:         :

:

비공개 덧글

◀ 이전 페이지다음 페이지 ▶