컴퓨터의 역사

1. 초창기 계산기

  • 학교 다닐 때 배웠던 근대 문학에서 흔히 등장하는 주판이 있다. 주판은 지금 쓰는 전자식 계산기가 보급되기 전 계산을 할 때 쓰던 도구이다.
  • 주판이 규칙에 따라 문제를 풀 수 있는 장치인 것을 알고 있는 중세와 근대의 유럽인들은 이러한 규칙을 기계 장치에 집어넣으면 계산을 자동화할 수 있지 않을까 하는 발상에서 톱니 계산기를 발명하게 된다.
  • 최초의 기계식 계산기는 1642년에 파스칼이 고안한 장치였다. 이 장치는 손잡이와 이에 딸린 톱니바퀴가 일정한 비율로 배열되어 손잡이를 좌우로 돌리는데에 따라 덧셈과 뺄셈이 자동으로 수행되는 장치였다.
  • 이후 라이프니츠가 만든 계산기는 덧셈과 뺄셈 이외에도 곱셈과 나눗셈, 간단한 제곱근까지도 계산이 가능했다고 한다.

2. 근대 계산기

  • 초창기 계산기들은 손으로 수치를 일일이 입력해야 하는 것이 큰 단점이었다. 그래서 19세기 들어 입력 방식을 보완한 근대적 계산기가 탄생하게 된다.
  • 구멍이 뚫려 있는 천공 카드(punched card)를 이용해서 카드에 뚫린 구멍의 순서에 따라 톱니가 물려 입력 순서를 정하게 되는 방식을 이용해 입력 방식을 보완한다.
  • 찰스 바베지는 증기 기관으로 작동되는 수식 계산 기계인 차분 엔진(difference engine)과 업그레이드 판인 해석 엔진(analytical engine)을 설계한다. 하지만 완성하지는 못했다.
  • 찰스 바베지와 함께 프로젝트를 진행했었던 에이다는 세계 최초의 여성 컴퓨터 과학자로 기록되었으며, 병렬 처리 프로그래밍 언어로 유명한 Ada는 그녀의 이름을 딴 것이다.

3. 현대식 컴퓨터

  • 현대식 전자 컴퓨터는 국방 분야에서 자동화를 위해 많은 인력과 자본을 투입해 개발한 것에서 시작되었다.
  • 최초의 전자식 계산기의 토대는 2차 세계대전 기간에 만들어져, 2차 세계대전이 끝나고 1950년대 말부터 일반 사무용으로 보급된다.

1) 0세대

  • 최초의 컴퓨터라 할 수 있는 ENIAC(Electronic Nemerical Integrator And Computer)이 개발되었다.
  • 초당 5번의 곱셈이 가능했지만 지금의 컴퓨터와는 다르게 설계에 따라 한 문제만 풀 수 있었고 다른 문제를 풀게 하려면 진공관 회로의 배치를 바꿔줘야 했다.
  • 당시 컴퓨터는 덩치가 아주 크고 진공관 수는 약 2만여개였기 때문에 배치를 바꾸는 데에 몇 주가 소요되었다. 그리고 전력도 많이 들고 진공관 고장도 잦고 효율적이지 않았기 때문에 현대 컴퓨터의 아버지라 불리는 존 폰 노이만이 새로운 방식을 고안해 낸다.
  • 이 방식이 지금 우리에게 익숙한 소프트웨어 방식이다. 저장 프로그램 개념으로 컴퓨터 프로그램을 처리해야 할 데이터의 일부로 규정하여 이를 기억 장치에 저장해 놓고 반복적으로 이용 가능하도록 한 방식이다.
  • 이 시기에는 0과 1로 이루어진 기계어가 프로그래밍 언어로 사용되었다.

2) 1세대 컴퓨터(1950년대)

  • 0세대 컴퓨터는 연구와 국방 목적으로 이용되었지만 이것을 상업적으로 판매할 수 있을거라 생각한 사람들에게서 1세대 컴퓨터가 시작된다.
  • 최초의 1세대 컴퓨터는 UNIVAC(Universal Automatic Computer)으로 입력 장치로 천공 카드를 이용하고 내부 계산 장치로 진공관을 이용하도록 설계되었다.
  • 하지만 진공관 컴퓨터는 전력을 많이 소모하면서 속도가 느리고 가격이 비쌌다. 그리고 작동시키려면 0과 1로 이루어진 이진법 기계어에 익숙한 전문가가 필요했기 때문에 여전히 대중화되지는 못했다.
  • 이 시기에 들어서면서 기계어를 인간이 인식할 수 있는 문자로 대치해서 쓰는 어셈블리어가 개발되었다.

3) 2세대 컴퓨터(1959년대 말 ~ 1960년대 초)

  • 진공관의 단점인 크기, 전력 소모, 열 발생의 문제들이 해결된 트랜지스터가 개발된다.
  • 트랜지스터를 이용해서 진공관 컴퓨터와 같은 원리로 동작하는 컴퓨터를 만드는 것이 가능했기 때문에 트랜지스터 컴퓨터가 개발되면서 컴퓨터의 처리 속도가 획기적으로 빨라지게 된다. 하지만 여전히 입력 수단으로는 천공 카드를 사용하고 있었는데 천공 카드의 입력 속도가 처리 속도에 비해 느려서 컴퓨터가 벌써 일을 다 끝내고 입력을 하염없이 기다리고 있게 된다.
  • 이를 해결하기 위해
    • **병렬 처리(parallel processing) 기법** : 여러 개의 프로세서가 입력과 출력 및 연산을 독자적으로 수행하는 것
    • **멀티프로그래밍(multi-programming) 기법** : 한 개의 프로세서가 서로 다른 여러 개의 프로그램을 번갈아 가면서 처리하는 것
      들이 개발되었다.
  • 이 시기에 들어서서 인간이 인식하기 쉬운 언어로 작성한 프로그램을 기계어나 어셈블리어로 번역하는 컴파일러(compiler) 기술이 개발된다. 이에 따라 프로그램을 보다 체계적으로 구성할 필요가 생기면서 구조적 프로그래밍 언어 기법이 도입되었다. 이를 이용해서 우리가 코딩할 때 쓰는 라이브러리 개념이 생긴다.

4) 3세대 컴퓨터(1960년대 중반 ~ 1960년대 말)

  • 3세대 컴퓨터 시기에 들어오면서 트랜지스터와 동일한 원리로 작동되지만 하나의 작은 실리콘 조각 위에 여러 개의 트랜지스터와 전자회로를 포함한 **집적회로(IC : Integrated Circuit) **가 개발된다.
  • 집적회로는 비용을 크게 줄였기 때문에 보다 저렴하면서 강력한 성능을 가진 컴퓨터의 제작이 가능해졌다.
  • 다중 처리와 다중 프로그래밍이 중요해졌으며 시분할 처리 시스템(Time Sharing System)이 생겨난다.

5) 4세대 컴퓨터(1970년대 초 ~ 1980년대 말)

  • 집적회로가 더욱 발전되어 하나의 집적회로에서 연산, 제어, 기억 등의 프로세서의 모든 기능을 단순하게나마 수행할 수 있는 **마이크로프로세서**가 개발된다.
  • 마이크로프로세서를 이용해 만든 개인용 마이크로 컴퓨터가 폭발적인 인기를 끌면서 컴퓨터의 설계는 마이크로프로세서 중심으로 개편된다.
  • 이 시기부터 GUI(Graphical User Interface)가 개발되어 컴퓨터에 대한 지식이 없어도 쉽게 사용할 수 있게 된다.

6) 5세대 컴퓨터(1990년 ~ 현재)

  • 데스크톱 말고도 랩탑과 팜탑 컴퓨터의 출현과 보조 기억 장치(CD-ROM, DVD 등)의 개선과 멀티미디어의 사용, 가상현실 등이 주요 특징이다.
  • 객체지향언어와 프로그래밍이 각광받기 시작했으며 인터넷이 등장했다.

7) 미래의 컴퓨터 기술

  • 병렬 처리 기술이 더욱 두드러지고 대용량의 주변기기들과의 접목을 통해 컴퓨터의 멀티미디어화가 더욱 가속화 될 것이다.
  • 착용식 컴퓨터, 광 컴퓨터, 양자 컴퓨터, 바이오 컴퓨터 등과 같은 새로운 형태의 컴퓨터들이 출현할 것으로 기대된다.
  • 인공지능(AI)이 더욱 발전되어 사람처럼 생각하고 행동하는 소프트웨어가 개발될 것으로 예상된다.
  • 유비쿼터스 컴퓨팅이 보편화 되어 사용자가 네트워크나 컴퓨터를 의식하지 않고 장소에 상관없이 자유롭게 네트워크에 접속할 수 있는 정보통신 환경이 형성됨으로써 컴퓨팅의 사용성을 극대화한 사용자 중심의 중단없는 컴퓨팅 환경이 제공될 것으로 예상된다.