컴퓨터, 그 중 가장 컴퓨터에 밀접한 시스템 소프트웨어를 연구해야하는 저주와 축복을 동시에 받은 인생(^^)을 살게 된 이유는 컴퓨터가 좋아서일 것입니다. 자동차, 비행기와 같이 컴퓨터는 그 자체가 인류의 여러 지적 업적들이 복합적으로 융합된 인류 지성의 상징과 같은 존재입니다. 오늘 이야기 하고자 하는 것은 그 중 컴퓨터의 역사에 대해 우리가 상식으로 알고 있던 것보다 조금 더 오랜 과거의 이야기입니다.
보통 프로그래밍 언어를 처음 배울 때 가장 처음 나오는 내용 중 인기있는 것은 바로 에니악(ENIAC)의 이야기입니다. 많은 책들에 에니악이 보통 최초의 컴퓨터라고 하는 설명들이 많이 나오지만, 사실 이것은 부정확한 설명이고 에니악이 갖는 의미는 최초의 "전자식 범용 (general purpose)" 계산기라는 것입니다.
ENIAC 이전에도 분명 전자식 계산기는 있었습니다. 하지만 그 계산기들은 하드웨어 설계시 디자인된 특정 목적의 계산 밖에 수행할 수가 없었습니다. ENIAC은 사칙연산 기능이 있었고 데이터들에 대해 어떻게 사칙 연산을 수행할 수 있는지를 필요에 따라 바꿀 수 있는 "프로그램"을 통해 결정할 수 있다는 의미에서 최초의 범용 전자식 계산기라는 의미를 갖게 된 것입니다. 아울러 프로그램과 데이터가 메모리상에서 구별이 없는 폰노이만 구조의 최초 구현 중 하나이기도 하며, 제공하는 연산 기능의 범용성이 튜링 컴플릿(Turing-completeness)을 만족하여 이론상 현재 존재하는 컴퓨터가 할 수 있는 모든 일을 할 수 있는 컴퓨터였습니다 (이론상입니다. 실제 메모리, 성능 등의 제약으로 인해 비교 자체가 불가능합니다).
ENIAC 이전의 컴퓨터는 크게 전자식이지만 범용성이 없는 또는 튜링 컴플릿 하지 않은 컴퓨터와 그 이전의 전자식이 아닌 기계식 컴퓨터로 나눌 수 있습니다. 그 중 오늘 이야기하고 싶은 것은 기계식 컴퓨터가 되겠습니다.
기계식 컴퓨터는 그 형태가 매우 다양합니다. 1930년대 소련에서는 복잡한 미분방정식을 "대충" 풀기 위해 물을 이용한 컴퓨터가 있었다고 합니다. 간단히 설명하면 다양한 굵기의 파이프로 연결된 물통들 사이에서 물을 풀고자 하는 방정식에 따라 이리저리 움직여서 최종적으로 결과 물탱크에 들어있는 물의 양을 통해 답을 얻어내는 방식입니다. 이른바 "아날로그(analog)" 컴퓨터입니다.
이러한 특이한 방식 외에 사실 대표적이고 가장 원시적인 기계식 컴퓨터는 역시 톱니바퀴를 사용한 계산기들이겠지요. 어렸을 때, 편도선염으로 자주 고열에 시달리는 바람에 초등학교를 졸업할 때까지 병원 응급실에 꽤 자주 들락거렸습니다. 그 중 인천 세브란스 병원의 응급실에 갈 때면 아픈 와중에도 제가 유심히 살펴보던 것이 있었으니 바로 병원비를 계산할 때 사용하는 커다란 기계식 계산기였습니다. 그 당시에도 벌써 자취를 감춰 찾아볼 수 없는 기계식 계산기가 실제로 사용되는 모습은 신기할 다름이었습니다. 숫자를 입력하면 촤르르륵하는 소리와 함께 숫자판들이 돌면서 숫자가 나오는 것은 마술과 같았습니다. 이러한 기계식 계산기 역시 컴퓨터의 역사에 반드시 넣어야 할 컴퓨터의 선조라고 할 수 있을 것입니다.
최초의 기계식 컴퓨터는 언제 누가 만들었을까요? ENIAC이 최초의 컴퓨터다라고 말뚝 박는 불성실한 설명 보다 좀 더 친절한 책들은 찰스 바베지(Charles Babbage)가 19세기 초에 고안한 Difference engine이 최초의 기계식 계산기라고 말하는 경우가 많습니다. 확실히 근대화되고 복잡한 기계식 계산기를 처음 세상에 소개한 것은 맞습니다만 그 전에도 기계식 계산기는 계속해서 진화 중이었다는 사실은 많이 알려져있지 않습니다.
그렇다면 진짜 최초의 기계식 컴퓨터는 누가 만들었을까요? 정답은 "아무도 모른다"입니다. 사실 제가 최근에 발견한 바로 이 기계에서 오늘의 글을 쓰고자 하는 동기가 시작되었습니다.

1901년 그리스의 Antikythera 섬 근처에서 해면을 채취하기 위해 잠수한 잠수부들이 좌초된 고대의 배를 발견합니다. 그 안에서 여러 종류의 유물들이 출토되었는데 그 중 공돌이들(OTL...)에게 가장 중요한 의미를 갖는 유물은 바로 위의 사진에서 보여지는 앤티키시에라 메커니즘(Antikythera Mechanism)이 되겠습니다. 앤티키시에라 메커니즘이 처음 발견되었을 때에는 다른 유물들의 시대와 맞지 않는 복잡성과 이질적인 모습으로 그 원리와 목적을 제대로 이해하지 못하였고 1910년대에 들어서야 천천히 밝혀지게 되었습니다.
밝혀진 바에 따르면 앤티키시에라 메커니즘은 왼쪽 그림과 같이 여러개의 톱니바퀴들이 물려 돌아가면서 천체의 움직임을 파악하는 과학계산기입니다. 크랭크축을 회전시켜 날짜를 입력하면 그 날짜에 해와 달 그리고 다른 별들의 위치를 계산해서 출력하게 되어 있습니다.
앤티키시에라 메커니즘은 BC 150년 경에 만들어진 것으로 판명 되었습니다. 놀라운 사실은 고대의 기술임에도 불구하고 천체의 움직임을 날짜에 따라 계산하는 복잡한 기능을 37개의 기어를 통해 구현하고 있다는 것이며 그 정확도가 매우 높다는 것입니다. 또한, 기계를 구성하는 37개 기어의 구성 방식의 복잡도 뿐만 아니라, 크고 작은 기어를 세밀하게 가공하는 기술이 18세기 수준의 기술이었다는 것이지요. 실제로 이와 유사한 계산 장치가 BC 1세기 이후 다시 역사에 등장하는 것은 천년이 훨씬 넘게 지나서야 이루어집니다.
앤티키시에라 메커니즘은 이후 여러 과학자들에게 매력적인 연구 대상이 되었습니다.
많은 과학자들이 X-Ray, 컴퓨터 분석 등 당대의 최첨단 기술을 사용해서 이 장치에 대해 많은 연구를 진행해왔습니다. 발견된지 거의 100년이 다 되어가는 지금도 계속해서 새로운 사실들이 발견되고 있으며 2006년, 2008년 각각 발견된 사실들이 Nature에 논문으로 발표될 정도로 앤티키시에라 메커니즘은 역사적으로, 공학적으로 놀라운 비밀을 잔뜩 포함하고 있습니다.
하지만, 더욱 놀라운 것은 대부분의 연구자들이 동의하기를, 이 기계의 복잡도와 정확성 그리고 부품의 가공과 조립 방식을 고려하였을 때, 이 기계는 오랜 시간 동안 개량과 개선을 거듭해왔을 것이라는 사실입니다. 실제로 이 기계의 계산원리는 바빌론 사람들이 기원전 500년(!) 경에 발견한 천체움직임을 예측하는 계산 체계에 기반하고 있다는 사실을 고려한다면 BC 150년 경에 이런 장치가 나왔다는 것은 그다지 놀라운 사실이 아닐 수도 있습니다.
그렇다면 다시 본론으로 돌아가서, 인류 최초의 컴퓨터는 앤티키시에라 메커니즘도 아니라는 결론을 얻을 수 있습니다. 과연, "계산"을 자동화하기 위한 최초의 기계는 무엇이었을까요?
혹자는 주판을 인류 최초의 계산기라 말하지만 저는 그 주장에는 동의하지 않습니다. 주판은 산가지와 같이 계산을 돕는 장치일 뿐 계산을 하는 장치는 아닙니다. 컴퓨터는 계산의 원리나 방법을 전혀 모르고도 입력을 넣으면 답을 얻을 수 있는 장치여야 할 것입니다. 그런 의미에서 앤티키시에라 메커니즘은 진정 컴퓨터였으며, 인류 최초의 컴퓨터는 앤티키시에라 메커니즘의 개발자가 참고로 했던 어떠한 기계가 아니었을까 하는 생각이 듭니다.
찬란했던 고대의 기술을 생각한다면 인류는 약 1800년의 시간을 들여서 "Reinventing the wheel"을 하고 있었던 것입니다. 엄청난 기세로 빠르게 발전하는 지금의 기술 역시 어쩌면 짧지 않은 미래에 갑자기 사라지게 되고 다시 수천년이 지나서야 후손이 "Intel"이라고 써있는 프라스틱과 금속의 작은 덩어리를 발견하고 놀라워하지 않을까요?
ENIAC
ENIAC 이전에도 분명 전자식 계산기는 있었습니다. 하지만 그 계산기들은 하드웨어 설계시 디자인된 특정 목적의 계산 밖에 수행할 수가 없었습니다. ENIAC은 사칙연산 기능이 있었고 데이터들에 대해 어떻게 사칙 연산을 수행할 수 있는지를 필요에 따라 바꿀 수 있는 "프로그램"을 통해 결정할 수 있다는 의미에서 최초의 범용 전자식 계산기라는 의미를 갖게 된 것입니다. 아울러 프로그램과 데이터가 메모리상에서 구별이 없는 폰노이만 구조의 최초 구현 중 하나이기도 하며, 제공하는 연산 기능의 범용성이 튜링 컴플릿(Turing-completeness)을 만족하여 이론상 현재 존재하는 컴퓨터가 할 수 있는 모든 일을 할 수 있는 컴퓨터였습니다 (이론상입니다. 실제 메모리, 성능 등의 제약으로 인해 비교 자체가 불가능합니다).
Soviet Water Integrator
기계식 컴퓨터는 그 형태가 매우 다양합니다. 1930년대 소련에서는 복잡한 미분방정식을 "대충" 풀기 위해 물을 이용한 컴퓨터가 있었다고 합니다. 간단히 설명하면 다양한 굵기의 파이프로 연결된 물통들 사이에서 물을 풀고자 하는 방정식에 따라 이리저리 움직여서 최종적으로 결과 물탱크에 들어있는 물의 양을 통해 답을 얻어내는 방식입니다. 이른바 "아날로그(analog)" 컴퓨터입니다.
1960년대 Monroe Calculator
최초의 기계식 컴퓨터는 언제 누가 만들었을까요? ENIAC이 최초의 컴퓨터다라고 말뚝 박는 불성실한 설명 보다 좀 더 친절한 책들은 찰스 바베지(Charles Babbage)가 19세기 초에 고안한 Difference engine이 최초의 기계식 계산기라고 말하는 경우가 많습니다. 확실히 근대화되고 복잡한 기계식 계산기를 처음 세상에 소개한 것은 맞습니다만 그 전에도 기계식 계산기는 계속해서 진화 중이었다는 사실은 많이 알려져있지 않습니다.
그렇다면 진짜 최초의 기계식 컴퓨터는 누가 만들었을까요? 정답은 "아무도 모른다"입니다. 사실 제가 최근에 발견한 바로 이 기계에서 오늘의 글을 쓰고자 하는 동기가 시작되었습니다.
Antikythera Mechanism
1901년 그리스의 Antikythera 섬 근처에서 해면을 채취하기 위해 잠수한 잠수부들이 좌초된 고대의 배를 발견합니다. 그 안에서 여러 종류의 유물들이 출토되었는데 그 중 공돌이들(OTL...)에게 가장 중요한 의미를 갖는 유물은 바로 위의 사진에서 보여지는 앤티키시에라 메커니즘(Antikythera Mechanism)이 되겠습니다. 앤티키시에라 메커니즘이 처음 발견되었을 때에는 다른 유물들의 시대와 맞지 않는 복잡성과 이질적인 모습으로 그 원리와 목적을 제대로 이해하지 못하였고 1910년대에 들어서야 천천히 밝혀지게 되었습니다.
Schematic of Antikythera Mechanism
앤티키시에라 메커니즘은 BC 150년 경에 만들어진 것으로 판명 되었습니다. 놀라운 사실은 고대의 기술임에도 불구하고 천체의 움직임을 날짜에 따라 계산하는 복잡한 기능을 37개의 기어를 통해 구현하고 있다는 것이며 그 정확도가 매우 높다는 것입니다. 또한, 기계를 구성하는 37개 기어의 구성 방식의 복잡도 뿐만 아니라, 크고 작은 기어를 세밀하게 가공하는 기술이 18세기 수준의 기술이었다는 것이지요. 실제로 이와 유사한 계산 장치가 BC 1세기 이후 다시 역사에 등장하는 것은 천년이 훨씬 넘게 지나서야 이루어집니다.
앤티키시에라 메커니즘은 이후 여러 과학자들에게 매력적인 연구 대상이 되었습니다.
많은 과학자들이 X-Ray, 컴퓨터 분석 등 당대의 최첨단 기술을 사용해서 이 장치에 대해 많은 연구를 진행해왔습니다. 발견된지 거의 100년이 다 되어가는 지금도 계속해서 새로운 사실들이 발견되고 있으며 2006년, 2008년 각각 발견된 사실들이 Nature에 논문으로 발표될 정도로 앤티키시에라 메커니즘은 역사적으로, 공학적으로 놀라운 비밀을 잔뜩 포함하고 있습니다.
아테네 국립박물관 복원품
그렇다면 다시 본론으로 돌아가서, 인류 최초의 컴퓨터는 앤티키시에라 메커니즘도 아니라는 결론을 얻을 수 있습니다. 과연, "계산"을 자동화하기 위한 최초의 기계는 무엇이었을까요?
혹자는 주판을 인류 최초의 계산기라 말하지만 저는 그 주장에는 동의하지 않습니다. 주판은 산가지와 같이 계산을 돕는 장치일 뿐 계산을 하는 장치는 아닙니다. 컴퓨터는 계산의 원리나 방법을 전혀 모르고도 입력을 넣으면 답을 얻을 수 있는 장치여야 할 것입니다. 그런 의미에서 앤티키시에라 메커니즘은 진정 컴퓨터였으며, 인류 최초의 컴퓨터는 앤티키시에라 메커니즘의 개발자가 참고로 했던 어떠한 기계가 아니었을까 하는 생각이 듭니다.
찬란했던 고대의 기술을 생각한다면 인류는 약 1800년의 시간을 들여서 "Reinventing the wheel"을 하고 있었던 것입니다. 엄청난 기세로 빠르게 발전하는 지금의 기술 역시 어쩌면 짧지 않은 미래에 갑자기 사라지게 되고 다시 수천년이 지나서야 후손이 "Intel"이라고 써있는 프라스틱과 금속의 작은 덩어리를 발견하고 놀라워하지 않을까요?



댓글을 달아 주세요
멋지군
내 학위논문의 첫 챕터 이름이
History of Magnetic recording 이지.
의도적으로 본문 중에 엘비스 프레슬리도 넣고 그랬다.