안경잡이개발자

728x90
반응형

● 컴퓨터의 역사

 

 컴퓨터의 시작은 정말 애매한 부분입니다. 어떤 사람은 고대 시대에 계산을 위해서 만들어진 석판이 컴퓨터의 시초라고 말하고 어떤 사람은 앨런의 튜링기계가 컴퓨터의 시초라고 말합니다. 사실 컴퓨터는 지금까지 수많은 시행착오를 거쳐서 발전해왔다고 할 수 있고 아주 다양한 형태로서 현재 우리에게 자리잡았다고 생각합니다.

 

 대략적으로 흔히 말하는 컴퓨터의 발전 양상은 아래와 같습니다. 솔직히 말해서 요즘 컴퓨터 공부하는데 그다지 쓸모없는 내용입니다. 이러한 내용을 미리 보고 프로그래밍이나 알고리즘을 공부한다고 해서 더욱 효율적인 것도 아니며 단지 적어도 궁금한 부분을 채워줄 수 있다는 측면에서는 의미가 있다고 생각합니다. 적당히 눈으로 훑으면서 상식 선에서 재미있게 보시면 됩니다.​

 

1. 주판(기원 전 26세기경 중국에서 시작됨)

 

 

2. 파스칼의 계산기(1642년 톱니바퀴를 사용해 덧셈과 뺄셈이 가능한 최초의 기계식 계산기)

 

 

3. 라이프니츠의 계산기(1671년 파스칼의 계산기를 계량해 곱셈과 나눗셈도 가능하게 만듦)

 

 

4. 배비지의 차분기관과 해석기관(1820 ~ 1830년대에 걸쳐 제어, 연산, 기억 입출력 등이 가능한 컴퓨터를 설계)

 

 

 

5. 천공카드 컴퓨터(1889년 종이 카드에 구멍을 뚫어 자료를 처리하는 천동카드 시스템을 개발, 인구조사 통계에 활용)

 

 

6. 튜링기계(1936년 전쟁을 위해 고안, 테이프에 부호를 기록해 프로그램처럼 사용하는 컴퓨터)

 

 

7. 에니악(1946년 전쟁을 위해 고안, 진공관을 사용하고 무식하게 거대함)

8. 에드삭(1949년 프로그램 내장 방식 이론을 도입한 컴퓨터)

 

 

9. 에드박(1945년에 개발되어 1951년 세계 최초의 상업용 컴퓨터인 유니박원으로 이어짐)

 

● 오늘날의 컴퓨터

1. 제1세대 컴퓨터(1951~1958)

 제1세대 컴퓨터는 ​ 진공관을 사용합니다. 이러한 프로그래밍은 당연히 저급 언어(기계어)를 이용하기 때문에 프로그램을 작성하는 시간이 아주 오래 걸리고 공학을 전공하는 수재들이 아니면 이해하기도 어려웠습니다. 여기서 말하는 저급 언어란 급이 낮다는 뜻이 아니라 사람이 이해하기보다 기계가 이해하기 쉬운 언어라는 뜻을 가지고 있습니다. 즉, 지금의 C언어와 같이 printf() 등과 같은 언어(print라는 말에서 출력이라는 뜻을 프로그래머가 예상할 수 있음)를 사용하지 않고 모두 0과 1을 이용해서 이해하기 어려운 것이 기계어입니다.

2. 제2세대 컴퓨터(1959~1963)

 제2세대 컴퓨터는 기억소자로​ 트랜지스터를 처음으로 도입했습니다. 트랜지스터는 진공관과 기능이 유사하지만 크기가 훨씬 작고 발열 및 전력 소모에서 효율적입니다. 여기서 COBOL, FORTRAN 등의 언어가 나왔습니다. 다만 이 때까지만 하더라도 일반인이 컴퓨터를 공부하거나 프로그래밍을 배우는 일은 없었죠.

3. 제3세대 컴퓨터(1964~1970)

 제3세대 컴퓨터는 기억소자로서 직접회로를 사용합니다. 직접회로는 수백 개의 트랜지스터와 부품들을 칩으로서 통합한 전자회로를 의미합니다. 다중 프로그래밍의 개념이 처음으로 등장하였고 고속 처리가 가능해졌습니다.

4. 제4세대 컴퓨터(1971~현재)

 제4세대 컴퓨터는 고밀도직접회로를 사용합니다. 또한 초고밀도직접회로로 고성능 컴퓨터도 구비할 수 있습니다. 1970년대 초에 단일 칩 마이크로프로세서에서부터 Intel 운영체제를 가미한 상업용 개인용 컴퓨터도 출현했습니다. 1990년대에 들어서 우리가 알고 있는 윈도우가 등장했고 고밀도직접회로의 상용화 덕에 많은 사람들이 PC를 가질 수 있게 되었습니다.

 

5. 제5세대 컴퓨터

 솔직히 제5세대 컴퓨터라고 굳이 분류하는 이유는 모르겠지만 인공지능을 갖춘 개인용 컴퓨터의 도래를 일컫는다고 합니다. 컴퓨터 스스로 논리적인 추론이 가능하게 되고 내부 및 외부의 데이터를 상호 조합할 수 있게 된다고 합니다.

● 참고

​ 위에서 언급한 내용은 모두 교과서에나 볼 법한 내용이고 제가 생각할 때 컴퓨터의 역사에서 중대한 의미를 가지는 부분은 폰 노이만의 '프로그램 내장 방식'이라고 생각합니다. 폰 노이만은 미국의 수학자이면서도 경제학부터 시작해 다양한 학문에서 엄청난 업적을 남겼던 천재인데요. 이 폰 노이만은 컴퓨터에 있어서도 정말 중요한 역할을 했습니다.

 제 개인적인 생각이지만 폰 노이만의 업적은 컴퓨터와 관련한 측면에서는 아인슈타인도 비교할 수 없다고 생각합니다. 궁금하신 분들은 폰 노이만에 대해서 자세하게 찾아보세요. (주변 박사 및 연구원들 사이에서 악마라고 불릴 정도의 천재적인 두뇌와 기막힌 발상으로 유명했죠.)​ 아무튼 이 '프로그램 내장 방식'이 왜 대단한 것이냐면 폰 노이만의 이전에 컴퓨터는 어떤 작업을 할 때마다 설치된​ 스위치를 다시 세텅해야만 해서 정말 번거로웠습니다.

 

 프로그램 내장 방식은 이러한 문제를 해결하기 위해서 고안된 방식으로, 데이터를 외부에서 받지 않고 내부의 기억장치에 저장한 후 프로그램의 명령을 순서대로 꺼내 해독하고 실행하는 개념입니다. 이 방식은 위에서 말했듯이 1949년에 에드삭을​ 개발할 때 적용되었습니다. ​또한 가장 중요한 점이 현대에 있는 모든 컴퓨터를 설계하는데 기본이 되고 있는 설계도라는 것입니다. 또한 폰 노이만은 자신의 논문에서 '캐시 메모리'가 출현할 것을 미리 예측했습니다. 근데 그것이 한 100년 전입니다. 즉, 근 100년 전에 이현대의 컴퓨터의 모습을 예상하고 있었던 것입니다.​

​ 쉽게 설명하자면 지금의 컴퓨터는 프로그램을 실행시키면 그 프로그램이 주기억장치(RAM)에 올라가서 데이터를 워드 단위로 읽어서 CPU에서 처리하고 있습니다. 데이터는 입출력 장치를 이용해 사용자로부터 받습니다. 즉, 주기억장치와 CPU 그리고 입출력장치 이렇게 3단계 구조를 이용하고 있는 것입니다. 따라서 하나의 프로그램을 사용하다가 다른 프로그램을 사용하고 싶으면 단순히 SW만 교체하면 되기 때문에(다른 프로그램을 RAM에 올려서 다시 사용)​ 정말 간편하죠.

 

​ 이전에는 원하는 연산을 하고 싶을 때마다 여러 명이 진공관 회로 스위치를 변경해야만 했는데 지금은 그냥 프로그램 하나만 마우스로 클릭해 실행시키고 데이터를 입력만 하면 알아서 처리를 해주는 것이죠. 프로그램을 주기억장치에 내장시킴으로써 이러한 작업이 가능하게 된 것입니다.​ 즉, 우리가 컴퓨터를 켜서 주기억장치(하드디스크)에 저장된 한글 2008을 실행시키면 RAM에 한글 2008 프로세스가 올라가게 되어 바로 실행이 가능한 것을 생각하면 됩니다.

 

 폰 노이만의 구조를 채택하지 않는다면 한글 2008이 컴퓨터에 '내장'되어있지 않기 때문에 한글 2008을 실행시킬 때 마다 다시 만들어줘야 하는 것이죠. 한마디로 지금과 같은 컴퓨터의 활용은 폰 노이만의 구조를 채택하지 않았다면 절대로 불가능한 것입니다.​ 물론 최근에 와서도 폰 노이만 구조의 문제점(폰 노이만 병목) 등을 발견하고 보완하고 있기 때문에 지속적인 컴퓨터 성능 향상이 루어지고 있습니다.​

 

728x90
반응형