컴퓨터 이야기 #1 – 생각에서 기계로

왜 옛날 이야기를 시작하지?

지난번 괜히 제목만 거창한 글 “소프트웨어, 하드웨어의 아버지” 이후로 계속 컴퓨터, 특별히 소프트웨어 역사 이야기를 해보고 싶었다. 컴퓨터의 역사만큼 흥미진진한 이야기가 더 있을까 싶을 정도로 지난 70년은 컴퓨터, 인터넷, 웹을 창조한 영웅들의 무용담으로 가득하다. 사실 17세기의 라이프니츠까지 거슬러 올라가야 진정 소프트웨어의 역사를 이야기할 수 있겠지만, 우선 한동안은 20세기 초, 현대식 컴퓨터가 처음 만들어지던 시절부터 현재 실리콘밸리가 번영하기까지의 스토리들을 짚어보고 싶다. 굳이 옛날 이야기들을 써내려가는 건 컴퓨터, 소프트웨어가 얼마나 즐겁고 흥분되는 학문, 직업인지 이야기 하고 싶어서다. 어린 학생들이 가장 기피하는 전공이 컴퓨터 사이언스가 되었다는 이야기, 40대 프로그래머의 미래는 치킨집 뿐이라는 이야기들 (그래서 대학생들 컴퓨터 숙제하다 막힐땐 동네 닭집으로 달려가야 한다는데…), 그런 우울한 소식들에 지쳐있는 다음 세대들에게 소프트웨어의 “환상적인” 역사들을 소개하고 그래서 조금이라도 더 이 분야에서 일하고 싶은 생각이 들게 한다면, 그럼 지금의 잉여짓도 큰 보람이 있을거란 생각이 든다. 그럼 시작해 볼까?

생각에서 기계로

17세기 라이프니츠의 발칙한 상상, “세상의 모든 질문에 답을 주는 기계를 만들 수 있을까?“, 은 결국 괴델과 튜링의 증명을 통해 불가능하다고 결론이 났다 (관련 내용은 지난번 포스팅 참조 [1]). 즉 “신은 존재하는가?”와 같은 인간이 던지는 모든 질문들 중 어떤 것들은 Yes/No의 대답이 불가능하다고 결론난 것이다. 괴델은 그런 기계(궁극의 알고리즘)가 존재할 수 없음을 우회적으로, 세상의 어떤 논리로도 증명할 수 없는 다른 차원의 수들이 있음을 보임으로써 증명했다. 튜링은 거기에서 더 나아가 대답할 수 없는 질문의 “예제(example)”를 선보였고, 바로 이것이 튜링의 Halting Problem 이었다 (여전히 이게 뭔 이야긴가 궁금하시면 [1]을 꼭 참조!). 고대의 철학, 논리학, 수학자들을 미궁가운데 빠뜨렸던 질문에 답을 했으니 이제 과학자들 스트레스는 좀 덜어졌겠다 생각하면 오산이다. 이유는 바로 전 세계에 몰아닥친 2차대전의 여파가 과학 세계에도 몰아쳤기 때문이다.

전장에 나가있는 젊은이들의 생명이 과학자들에게 맡겨지게 된건 바로 현대식 전투에서 복잡한 수식 계산이 쓰이기 시작했기 때문이다. 예를들어 장거리 포의 궤적을 정확히 예측하기 위해서는 거리, 중력, 바람의 방향과 속도등 다양한 변수들을 궤도 방정식에 적용해야 했다. 전장에서 수식표를 들고 다니며 대입하는 방식으로는 목표물과는 엉뚱한 방향으로 포를 날릴수 밖에 없었다. 더 나아가 미국이 본격적으로 핵무기를 개발하는 “맨하탄 프로젝트”를 시작했는데, 플루토늄 239를 오직 원하는 시점에 폭발시키기 위한 장치를 만들기 위해서는 대단히 복잡한 계산식을 풀어내야만 했다 (실제 폰 누이먼에게 맡겨진 일이었다). 독일군의 암호를 해독하기 위해서도 빠른 계산기가 필요했다. 이것이1930-40년대에 과학계에 던져진 숙제였다.

버네버 부쉬(Vannevar Bush) 와 아날로그 계산기

그림: 버네버 부쉬(1890-1974)와 그의 미분계산기

버네버 부쉬 [2]의 이름을 들어본 적이 있다면 아마도 그가 현대식 “월드 와이드 웹(WWW)”의 첫 고안자였다는 사실때문일 것이다. 하지만 그것 말고도, 버네버 부쉬의 업적은 20세기 미국 과학계에 전설로 남아있다. 그의 몇가지 역할만 예로 들자면, “맨하탄 프로젝트의 지휘자”, “군수업체 Raytheon 설립자”, “최초의 미국 대통령 과학 비서관”등이다. 현재 세계를 지배하는 미국의 힘이 과학에 있다고 한다면, 그같은 과학정책을 처음 디자인한 사람이 바로 버네버 부쉬라고 할만큼 그의 영향력은 지대했다.

과학계에서 그의 첫 업적은 기계식 계산기의 개발이었다 [3] . 1920년대 MIT의 전자공학 교수로 일하며 그는 미분 방정식을 계산해 낼 수 있는 거대한 기계를 만들어냈다. 그의 계산기는 설명 그대로 기계였다: 위 그림처럼 막대, 기어, 도르래를 엮어서 만들었고 변수에 값을 할당하기 위해서는 여러개의 막대들을 정확한 각도로 회전시켜야 했다. 계산기에 새로운 방정식을 프로그래밍하는 건 더한 노동이었다. 막대와, 기어, 도르래를 다시 연결해서 주어진 방정식과 가장 유사한 형태로 조합해야 했던 것이다. 즉, 지금 우리가 C 언어로 몇줄 안되게 짜내는 방정식 계산 프로그램을 만들기 위해 이 당시에는 대학원 학생들이 땀 뻘뻘흘리며 막대기와 도르래를 회전시켜야 했다는 말이다. 그리고 계산기에 달린 모터를 돌리기 시작하면 기어가 돌고 막대기가 회전하면서 2%내의 오차에서 정확한 답을 계산해 냈다. 지금 시대의 우리가 보기에 너무나 조악한 이 기계는 그 당시 전 세계  과학계를 환희로 물들인 최고의 발명품이었다. 미국과 유럽등의 대학들에 날개돋힌듯 복제되어 배포되었고, 훗날 2차대전중 복잡한 계산식을 풀어내는데 사용되었다.

그림: 버네버 부쉬의 메멕스 (Memex)

앞에서 언급한대로 버네버 부쉬는 월드 와이드 웹의 개념을 처음으로 “상상”한 사람이다. 정보의 홍수속에 웹을 타고 헤엄치는 우리에게는 덜 와 닿겠지만, 그 시대의 유일한 미디어는 책과 마이크로 필름 정도였다는 것을 생각해보면 그의 상상력이 얼마나 기막힌것이었는지 알수 있다. 부쉬는 사람이 생각할때 꼬리에 꼬리를 물고 생각의 끈이 이어진다는 사실에 착안했다. 그리고 곧 사람의 두뇌에서 일어나는 그 원리를 그대로 기계로 만들어보면 어떨까 상상했고, 메멕스(Memex)로 불린 그의 상상속 기계를 구체적으로 “As we may think” 라는 논문에서 기술했다 [4]. 즉 마이크로 필름들에 쓰여진 정보중 다른 정보로 연결(association/하이퍼링크) 하는 부분에 문자 코드를 입력해 놓고, 필름를 읽다가 책상위 버튼을 누르면 책상속 기계가 돌아가며 문자코드가 가리키는 마이크로 필름을 찾아서 영사기에 올리고 출력해 준다는 개념이다. 이것은 지금의 WWW와 얼마나 유사한가! 문자 코드는 하이퍼링크고, 버튼은 마우스 클릭, 책상밑 기계는 네트워크로 대체하면, 곧 그의 상상이 바로 월드 와이드 웹 이었음을 알 수 있다. 1945년에 이러한 시스템을 상상했다니, 그저 놀라울 뿐이다. 그런 비전을 가진 사람이 만든 과학정책이 아직도 세계를 지배한다는 건 어쩌면 당연한 일인지도 모르겠다.

클라우드 섀넌(Claude Shannon)의 충격적인 석사 논문

클라우드 섀넌 (Claude Shannon), 1916-2001

20세기 최고의 “석사” 논문을 뽑으라면 누구나 주저하지 않고 클라우드 섀넌(Claude Shannon) [5]의 1937년 논문 “A Symbolic Analysis of Relay and Switching Circuits [6]”을 꼽을 것이다. 솔직히 박사논문들과 비교해봐도 그보다 영향력있는 논문을 과연 찾을 수 있을까 싶다. 왜냐하면 그의 논문이 역사상 최초로 추상적인 논리가 현실에서 돌아가는 기계로 만들어질 수 있음을 보였기 때문이다.

1936년 스무살에 수줍은 성격의 섀넌은 미시건 대학을 졸업하고 위에 소개한 버네버 부쉬의 석사 학생으로 MIT에 입학했다. 그는 부쉬의 기계식 계산기를 사용하면서, 계산기에 사용된 스위치 (switch: 막대와 막대를 연결)의 동작에 흥미를 갖게 됐다. 그리고 그는 곧 모터에 의해 열리고 닫히는 스위치가 오래전부터 사용됐던 불(Boole)의 이진법 연산(Boolean logic)과 동일하다는 사실을 발견했다. 참고로 이진법 연산이란 변수에 숫자가 아닌 참/거짓을 할당하고 더하기, 빼기의 사칙연산이 아니라 AND, OR, NOT과 같은 연산을 사용해서 주어진 식의 최종적인 참/거짓 여부를 구하는 계산법이다. 사람이 생각하고 결론에 다다르기까지의 논리를 바로 이진법 연산으로 표현할 수 있다. 섀넌은 아래 그림처럼 스위치 두개를 직렬로 이어놓았을때는 AND 연산, 병렬로 이어 놓았을때는 OR 연산과 같은 결과가 나오는것을 발견했다. 더 나아가 스위치들을 좀 더 복잡하게 조합하면 이전 스위치의 결과 (참/거짓)에 따라 다음 스위치의 열고 닫히는 여부를 결정할 수 있음도 발견했다 (즉 if/else 문을 수행할 수 있다는 뜻).

  

그림: AND 연산                                                                      그림: OR 연산

“이게 뭐 별거라고 21세기 최고의 논문 운운하냐?” 혹 이렇게 생각한다면, 좀 더 깊이 그 의미를 음미해보기를 권한다. 그것은 곧,

“사람의 생각을 기계의 조합을 통해서 표현할 수 있다”

는 충격적인 (적어도 내게는) 뜻이기 때문이다. 1930년대엔 모터로 스위치를 여닫는 기계가 쓰였지만, 곧 같은 원리가 진공관, 전자회로, 집적회로, 실리콘등 물질을 바꾸어가며 지금의 CPU와 메모리까지 이어져왔기 때문이다. 사람의 생각을 기계로 표현하는 것, 즉 컴퓨터 하드웨어의 시작을 연 것이 충격적이 아니라면 뭐가 더 충격이 될수 있을까?

지도교수 부쉬와 마찬가지로 섀넌의 천재성은 여기서 끝나지 않았다. 섀년은 10여년후 1948년 또 다시 세계를 놀래키는 논문 (A Mathematical Theory of Communication)을 쓰고 정보이론 (Information Theory)의 아버지가 된다. 일설에 의하면 그는 그의 발견을 논문으로 쓰기 싫었지만(귀찮았지만) 일하던 벨 연구소의 보스가 강제로 시켜서 출판했다고 한다. 그는 천재적인 수학실력으로 정보가 채널을 통해 전달되는 과정을 수학으로 표현하고, 채널에 노이즈가 있다 하더라도 정보를 표현하는 방식을 달리하면(encoding/decoding) 정보의 의미를 잃지 않고 전달할 수 있음을 보였다. 사람이 소음이 많은 환경에서 대화할때 몇개 중요한 단어만 들어도 문장 전체의 의미를 잃지않고 전달할 수 있는것과 같은 맥락이다. 그의 발견은 단순히 전화나 인터넷과 같은 통신망의 개발에만 중요한 것이 아니다. 정보의 교환이 이루어지는 모든 분야, 즉 인지과학, 인공지능, 데이터압축, 암호학, 또한 Compact Disc등 미디어에 이르기까지 모든 산업과 학문분야에 걸쳐 정보이론은 중요한 토대가 되었다.

(다음 편에는 튜링, 노버트 와이너를 다룰 예정입니다 ^__^b)

– 박상민 http://twitter.com/#!/sm_park

[1] 소프트웨어, 하드웨어의 아버지
[2] Vannevar Bush (위키 아티클)
[3] Differential Analyzer (위키 아티클)
[4] Memex (위키 아티클)
[5] Claude Shannon (위키 아티클)
[6] A Symbolic Analysis of Relay and Switching Circuits (위키 아티클)
[7] Information Theory (위키 아티클)

11 thoughts on “컴퓨터 이야기 #1 – 생각에서 기계로

  1. 20세기에 벌써 www의 계념을 창시한 사람이 있다는게 놀랍네요 ~ 재밌는 시리즈입니다 ㅎㅎ 앞으로도 챙겨봐야죠

  2. 이번편도 흥미진진한데요. ^^
    전 어떤 이론의 발생을 읽길 좋아하는데
    컴퓨터와 기계의 역사는 언제 읽어도 흥미롭습니다.
    다음편도 기대해봅니다.

  3. Serendipity!
    부쉬에서 섀년으로 이어지는 계보가 경탄을 자아네네요. 정말 전설 같은 이야기입니다. “컴퓨터 하드웨어의 시작을 연 것” 두뇌라는 carbon-based thinking 에서 silicon-based logic 으로 첫발을 가능케 한 일이지요! 아, 당시로서는 vacuum-tube-based 가 맞겠군요. ^^;
    이전 답글에서 인용한 책 내용은 다음 경로에 저장해두었습니다. 흥미진진하네요.
    http://yoehanee.userstorybook.net/148764/#quote_99334

  4. 와 잘읽었습니다.

    예전 포스트에서 추천해주신
    The Road from Leibniz to Turing 을 읽고 있었는데 관련 포스팅글이 또 올라오니 반가워요 ㅋㅋ.

    그보다 아무리 글을 읽어도 엄청 대단하다는 느낌이 들지않은 저의 무지가 부끄럽네요..

    계속 해서 읽어봐야 겠습니다.

    감사합니다.

  5. 핑백: 컴퓨터 이야기 #2 – 천재들의 행진 | Human-Computer Symbiosis

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중