3. 상업용 컴퓨터 시대


컴퓨터는 2차 대전 중에 본격적으로 개발되었고, 주로 군사적 목적으로 사용되기 시작했다. 독일군의 암호 해독, 미사일의 탄도 거리 계산 등이 예이다.

초기 컴퓨터 개발에 참여한 엔지니어 중에서 일찍이 컴퓨터의 상업적 가능성을 미리 예측한 사람들도 있었다.

에니악(ENIAC)과 에드박(EDVAC)을 개발한 존 에커트와 존 모클리는 1947년 세계 최초로 에커트-모클리 컴퓨터 회사(EMCC: the Eckert-Mauchly Computer Corporation)라는 컴퓨터 제조 회사를 설립한다. 그리고, 에드박의 다음 버전인 유니박(UNIVAC)을 개발하여 미국 기상대에 납품한다.


회사는 이후 미육군, 공군, 해병대와 차례로 계약을 맺어 유니박을 공급하기로 예정되어 있었다. 하지만, 1950년 매카시즘 열풍이 이 회사를 덮쳤다. 몇몇 직원이 공산주의자로 의심 받으면서 모든 군과의 계약은 취소되고 말았다.


모클리는 강제로 회사를 떠나게 되는데, 다시 업무에 복귀하는데 2년이라는 시간이 걸렸다. 그 사이 회사는 자금이 바닥이 나고 결국 다른 회사에 팔리고 만다.

사실 폰노이만 구조에 대한 아이디어는 모클리가 시작했지만,  그 공은 폰노이만에게 돌아갔고, 사업 역시 정치적인 이유로 성공하지 못했다.

1950년대는 여러 회사에서 다양한 상업용 컴퓨터를 만들어지기 시작했다. 펀치 카드 시스템을 생산하고 있던 IBM도 1952년 IBM 701이라는 자사 최초의 컴퓨터를 발표한다.


특히, IBM은 포트란LISP을 1954년에 발표된 후속기종인 IBM 704를 위해 개발하였다.

1953년 IBM은 IBM 650이란 컴퓨터를 발표했는데, 처음으로 대량 생산된 컴퓨터이다. 이 컴퓨터는 프로그램을 저장하기 위해 자기 드럼을 사용했는데, 기존 드럼 기반의 저장 장치에 비해 빠른 접근 속도를 제공했다. 이 기종은 대학에서 인기가 많아서 당시 학생들이 프로그램을 배우는데도 사용되었다


컴퓨터 프로그래밍의 예술으로 널리 알려진 도널드 커누스 교수도 IBM650으로 처음 프로그래밍을 배웠다[2]. 이 처럼 1950년 대 부터 다양한 상업용 컴퓨터가 개발되기 시작했고, 소프트웨어 개발자도 생겨났다.

참고

더 읽을 글

2. 앨런 튜링과 폰노이만

img_0640
누가 지금과 같은 형태의 컴퓨터를 처음 만들었을까? 컴퓨터는 세계 2차 대전 이후, 여러 나라에서 개발을 시도했지만, 처음으로 이론적 모델을 제시한 사람은 영국의 수학자 앨런 튜링이다.

그는 1937년에 발표한 “On Computable Numbers, with an Application to the Entscheidungsproblem“논문에서 튜링 기계(Turing Machine)을 소개하였다. 이는 표에 정의된 각 기호의 규칙대로 긴 테이프에 적힌 기호를 처리하는 추상 장치였는데, 컴퓨터에 대한 수학적 모델을 정의한 것이다[1]. 여기서 튜링 머신에 입력되는 기호가 적인 테이프를 소프트웨어라고 볼 수 있다.

img_0628

이후 앨런 튜링은 세계 2차대전 동안, 독일 암호문을 해독하는 Bombe라는 장치를 만들어 연합군 승리에 큰 기여를 한다[2]. 이처럼, 2차 대전 기간에 만들어진 컴퓨터는 특정 목적에서만 사용되었으나, 전쟁이 끝나갈 무렵 미국에서는 다용도 컴퓨터인 에니악(ENIAC)을 만들기 시작했다. 에니악은 펜실베니아 대학 존 에커트와 존 모클리 교수팀이  1943년 부터 개발을 시작하여 1946년에 완성하였다. 이후, 미군에 배치되어 미사일 탄도 계산을 위해 사용되었다. 프로그래밍 방식이 지금과 아주 다른데, 일일히 배선을 연결해서 코딩을 해야 했고, 다른 프로그램을 실행하려면 배선판을 바꿔야 했다. 게다가 무게는 30톤이였으며, 18000개의 진공관을 사용했기 때문에 200KW의 전기를 소모해야만 했다[3].

이후, 에니악을 만들었던 팀은 1944년 부터 세계 최초로 프로그램 내장 방식인 에드박(EDVAC) 개발 시작하여 1949년 미군 탄도 연구소(ballastics research laboratory)에 납품한다. 폰 노이만은 컨설턴트로 개발에 참여하여 1945년 First Draft of a Report on the EDVAC 보고서를 작성하는데, 여기서 같은 메모리에 프로그램과 데이터가 저장되는 컴퓨터 구조를 제안한다.

지금도 모든 컴퓨터는 이와 같은 컴퓨터 구조를 사용하고 있고, 이를 폰노이만 구조라고 부른다.

그림에서 볼 수 있듯이,  폰노이만 구조는 크게 CPU, 메모리, 입출력 장치로 구성되어 있으며, CPU안에는 산술/논리장치, 프로세서 레지스터를 포함하고 있는 처리 장치(Processing Unit)와 명령어 레지스터와 프로그램 카운터를 포함하는 제어장치로 구성된다. 메모리는 데이터와 명령어를 함께 저장할 수 있다.

영국은 뒤늦게 미국에서 만든 에드박과 폰노이만이 작성한 보고서에 관해 알게 되었다.


그리고, 앨런 튜링에게 에드박과 같은 프로그램 내장 방식의 컴퓨터 개발을 주문했다. 알랜 튜링은 1945년 부터 국립 물리학 연구소에서 ACE(Automatic Computing Engine)라는 프로그램 내장형 컴퓨터를 개발하면서 자신이 생각한 튜링 머신을 실제 구현해볼 수 있는 기회를 갖게 되었다.
img_0634
1946년 공개된 그의 논문을 보면 비록 폰노이만의 에드박 보고서 보다 늦게 작성되었지만, 프로그램 내장 방식 컴퓨터에 대한 자세한 설계가 담겨져 있다. 게다가 하드웨어는 최소한으로 구성하고 산술명령 조차 소프트웨어로 구현하도록 설계되어 있어 오늘날 RISC 방식의 CPU와 같은 설계 철학을 갖고 있었다.하지만,  예산 집행이 늦어져서  1947년 케임브리지 대학으로 돌아왔다[4].
img_0635
결국, 케임브리지대학 수학 연구소는 앨런 튜링은 설계한 방식 보다 이미 검증된 폰노이만 방식으로 에드삭(EDSAC)이라는 컴퓨터를 개발하고 1949년 처음 사용하게 된다.


실제 내장형 컴퓨터에 대한 아이디어와 설계는 앨런 튜링은 앞섰지만, 실제 구현은 미국이 주도하게 된 것이다. 사실, 앨런 튜링은 1937년 폰노이만 지도 아래 박사 과정을 마쳤기 때문에, 아마도 폰노이만이 앨런 튜링으로 부터 많은 아이디어를 얻었을 것으로 추정하고 있다. 하지만, 폰노이만은 자신의 보고서에 그런 사실을 언급하지 않았다.

사실, 영국은 세계 2차 대전 중에 독일 군 암호 해독을 위해 먼저 에니악과 같은 범용 컴퓨터를 만들었으나 기밀 보호를 위해 전쟁이 끝난 후, 모든 폐기처분 하여 그 기술을 잘 발전시키지 못했다. 독일도 마찬가지로 2차 대전 중에 컴퓨터를 만들었지만, 전쟁에 졌기 때문에 계속 연구를 지속할 수 없었다.

하지만, 미국은 폰노이만 같은 이민자들이 초기 컴퓨터 개발에 많은 공헌을 하였고, 컴퓨터를 상업적으로 계속 발전시켜 컴퓨터 시대를 먼저 열게 되었다.

1. 찰스 배비지와 에이다 러브레이스


인류는 수학 계산을 좀 더 편리하고 정확하게 하기 위해 여러가지 도구를 만들었다. 그 중 주판은 여러 고대 문명에서 사용되었다.

우리나라에는 1400년대경에 중국에서 주판이 전래되었고  1980년대까지 개인은 물론이고 은행에서도 주판을 사용하였다. 그 후, 컴퓨터가 보급되면서 거의 자취를 감추었다.

img_0610
서양에서는 17세기에 파스칼라이프니츠가 톱니 바퀴 등을 이용해서 기계적 계산기를 만들었다.

1822년 영국의 수학자 찰스 배비지는 기계식 방식으로 우리가 지금 사용하는 컴퓨터와 같이 기억, 연산, 입출력 장치로 구성된 차분 기관(difference engine)을 설계하였다.

1815년 영국의 대표적인 낭만 시인인 조지 고든 바이런의 딸로 태어난 에이다 러브레이스는 아버지가 일찍이 가족을 버린탓에 홀어머니 밑에서 자랐다. 어머니는 딸이 아버지를 닮을지도 모른다는 불안감에 에이다에게 문학 대신 수학과 과학을 배우도록 하였다.

 

당시 유명한 과학자들이 에이다를 가르쳤고, 그 중에는 드모르간의 법칙으로 유명한 수학자 드모로그간도 있었다. 그 결과, 드모르간이 인정할 정도로 수학에 큰 재능을 보인다.

17살이 된 에이다는 우연한 기회에 찰스 배비지가 만든 차분기관을 보게 된다.

그녀가 차분 기관을 설명할 목적으로 베르누이 수를 구하는 알고리즘을 만들었는데, 이를 최초의 컴퓨터 프로그램으로 평가하고 있다.

당시 에이다는 자신이 만든 알고리즘에서 현대 프로그래밍 언어에서 사용되는 중요한 개념인 루프, Goto, 제어문의 개념을 처음으로 소개하였다. 이런 공로로 그녀에게 세계 최초의 프로그래머라고 부르기도 한다. 또한, 그녀의 이름을 딴 에이다라는 프로그래밍 언어도 존재한다.

img_0619
하지만, 찰스 배비지는 기술적 한계로 차분기관을 완성하지는 못했고, 에이다도 자신이 만든 알고리즘을 한 번도 실행시켜보지 못했다.

1989년 부터 1991년 동안 찰스 배비지가 남긴 설계도를 기반으로 실제 차분기관 2호를 완성시켰는데, 놀랍게도 31개 자리수를 계산할 수 있었다.

참고