인류의 삶을 바꾼 위대한 기계 - 컴퓨터(Computer)
요즘 기준으로 컴퓨터(Computer)라는 단어는 전자회로를 이용해 다양한 종류의 데이터를 처리하는 기기를 일컫는다. 하지만 폭넓은 의미에서 보면 컴퓨터는 전자회로의 유무와 관계 없이 계산을 할 수 있는 기기 전반을 가리킨다. 컴퓨터라는 단어는 ‘계산하다’ 라는 뜻을 가진 라틴어인 ‘Computare’에서 유래되었기 때문이다.
100년 전 까지만 해도 컴퓨터는 전자 기기가 아닌 '주판'이나 '계산자(계산척)'과 같은 전통적인 '계산도구', 혹은 '계산을 하는 사람'을 뜻했다. 20세기 중반부터 전자식 자동 계산기에 대한 연구가 활발하게 이루어지고, 디지털 데이터의 입력과 출력, 그리고 연산 및 저장 방식에 대한 원리가 확립되면서, 비로소 컴퓨터는 오늘날의 의미로 쓰이게 된다.
초기의 컴퓨터, 주판에서 기계식 계산기까지
인류 역사상 최초의 컴퓨터(계산기)라고 할 수 있는 주판은 기원전 2400년경에 바빌로니아에서 원시적인 형태의 것이 개발된 이후, 기원전 200년경에 중국에서 개량을 거쳐 거의 2000년 이상 쓰였다. 하지만 주판은 사용방법을 익히는데 시간이 걸리고, 계산 과정의 상당 부분을 여전히 사람의 머리에 의존해야 했다.
자동으로 계산을 할 수 있는 최초의 계산도구는 17세기부터 본격적으로 개발되었다. 대표적인 것이 1623년에 독일의 빌헬름 시카드(Wilhelm Schickard)가 처음 발표한 기계식 계산기다. 기계식 계산기는 톱니나 피스톤과 같은 기계 부품으로 구성되었는데, 이를 사람이나 태엽의 힘으로 돌리면서 계산할 수 있었다. 다만, 이는 물리적으로 맞물린 기계 부품으로 구성된 탓에 구조가 복잡하고 고장이 잦아 관리가 어려웠으며, 복잡한 계산을 할수록 뻑뻑해져서 구동이 잘 되지 않았다는 단점이 있었다.
전자식 계산기를 개발하기 위한 노력
이러한 기계식 계산기의 단점을 극복한 전자식 계산기, 즉 근대적인 의미의 컴퓨터는 19세기부터 고안되기 시작했다. 1822년에 영국의 찰스 배비지(Charles Babbage)가 기계식 디지털 계산기인 ‘차분기관(difference engine)’을 발표했는데, 배비지의 차분기관은 기존의 기계식 계산기와 달리 로그 함수와 삼각 함수의 계산이 가능했다. 차분기관은 핸들을 돌려 작동했지만, 천공 카드(일정한 패턴의 구멍을 뚫어 데이터를 기록하는 종이 카드)를 이용해 디지털 데이터(0과 1)를 기록할 수 있다는 점이 오늘날의 컴퓨터와 유사한 점이다.
1904년에는 영국의 존 플래밍(John Ambrose Fleming)이 진공 상태에서 전자의 흐름을 조절해 신호의 변경과 증폭을 가능케 하는 장치인 ‘진공관(vacuum tube)’을 개발했으며, 1936년에 영국의 앨런 튜링(Alan Turing)이 입력과 연산, 그리고 출력과 기억을 연속적으로 할 수 있는 ‘튜링 기계(Turing Machine)’의 개념을 정의한 논문을 발표했다. 진공관의 개발과 튜링 기계의 발표로 인해 근대적인 컴퓨터의 핵심 부품 및 기본 동작원리가 확립되었다.
1939년, 최초의 전자식 컴퓨터가 등장하다
그리고 1939년, 미국 아이오와 주립대학의 존 아타나소프(John Vincent Atanasoff)와 그의 조수였던 클리포드 베리(Clifford Berry)는 ‘아타나소프 베리 컴퓨터(Atanasoff-Berry Computer)’라는 세계 최초의 완전한 전자식 컴퓨터를 발표했다. 약자인 ‘ABC’로 더 많이 불린 이 컴퓨터는 1939년에 시험모델이 제작되어 최초 가동 실험을 했으며, 1942년에 완성품이 발표되었다.
ABC는 280개의 진공관과 1.6km 이상의 케이블로 구성되어 있었으며, 무게는 320kg 정도였다. ABC는 디지털(2진수) 방식의 데이터를 사용하며, 기계적인 장치(톱니 등) 없이 완전한 전자식으로 연산을 했다. 그 외에 연산부(프로세서)와 저장부(메모리)가 분리되어 있는 등, 현재 사용하는 컴퓨터와 유사한 점이 많았다. 하지만 실험적인 의미가 강했기 때문에 실용성은 없었다.
그리고 1944년, 영국에서는 튜링이 고안하고 영국 체신청의 기술자인 토미 플라워스(Tommy Flowers)가 설계한 ‘콜로서스(Colossus)’라는 전자식 컴퓨터가 개발되었다. 하지만 콜로서스의 존재 자체가 극비라서 외부에는 거의 알려지지 않았다. 그 이유는 콜로서스가 군사용으로 쓰였기 때문이다. 콜로서스는 2차 세계대전 중에 독일군의 암호를 해독하는 작업에 주로 쓰였고, 많은 성과를 올렸다고 한다. 때문에 콜로서스를 세계 최초의 ‘실용화된’ 컴퓨터로 분류하기도 한다.
30톤짜리 괴물 컴퓨터, ‘에니악’
그리고 1946년에는 미국 펜실베니아 대학의 존 에커트(John Presper Eckert)와 존 모클리(John William Mauchly)가 당시로서는 최고의 성능을 자랑하던 컴퓨터 ‘에니악(ENIAC: Electronic Numerical Integrator and Computer)’을 발표해 화제가 되었다. 에니악은 초당 5,000번 이상의 계산을 하는 등, 이전까지 사용하던 컴퓨터보다 1,000배 이상 높은 성능을 발휘했다.
다만, 이러한 성능을 발휘하기 위해 에니악은 17,000개 이상의 진공관과 70,000개 이상의 저항기로 구성되었으며, 총 무게가 30톤에 이르렀다. 게다가 고장도 잦아서 매주 2~3번씩 진공관을 교체해야 했으며 전력 소모도 150킬로와트(kW)에 달했다. 하지만 미국 국방부는 에니악의 높은 성능에 주목, 탄도 계산, 날씨 예측, 원자폭탄 개발 등 다양한 용도로 활용했다. 에니악의 등장은 당시 큰 화제가 되었기에 한때는 에니악이 세계 최초의 컴퓨터로 알려지기도 했다. 하지만 이후 법정 공방 끝에 에니악이 아닌 ABC가 세계 최초의 컴퓨터로 인정받게 된다.
폰 노이만, 근대 컴퓨터의 개념을 세우다
에니악을 비롯한 당시의 컴퓨터는 새로운 작업을 할 때마다 회로 및 기억장치를 바꿔 끼워야 하는 불편함이 있었다. 하지만 1945년에 헝가리 출신의 미국 수학자인 존 폰 노이만(John von Neumann)은 컴퓨터 내부의 기억장치에 소프트웨어 방식의 프로그램을 내장, 소프트웨어만 바꾸면 여러 가지 작업에 대응할 수 있는 프로그램 내장 방식 컴퓨터의 개념을 발표했다.
그리고 1949년에는 이를 실용화한 최초의 컴퓨터 ‘에드삭(EDSAC: Electronic Delay Storage Automatic Calculator)’이 등장했으며, 몇 개월 후에 에드삭의 개량형인 ‘에드박(EDVAC: Electronic Discrete Variable Automatic Computer)’도 발표되었다. 에드삭과 에드박에서 쓰인, 이른바 ‘폰 노이만 구조’는 현재 쓰이는 대부분의 컴퓨터에도 적용되고 있다.
컴퓨터의 상업화와 대중화
ABC와 에니악의 등장, 그리고 폰 노이만형 컴퓨터의 개발로 인해 실용적인 컴퓨터의 기본 개념은 거의 확립되었다. 이에 따라 1950년대부터는 이를 직접 민간 부문에 판매하고자 하는 경쟁, 즉 컴퓨터의 상용화가 시작되었다. 최초의 상용 컴퓨터는 1950년에 완성되어 이듬해부터 출시를 시작한 레밍턴 랜드(Remington Rand)사의 ‘유니박(UNIVAC: Universal Automatic Computer) I’이다. 유니박 I는 대당 16만 달러에 판매되었다.
유니박 I 이후에도 여러 상용 컴퓨터가 등장했지만, 여전히 대부분의 컴퓨터는 가격이 너무 비싼데다 덩치도 커서 여전히 정부기관이나 기업에서만 쓰였다. 하지만 1977년, 미국의 애플(Apple)사에서 ‘애플 II’라는 소형 컴퓨터를 출시하며, 컴퓨터의 대중화 시대가 열렸다. 애플 II는 크기가 작고 사용법도 간편했으며, 가격도 1,300달러 근처로 싼 편이라 사람들에게 큰 인기를 끌었다.
‘PC’의 등장
그리고 현재 일반적으로 가장 많이 사용하는 PC(Personal Computer: 개인용 컴퓨터)의 규격은 1981년, 미국 IBM사에서 ‘IBM 퍼스널 컴퓨터(Personal Computer) 5150’를 출시하며 정착되었다. IBM PC는 비교적 값이 싸고 쉽게 구할 수 있는 부품으로 구성되었으며, 내부 구조 역시 완전히 공개함으로써 IBM 외의 다른 회사, 혹은 개인이 직접 IBM PC와 호환되는 기종을 만들 수 있었다.
이런 특징을 바탕으로 IBM PC 및 그 호환 기종들은 이전에 나온 애플 II를 완전히 밀어내고 개인용 컴퓨터의 대명사가 될 수 있었다. 현재 사용하는 PC들도 기본적인 아키텍처(Architecture: 시스템 전반의 구조 및 설계방식)는 여전히 IBM PC 호환 규격을 따르고 있다.
컴퓨터의 기본적인 구성
현재 사용하는 컴퓨터는 성능 면에서 초기의 컴퓨터와 비교할 수 없을 정도로 발전했지만, 1945년에 제창된 폰 노이만 구조에 기반해 데이터 처리를 한다는 점은 변하지 않았다. 이는 PC나 서버, 워크스테이션 같은 일반적인 컴퓨터는 물론, 비디오 게임기나 휴대폰, MP3 플레이어 등과 같이 컴퓨터에 준하는 기능을 가진 기기 역시 마찬가지다.
모든 컴퓨터는 직접 손으로 만질 수 있는 하드웨어(Hardware), 그리고 물리적으론 존재하지 않지만 컴퓨터를 이용하기 이용 하기 위해선 꼭 필요한 프로그램 및 관련 데이터를 가리키는 소프트웨어(Software)로 구성되어있다. 각각의 대략적인 구성과 특징은 다음과 같다.
(1)하드웨어
중앙처리장치 (central processing unit, CPU)
: 입력장치 및 기억장치로부터 데이터를 받아 이를 분석/처리하는 역할을 하며, 흔히들 CPU라고 줄여 부른다. 컴퓨터의 두뇌에 해당하는 핵심 부품이며, 컴퓨터 전반의 성능을 크게 좌우한다. 그리고 컴퓨터의 구성품 중에 가격이 가장 비싼 경우가 많다.
주기억장치 (main memory unit)
: 중앙처리장치가 처리할 데이터를 보관해 두는 장치다. 반도체를 사용하는 경우가 많으며, 한 번 데이터를 기록하면 전원이 꺼져도 데이터가 남아 있는 롬(ROM)과 자유롭게 데이터를 쓰거나 지울 수 있지만 전원이 꺼지면 모든 데이터가 사라지는 램(RAM)이 있다. 특수한 목적의 컴퓨터가 아니라면 대부분 램을 사용한다.
보조기억장치 (secondary memory unit)
: 주기억장치로 주로 사용하는 램은 데이터 처리 속도가 빠르지만, 전원이 꺼지면 데이터가 지워지는데다 용량도 적은 편이다. 보조기억장치는 이러한 주기억장치를 보완하는 역할을 한다. 보조기억장치는 속도가 느린 편이지만, 전원이 꺼져도 데이터를 안전하게 보관할 수 있으며 용량도 크다. 하드 디스크나 CD-ROM, USB 메모리 등이 대표적이다.
입력장치 (input device)
: 컴퓨터를 활용하기 위해 각종 자료나 명령어를 입력할 때 쓰는 장치를 일컫는다. 키보드나 마우스, 태블릿, 조이스틱 등이 대표적이며, 최근에는 디지털카메라나 스캐너, 마이크 등도 쓰이고 있는 추세다. 그 외에 입력과 출력을 겸하는 터치 스크린 같은 장치도 존재한다.
출력장치 (output device)
: CPU에서 처리한 정보를 실체화하여 사용자에게 전달하는 역할을 하는 장치다. 모니터가 대표적인 출력장치이며, 그 외에 프린터나 스피커 등도 많이 쓰인다.
(2)소프트웨어
운영체제 (operating system)
: 컴퓨터 시스템의 전반을 관리하는 가장 중요한 소프트웨어다. '운영체계'라 하기도 한다. 컴퓨터를 구성하는 모든 하드웨어 및 응용 소프트웨어는 운영체제를 통해서 역할을 수행하게 되므로 운영체제의 성격에 따라 컴퓨터 전반의 성능 및 기능, 호환성이 달라지기도 한다. PC용 운영체제의 경우, 마이크로소프트의 윈도(Windows) 시리즈가 대표적이다.
응용 소프트웨어 (Application software)
: 응용 프로그램, 애플리케이션이라고도 하며, 넓게 보면 운영체제를 제외한 모든 소프트웨어를 칭하는 말이다. 워드프로세서나 스프레드시트와 같은 사무용 소프트웨어, 게임이나 동영상 플레이어 같은 멀티미디어 소프트웨어 등 종류가 무척 다양하다. 일부의 경우를 제외하면 대부분의 응용 소프트웨어는 특정 운영체제에서만 구동되도록 설계된 경우가 많다.
글 / IT동아 김영우(pengo@itdonga.com)