니힐로그 로고

개발을 위한 프로그래밍 지식 1편 - 컴퓨터의 역사

분류포스트

작성일2021-05-03 08:30

수정일2021-10-30 14:28

카테고리

태그

개발을 위한 프로그래밍 지식 1편 - 컴퓨터의 역사

개발을 위한 프로그래밍 지식시리즈는 프로그래밍 공부를 하기에 앞서 알아서 나쁠 것 없는 정보들을 먼저 접하는 것으로부터 구상했습니다. 컴퓨터와 프로그래밍의 역사를 들여다보고 인터넷과 웹의 역사를 들여다보는 것이 목적입니다. 시리즈의 포스트를 모아둔 글은 이 링크로 넘어가시면 됩니다.

이번 글은 개발을 위한 프로그래밍 지식 1편으로, 이번 글에서는 간단하게 컴퓨터의 역사에 대해서 알아보려고 합니다. 컴퓨터의 역사를 알아보는 이유는 프로그램과 프로그래밍 언어와 밀접한 관계가 있기 때문입니다. 오늘날의 인류는 컴퓨터와 떼려야 뗄 수 없는 관계에 있고 개발자가 되려면 더더욱 그럴 겁니다. 그러니 프로그래밍 언어의 이야기를 하기에 앞서 컴퓨터에 대한 이야기를 한 번 해보도록 합시다.

다만, 시작하기에 앞서 미리 전해둘 것은 대략적으로 알아보는 것이기 때문에 심도 있게 들어가는 것은 아니라는 것입니다.

컴퓨터의 역사

우리는 보통 컴퓨터라고 하면 게임을 하거나 웹 서핑을 할 수 있는 일반적이고 보편적인 PC를 생각할 겁니다. 저도 그렇고 여러분들도 아마 그럴 겁니다. 그런데, 컴퓨터는 사실 계산장치입니다. 컴퓨터라고 하는 단어도 계산하다라는 의미의 라틴어인 Computare에서 왔다고 하기도 합니다. 그렇게 멀리가지 않아도 영단어인 Compute도 계산하다 라는 의미를 가졌습니다.

어원에서 알 수 있듯이 컴퓨터는 연산을 돕는 도구로부터 그 발상이 시작됐다고 할 수 있겠습니다. 말 그대로 컴퓨터는 인간이 하기 어려운 계산을 편하게 하기 위한 기계인 것입니다. 오늘날처럼 거창한 기능이 탑재된 것은 비교적 역사가 짧습니다. 그 이전에는 컴퓨터는 순수하게 계산을 위한 도구였습니다.

16세기 이전의 컴퓨터

오늘날의 컴퓨터의 이미지가 너무 강렬해서 주판을 컴퓨터라고 하면 미친놈 소리를 듣겠죠? 그런데 진짜로 컴퓨터의 이전에 인간의 계산을 돕는 도구는 바로 주판이었습니다. 오늘날의 GUI까지는 아니지만 직관적으로 수량을 표현할 수 있어서 계산을 편하게 만들어주는 주판은 고대의 메소포타미아 문명에서 처음 사용되었다고 전해집니다. 이 주판의 존재로 인해서 사람은 계산을 엄청 편하게 할 수 있었습니다.

주판 / 출처 위키백과
주판 / 출처 위키백과
크게 보기 (새 창)

이 주판도 하나 하나 계산하는 게 불편해서 하나의 도구로 계산을 편하게 하기 위해 고안되었겠죠. 인간은 언제나 불편하면 편리함을 추구하려고 하는 특성이 있습니다. 인류의 문명이 발전해온 이유와 앞으로도 발전할 수 있는 이유는 바로 이 편리함을 추구하기 때문입니다. 아무튼, 주판은 Compute에 걸맞는 기능을 가진 녀석이죠.

하지만 이 이후, 16세기까지는 별다른 계산을 돕는 도구는 나타나지 않았습니다.

17세기, 기계식 계산기의 등장

블레즈 파스칼 / 출처 위키백과
블레즈 파스칼 / 출처 위키백과
크게 보기 (새 창)
파스칼라인 / 출처 위키백과
파스칼라인 / 출처 위키백과
크게 보기 (새 창)

1642년, 프랑스의 블레즈 파스칼은 10진수의 덧셈과 뺄셈을 수행할 수 있는 기계식 계산기를 만들어냈습니다. 이 계산기는 자신의 아버지가 좀 더 편한 환경에서 업무를 봤으면 하는 배경에서 만들게 되었다고 전해집니다. 이 계산기의 이름은 파스칼라인이었습니다.

고트프리트 빌헬름 라이프니츠 / 출처 위키백과
고트프리트 빌헬름 라이프니츠 / 출처 위키백과
크게 보기 (새 창)

1672년에는 고트프리트 빌헬름 라이프니츠라는 사람이 파스칼이 만든 기계식 계산기를 개선하여 나눗셈과 곱셈을 가능하게 만들었습니다. 이진법이라는 것도 라이프니츠가 만들어냈습니다.

이진법은 0과 1만으로 모든 숫자를 표현하는 방법입니다. 이 이진법은 오늘날에도 널리 사용되고 있습니다. 특히나 기계적인 부분에 말이죠.

19세기, 찰스 배비지와 해석 기관

찰스 배비지 / 출처 위키백과
찰스 배비지 / 출처 위키백과
크게 보기 (새 창)

영국의 수학자이자 철학자였던 찰스 배비지는 굉장히 선구적인 눈을 갖고 있었습니다. 1822년에 그는 로그함수, 다항함수, 삼각함수를 계산할 수 있는 기계식 계산기를 고안했습니다. 차분 기관이라고 불렀던 이 기계는 당시 기술로 만들기엔 돈이 너무 많이 들어서 1855년에야 만들어졌다고 합니다.

차분 기관 / 출처 위키백과
차분 기관 / 출처 위키백과
크게 보기 (새 창)

1835년에는 차분 기관이 만들어지기도 전인 그 시기에 차분 기관을 좀 더 업그레이드시킨 해석 기관을 고안하기도 했습니다. 찰스 배비지의 무서운 점은 이 해석 기관에 있습니다. 이 해석 기관은 수를 저장하고, 저장된 수를 계산할 수 있고, 기계를 제어할 수 있는 장치와 입출력까지 가능했는데, 정작 만들어지지는 못했습니다만 현대에 사용되는 컴퓨터에 전부 포함되어 있는 기능이었습니다.

학자들은 이 해석 기관을 최초의 프로그래밍이 가능한 컴퓨터로 인정하고 있다고 합니다. 찰스 배비지의 선구안이 돋보이는 순간이죠. 단순 이론 뿐이지만 이 이론은 시대를 넘어섰다고 할만합니다.

전쟁이 가져온 컴퓨터의 발전

전쟁을 할 때마다 인류는 발전해왔습니다. 다양한 기술들이 전쟁에 사용되기 위해 만들어지곤 하죠. 컴퓨터 또한 그렇게 발전하기 시작했습니다. 이 시기에는 다양한 연도에 다앙한 발전이 이루어져서 정확한 순서는 의미가 없습니다.

튜링 머신

앨런 튜링 / 출처 위키백과
앨런 튜링 / 출처 위키백과
크게 보기 (새 창)

튜링 기계라고도 하는 이 개념은 1936년에 영국의 수학자인 앨런 튜링이 고안해냈습니다. 알고리즘과 계산에 대한 혁신적인 이론을 만들어냈죠. 튜링 머신은 실제로 존재하는 기계는 아니었고 그저 이론이었습니다. 이 이론이 지금의 컴퓨터와 상당히 비슷하다는 점을 생각해볼때 앨런 튜링이라는 이 사람도 대단한 사람입니다.

훗날 이 이론은 실현됩니다.

콘라트 추제의 Z 시리즈

콘라트 추제 / 출처 위키백과
콘라트 추제 / 출처 위키백과
크게 보기 (새 창)

마징가Z 마냥 이름에 Z가 들어가는 컴퓨터가 있었습니다. 독일의 콘라트 추제라는 사람이 개발한 Z1과 Z3이라는 컴퓨터는 현대의 컴퓨터와 상당히 유사하다고 합니다. 특히나 Z3은 1941년에 만들어졌지만 워낙 마이너했기 때문에 알려져 있지 않았고, 그 존재가 나중에나 드러나게 되었습니다.

Z3은 앨런 튜링이 고안했던 튜링 기계의 실현이라고 할 수 있을 정도로 상당한 기능을 가졌던 컴퓨터라고 합니다. 실제로 본 적 없어서 모르겠지만요.

콜로서스

역사에 가려졌던 컴퓨터는 하나가 더 있었습니다. 바로 콜로서스라는 이름의 컴퓨터인데 이 컴퓨터가 알려져있지 않았던 이유는 국가 기밀이었기 때문입니다. 그래서 한참 나중에야 알려지게 되었습니다.

현재는 콜로서스가 최초의 프로그래밍이 가능했던 전자 컴퓨터라고 알려져 있습니다.

에니악

1946년에 존 에커트와 존 모클리에 의해 개발된 에니악은 상당한 크기를 자랑하는 컴퓨터였습니다. 에니악은 Electronic Numerical Integrator And Computer의 약자로 ENIAC이라고 표현합니다.

에니악 / 출처 위키백과
에니악 / 출처 위키백과
크게 보기 (새 창)

에니악은 어마어마한 연산이 가능했지만 그 기능과는 별개로 어마어마한 단점이 있었습니다. 상당하게 거대했고 프로그램을 바꿀 때엔 배선을 바꿔야했습니다. 부품의 교체가 필요했다는 것이죠. 이게 또 겁나게 많아서 어마어마한 시간을 잡아먹었다고 합니다. 게다가 어마어마하게 무거웠습니다. 컴퓨터 하나가 방 전체를 차지하는 것에 더불어 그 무게가 30톤이라면 믿겠습니까? 이렇게 비효율적인 에니악이었지만 기능 자체는 훌륭했고 전쟁에 쓰이게 됩니다.

위 두 컴퓨터가 알려져 있었더라면 에니악은 최초의 컴퓨터라는 수식어를 아주 잠깐이라도 가지지 못했을 겁니다. 이 말을 반대로 말하면 최근까지는 최초의 컴퓨터라고 알려져 있었다는 것이죠.

에니악은 기능은 훌륭했지만 단점은 많았기에 훗날 존 폰 노이만이라는 천재 과학자이 의해 개선됩니다. (라고 알려지게 됩니다.)

에드삭과 에드박

존 폰 노이만 / 출처 위키백과
존 폰 노이만 / 출처 위키백과
크게 보기 (새 창)

에니악의 단점은 프로그램을 바꿀 때에는 아주 긴 작업을 해야 했기 때문에 컴퓨터를 종료했어야 했다는 점이었습니다. 헝가리 출신으로 미국에서 수학자로 활동하고 있었던 존 폰 노이만은 이런 에니악의 단점을 커버하기 위한 어떤 이론을 제안했습니다. 바로 프로그램 내장 방식의 컴퓨터였죠.

어떠한 기억 장치를 마련해두고 이 안에 프로그램과 명령을 기억하는 것이었습니다. 상당히 효율적인 방식이었죠. 존 에커트와 존 모클리는 이 이론을 그대로 적용한 **에드박(EDVAC)**을 선보였습니다.

라고 하면 얕은 지식이고, 진실은 다릅니다. 존 에커트와 존 모클리는 이미 에니악을 만들었을 때부터 그 단점을 파악하고 있었고 그들 자신들이 이를 개선한 것이 에드박입니다. 세상에 폰 노이만 구조라고 알려진 프로그램 내장 방식은 사실상 두 사람의 아이디어인 것입니다. 이렇게 된 계기는 간단합니다.

에드박이 나오기 이전에, 허먼 골드스타인이라는 사람에게 연락을 받은 존 폰 노이만은 에드박에 대한 내용을 정리해서 골드스타인에게 전달했습니다. 하지만 골드스타인은 마치 존 폰 노이만이 프로그램 내장 방식을 제안한 것처럼 배포해버린 겁니다. 그래서 지금까지 폰 노이만 구조라고 불리죠.

아무튼 존 폰 노이만의 보고서에 대한 내용이 영국의 케임브리지 대학에까지 전달이 되어 그 곳에서 **에드삭(EDSAC)**이라는 컴퓨터가 개발되었습니다. 에드박 보다 먼저말이죠. 참 신기한 일이 아닐 수가 없습니다. 에드삭은 모리스 월크스라는 사람에 의해 만들어졌고 대학에서 바로 사용할 수 있는 소형 컴퓨터였다고 합니다.

근데 제가 보기엔.. 에드삭과 에드박은 에니악의 크기와 비교해서 별반 차이는 없는 것 같습니다. 뭐 아무튼 결과적으론 존 폰 노이만도 컴퓨터의 역사에 큰 이바지를 한 셈이죠.

유니박

유니박 / 출처 위키백과
유니박 / 출처 위키백과
크게 보기 (새 창)

에니악을 개발했던 존 에커트와 존 모클리는 회사를 하나 차리는데, EMCC라는 이름의 회사였습니다. 이들은 **바이낙(BINAC)**이라는 컴퓨터를 개발해서 판매하기 시작했습니다. 최초의 상업용 컴퓨터입니다. 그 기능은 좀 구렸는지 오작동이 있었나봅니다. 아무튼, 현대적 의미의 컴퓨터의 시작을 알렸던 그들은 상업용 컴퓨터의 시작도 알린 셈입니다.

EMCC는 1950년에 레밍턴 랜드라는 회사에 인수되고 두 사람은 1951년에 **유니박(UNIVAC)**이라는 컴퓨터를 만들게 됩니다. 에니악보다 훨씬 작은 사이즈에 작은 부품이 들어갔지만 그 기능은 에니악의 20배에 달했고 1952년부터 본격적인 판매가 시작됩니다. 군부터 시작해서 민간 기업에까지 판매를 하게 되죠.

유니박은 총 46대가 생산되었고 당시 가격이 150만 달러로까지 점프하면서 상당한 위용을 자랑했다고 합니다.


제가 아는 한, 컴퓨터의 역사적인 행보는 여기까지입니다. 이 이후의 컴퓨터들은 우리가 아는 현대의 컴퓨터들이죠. 이번 글에서는 간단하게 컴퓨터의 역사에 대해 들여다봤습니다. 다음 글에서는 이 컴퓨터라는 것 위에서 돌아가는 프로그램과 프로그래밍 언어에 대해 알아봅시다.


글을 읽고 혹은 읽으면서 하고 싶은 말이 있다면 아래의 덧글창에 적어주시면 됩니다. 최대한 빠르게 확인하고 답변을 드리겠습니다. 이 글을 보신 모든 분들의 하루가 좋은 하루이길 바랍니다.