d라이브러리









손톱크기의 '마법의 돌'에서 전개되는 엄청난 논리와 그 과정을 살펴본다

 

컴퓨터의 활용분야는 이제 모든 곳에서 쉽게 찾아 볼 수 있다. 가깝게는 우리에게 매달 배달되는 세금 고지서로 부터 멀게는 우주개발에 이르기까지 널리 활용되어 이제는 현사회에서 필수적인 기계의 하나로 등장케 되었다. 특히 산업혁명 다음 단계로 예상되는 정보혁명의 주역으로 등장케 될 것을 모두가 믿어 의심치 않는다.
 

이는 40여년 밖에 되지 않는 컴퓨터 역사에 비한다면 굉장한 발전인 것이다. 그러나 더욱 놀라운 사실은 우리가 처해있는 시점에서의 발전 속도는 급격한 발전의 초기 상태에 지나지 않고, 앞으로는 더욱더 빠르게 발전하리라는 것이다.
 

이러한 컴퓨터의 급격한 발전 속도와 함께 깊게 생각하여야 하는 또 한가지 중요한 사실은 컴퓨터라는 기계의 본질적인 특성이다. 이는 이제까지 특히 우리 나라에 번역된 '전자계산기'라는 단어가 의미하는 단순한 계산하는 기계에서 벗어나 지금까지 사람이 만든 다른 도구와는 달리 사람의 생각과 관련된 기호, 그리고 언어를 다루는 기계라는 점이다.
 

이와같은 컴퓨터를 보다 쉽게 이해할 수 있도록 우선 컴퓨터의 발전에 대해 간단히 알아보고 컴퓨터의 기본적인 구성에 대하여 소개한 후 마지막으로 컴퓨터의 활용의 예를 들어 보도록 하자.
 

현재 컴퓨터의 기본적인 원리를 이룬 것은 1946년 미국 펜실베니아대학의 '머클리'와 '에거트'에 의하여 만들어진 ENIAC(Electronic Numerical Intergrator and Calculator)이다. 이는 약 1만8천개의 진공관을 사용하여 만들 계산기로서 무게가 약30톤이나 되는 거대한 기계였다. 이의 프로그래밍을 위해서는 사람의 손으로 일일이 선과 플러그스위치를 조작해야 하는 불편이 있었다. 그러나 이것이 현재의 컴퓨터를 있게하는 초석이 된 것이다.

 

30톤이나 되는 거대한 덩어리로 시작
 

인간이 계산을 보다 편리하게 하고자 하는 노력은 기원전 중국으로 거슬러 올라간다. 이것이 현재까지 우리가 사용하는 주판의 시초인 것이다. 그후 유럽에서 1623년 독일의 '쉬크하드'에 의한 가산기, 1646년 프랑스의 '파스칼'에 의한 가감산기, 1671년 독일의 '라이프니쯔'에 의한 승제산기에 힘입어 가감승제가 가능한 기계식 계산기의 기틀이 마련되었다. 그러나 이를 이용한 계산기는 19세기 이후에 실용화 되었다. 19세기에 이르러 영국의 '바베지'는 수학계산을 자동으로 하기 위한 어낼러틱엔진(Analytic Engine)를 제안하였는데, 이는 자동계산기를 기억부(store part)와 연산부(arithmetic-logic unit part)로 나누었던 것이다. 당시의 기술로써 완성치 못하였으나 그 구조는 오늘날의 컴퓨터의 개발에 기여하였다. 또한 미국의 '홀러리드'는 국세조사에 천공카드 시스템(punched card system)을 도입하여 자료처리에 이바지하였다.
 

그후에도 연구는 계속되어 오늘날 전자식 디지탈 컴퓨터(Electronic digital computer)의 모체라 불리우는 전기기계식 컴퓨터(Electromechanical computer)를 출현시켰다. 이것으로서 1940년 미국 아이오와주립대학의 '아타나소프'와 '베리'에 의하여 만들어진 'ABC컴퓨터'와 1922년 IBM의 후원으로 미국 하버드대학의 '에어컨'에 의한 '하버드마크I이있다.
 

1945년 미국 펜실베니아대학의 '노이만'에 의해 완성된 '프로그램 내장방식(stored-program)'이라는 개념은 전자식 계산기의 발전을 더욱 가속화 시키는 결정적인 역할을 하였다. 이리하여 1951년 노이만에 의한 이러한 방식과 2진수를 최초로 사용한 컴퓨터인 EDVAC(Electronic Discrete Variable Computer)가 제작되었다. 이어 세계 최초로 상업용 컴퓨터인 UNIVAC I(Universal Automatic Computer I)에 '에거트'와 '머클리'에 의하여 제작되어 미국의 조사통계국에 설치된 후 오늘에 이르게 된 것이다.
 

이후 전자공업의 발달에 힘입어 컴퓨터 또한 발달하게 되었다. 그리하여 진공관을 사용한 컴퓨터를 제1세대 컴퓨터(1951~1954)라 하며, 진공관 대신 트랜지스터를 사용한 제2세대 컴퓨터(1955~1964)가 출현하였다. 그후 직접회로가 개발되어 이를 사용한 제3세대 컴퓨터(1965~1974)가 등장하게 되었으며, 고밀도 초직접회로(VLSI)가 제4세대 컴퓨터에 사용케 되었다. 최근에 와서 5세대 컴퓨터라는 용어가 사용되어 지기 시작하였는데, 이는 위와같은 컴퓨터의 소재뿐만 아니라 컴퓨터 자신의 능력을 발전시켜 인간과 같이 논리적인 추론이 가능토록 하기 위한 것이다.
 

위에서 설명한 컴퓨터 발전과정을 보다 이해하기 쉽도록 표현한 것이 <;그림1>; 이다. 단순히 기억할 수 있는 양만을 비교한다고 하더라도 초기 컴퓨터와 현재의 컴퓨터는 엄청난 차이를 보이고 있다.

 

(그림1) 컴퓨터의 외형 축소 비교
 

하드웨어, 소프트웨어란?
 

(그림2) 컴퓨터의 5대 구성 요소
 

일반적인 컴퓨터는 <;그림2>;와 같이 크게 5가지 장치로 이루어져 있다. 각각의 장치는 이를 구성하는 전자 또는 기계적인 요소 즉 하드웨어(Hardware)와 이들을 제어, 동작케하여주는 소프트웨어(Software)로 구성된다. 요근래에는 하드웨어와 소프트웨어의 구분이 확실하게 구문되지는 않으나 쉽게 예를 들어 설명하면, 우리 가정에 있는 VTR의 경우 그자체를 하드웨어라 한다면 영화가 들어있는 카세트를 소프트웨어라 할 수 있을 것이다. 따라서 어느것 하나만이 좋다고 하여 좋은 VTR이 될 수 없을 것이다. 즉 VTR기계 자체도 성능이 뛰어나야 하겠지만, 그 VTR에 맞는 좋은 영화를 담은 카세트가 많이 있어야 한다는 점이다. 또한 VTR를 선택함에 있어서 그 용도에 맞아야 하는 것이다. 즉 항상 재생만을 하는 경우에는 재생이 뛰어나 VTR이 필요하지, 녹음은 그렇게 중요한 요소가 되지 않는다. 위에서 설명한 바와 같이 컴퓨터에 있어서도 하드웨어와 소프트웨어가 잘 결합되어야 좋은 컴퓨터라 할 수 있으며 선택에 있어서도 그 이용에 중점을 두어야 하는 것이다.
 

다시 컴퓨터의 구성으로 돌아가서 각각의 장치에 대해 설명하도록 하자. 5개의 장치 중에 우선 입력장치는 컴퓨터에게 일을 수행할 수 있도록 프로그램이나 자료를 받아들이는 모든 장치를 일컽는다. 그의 예로서는 예비고사시 학생들이 작성한 OMR카드 입력장치나 우리가 흔히보는 타이프라이터와 같은 건반장치(key board)를 들 수 있다. 또한 머지 않은 장래에 사람의 음성을 입력으로 받아들일 수 있는 장치도 개발될 것이다. 입력장치를 사람에 비교한다며 오감을 느끼는 것, 즉 눈, 코, 귀, 혀와 피부라 할 수 있을 것이다.
 

다음으로 출력장치가 있는데, 이는 컴퓨터가 수행한 결과를 사람이 볼 수 있도록 하여 주는 장치이다. 우리가 일상 생활 속에서 받는 세금고지서를 인쇄하여 주는 프린터나 TV스크린과 같은 것이 그 대표적인 예이다. 이를 사람에 비교하면 음성을 발생시키는 입에 해당된다.
 

또한 3번째로 인간의 뇌에 해당되는 기억장치이다. 이는 프로그램이나 자료를 저장하여, 이를 수행시킬 수 있도록 하는 장치이다. 요사이 매스컴에 자주 등장하는 64K DRAM나 256K DRAM이 기억장치의 소재이다. '64K'라 함은 65536의 '0' 또는 '1'을 저장시켜 8K의 영문자를 기억시킬 수 있음을 의미하는 것이고, 'D'는 Dynamic의 약자로서 정보를 계속 기억토록 유지시키기 위하여는 주기적으로 충전(refresh)해야 한다는 것을 의미한다. 또한 RAM(Random Access Memory)이라는 것은 정보를 쓰거나 읽을 수 있음을 뜻하는 것으로서 이와 상반되는 것으로 읽을수만 있는 ROM(Read Only Memory)이있다.
 

4번째로 연산장치가 있다. 이는 컴퓨터에 가장 핵심적인 장치로 자료의 사칙연산과 비교 등을 수행하는 부분이다. 즉 어떤 일을 수행하기 위하여는 프로그램이 지시하는 대로 자료를 가지고 이 연산장치에서 순차적으로 수행케 되는 것이다.
 

마지막으로 제어장치를 들 수 있다. 이는 사람에 있어서 중추신경과 같은 것으로서 위에서 설명한 4가지 장치를 그때 상황에 따라 제어하는 역할을 담당한다. 예를들어 저장장치에 저장된 두 수를 더하고자 한다면 제어장치는 저장장치 내의 두 수를 연산장치내의 가산기로 보내고 가산기를 작동시켜 그 합을 다시 기억장치에 저장시키도록 하는 것이다.
 

위에서 설명한 것외에도 기억장치로서 보조기억장치가 있다. 이는 컴퓨터가 나오는 영화에서 흔히 볼 수 있는 마그네틱테이프(Magnetic Tape) 장치와 가정에 있는 디스크(Disk)와 같은 디스크구동기(Disk Driver)로 대표된다. 그러나 디스크구동기는 오디오 디스크와는 달리 정보를 쓰거나 읽을 수 있는 특징이 있다. 이와같은 보조기억장치는 컴퓨터 기억장치에 있는 정보를 보관하는 것으로 사람에 비교한다면 잊어버리는 것을 방지하기 위하여 메모지나 공책에 기록하는 것으로 여겨질 수 있을 것이다.
 

위에서 설명한 컴퓨터의 구성 요소들은 운영체제(Operating System)라 불리우는 소프트웨어에 의하여 일사분란하게 작동된다. 사용자가 입력한 프로그램과 데이타를 받아, 수행한 결과를 출력장치를 통하여 다시 사용자에게 출력시켜 주는 것이다. 컴퓨터를 둘러싸고 있는 전체적인 소프트웨어의 포괄적인 계층 구조는 <;그림3>;에서 보는 바와 같다. 이에 대한 자세한 설명은 생략하기로 하고 일반적인 프로그래머가 만드는 프로그램은 응용 프로그램에 속한다.

 

<;그림3>;컴퓨터 시스템내의 소프트웨어 계층적 구조
 

레저에서 우주개발에 이르기까지
 

컴퓨터의 활용이란 <;그림2>;에서의 응용 프로그램의 작성을 의미한다. 즉 이와같은 프로그램의 존재로 인하여 인간생활에 필요한 일을 처리하도록 하는 것이다. 컴퓨터의 활용분야는 초기에는 단순한 계산용에 지나지 않았으나 이제는 우리의 일상 생활 모든 분야에 심지어 레저에까지 널리 이용되고 있다. 그러나 아직 컴퓨터가 할 수 있는 증력을 발휘치 못한 곳이 많이 산재해 있으므로 그의 활용은 점점 더 넓어질 것이다.
 

우선 계산용으로 사용되는 예는 우주 탐색선의 궤도 및 궤도 수정에 관한 계획의 수립에서 볼 수 있다. 이는 우주 탐색선의 궤도에 있는 동안 로케트 분사 속도나 방향이 우주탐색선의 궤도를 결정해 주기 때문에, 이러한 계획을 세움에 앞서 로케트 분사의 특정한 상황으로부터 어떤 궤도가 결정될 것인가를 반드시 알아야 한다. 물론 이 궤도는 쉽고도 간단한 계산으로 부터 밝혀질 수 있다. 그러나 이에는 1천5백만 번의 수학적 계산이 필요하며 만약 사람이 계산한다고 하면 하루에 12시간씩 하고 한 계산에 1초씩 걸린다 하더라도 약 3백50일이나 걸린다. 그렇다고 사람이 할 수 없는 것은 아니지만, 정확한 답을 기대하기는 거의 불가능에 가까운 것이다. 이것이 바로 소련이 미국에 비하여 우주개발을 먼저 시작하고도 미국이 먼저 달에 도착하게된 원인 중 하나로 볼 수 있는 것이다.
 

이와 비슷한 응용의 또 한 예로 일기예보를 들 수 있다. 일기예보를 위한 대기의 상태를 수학적으로 모델링하는 것은 1900년도에 시작되었다. 그 당시에 이 모델을 풀기 위한 자료로서 기압, 기온, 풍속 등과 같은 것을 사용하여 날씨를 예측할 수 있었다. 그러나 컴퓨터 없이 그 모델의 해답을 구하면 시간이 오래 걸려 예측할 수 있을 때쯤이면 그 상황은 끝나고 새로운 상황으로 바뀌어 갈 것이다. 따라서 이는 컴퓨터의 출현으로 쉽게 해결될 수 있다.
 

앞의 두 예는 컴퓨터가 있어야만 가능한 작업을 보여준다. 이외에도 사람 대신 컴퓨터가 할 수 있는 일들이 많지만, 컴퓨터는 거의 모든 경우에 사람보다 훨씬 더 빠르고 정확하게 일을 처리한다.

다른 예로서, 항공 예약 시스템의 경우 좌석이나 운행계획 등에 대한 정보를 고객들에게 즉시 알려 줄 수 있고 미술과 음악 등에서도 새로운 차원을 제시함으로써 예술가들은 특수한 출력장치를 사용하여 다양한 창작 활동을 펼 수 있는 것이다. 이외에도 컴퓨터가 응용될 수 있는 분야는 너무나도 많다.
 

위에서 본바와 같이 분명히 컴퓨터는 인간이 만든 것중에서 가장 위대한 도구가 될것이다. 그러나 'garbage in garbage out' 이란 말고 같이 쓰게기 같은 것을 입력시키면 그 결과 쓸데없는 것이 되는 것처럼, 오늘날 우리가 컴퓨터를 올바르게 인식하고, 바르게 사용하며, 어떻게 응용해야 할 것인가를 배워야 하는 까닭이 여기에 있다고 할 수 있다.

이 기사의 내용이 궁금하신가요?

기사 전문을 보시려면500(500원)이 필요합니다.

1986년 02월 과학동아 정보

  • 이윤준 교수

🎓️ 진로 추천

  • 컴퓨터공학
  • 정보·통신공학
  • 소프트웨어공학
이 기사를 읽은 분이 본
다른 인기기사는?