1. 컴퓨터 탄생[1940년대]
과거 미사일은 지금처럼 센서나 GPS로 목표물을 알아서 찾아가지 못했다. 한번 쏘면 한 방향으로만 움직였다. 정확한 발사각과 방향을 맞추어 쏘지 안흥면 미사일이 엉뚱한 곳에 떨어졌다. 컴퓨터가 탄생하기 전에는 발사각과 방향 계산을 사람이 손으로 직접 했다. 사람이 하는 계산은 느리고 종종 틀렸기 때문에 인간 능력을 뛰어넘는 기계가 필요했다. 컴퓨터는 미사일 발사각을 계산하려고 만들었다. 최초의 컴퓨터인 에니악은 펜실베이니아대학의 모클리(J. W. Mauchly)와 에커트(J. P. Eckert) 교수가 만들었다. 에니악은 규모가 30톤인 거대한 계산기로 사람이 주판으로 7시간이나 걸렸던 미사일 탄도 계산을 단 3초 만에 끝냈다,. 날씨나 바람의 미세한 영향을 미리 프로그래밍해 놓음으로써 미사일을 발사할 때 정확도를 높였다. 에니악은 진공관 1만 8,000개를 빼곡히 집어넣고 전선을 여러 잭에 ㄲㅈ아 회로를 연결하여 현대의 프로글램을 대신했다. 키보드, 마우스, 모니터 등 주변기기가 없었기 때문에 계산된 결과는 진공관을 통해서만 확인할 수 있었다. 진공관은 지금의 백열전구 같은 모양의 부품이다. 에니악은 진공관이 켜지면 1, 진공관이 꺼지면 0으로 판단했다. 이것이 컴퓨터가 2진법을 사용하는 이유다. 초기 컴퓨터는 키보드로 프로그래밍을 할 수 없어 선을 연결하여 논리회로를 구성했다. 이를 하드 와이어링(hard wiring) 방식이라고 한다. 하드 와이어링은 전선으로 논리회로를 구성하여 원하는 결과만 얻는 방식이다. 하드 와이어링 방식에서 다른 계산이나 수식을 사용하려면 전선을 다시 연결해야 하는 불편함이 있었다.
2. 일괄 처리 시스템[1950년대]
컴퓨터는 기술이 발전하면서 트랜지스터를 사용하게 되었다. 또한, 트랜지스터 여러 개를 하나로 만든 IC(Integrated Circuit)라는 칩(chip)이 개발되었다. IC 칩은 진공관과 전선으로 만든 논리회로를 매우 작은 크기로 구현한 것이다. 이 IC 찹으로 컴퓨터를 만들면서 현대적인 모습의 컴퓨터가 제작되었다. 이러한 컴퓨터는 미약하지만 중앙 처리 장치인 CPU와 메인메모리도 가지게 되었다. 컴퓨터가 발전하면서 입력 장치로 천공 카드 리더(punch card reader)를 사용했고, 출력 장치로 라인 프린터(line printer)를 사용했다. 천공 카드 리더는 OMR((Optical Mrak Reader)의 원조다. 아마 시험을 볼 때 OMR 카드에 답을 마크한 경험이 한번쯤은 있을 것이다. OMR은 OMR 카드에 특수한 펜으로 표시를 하면 기계가 이 마크를 읽어 데이터를 수집하는 장치다. 천공 카드는 OMR과 유사한 시스템으로, 특수 펜으로 마크하는 대신 구멍을 뚫어 문자나 숫자를 표현한다. 현대 컴퓨터에서는 자판을 두드려 문자를 입력하지만 당시에는 카드에 구멍을 뚫어 문자를 입력했다. 라인 프린터는 문자만 출력하는 프린터로 한 번에 한 줄씩 출력한다고 해서 '라인 프린터'라고 한다.
당시에는 모든 내용을 천공 카드에 구멍을 뚫어 컴퓨터에 입력하면 결과는 프린터로만 확인할 수 있었다. 입력한 내용 중에 오류가 있더라도 프린트를 해야만 그 결과를 알 수 있어 매우 불편했다. 그러나 천공 카드 시스템은 현대적인 프로그래밍을 가능하게 해 주었다. 과거에는 선을 직접 연결하여 원하는 기능을 구현하는 하드 와이어링 시스템이었지만, 천공 카드시스템은 프로글램을 구성한 후 카드에 구멍을 뚫어 컴퓨터에 입력하면 프로그램이 실행되는 구조였다. 천공 카드와 라인 프린터를 사용하면서 현재 프로그래밍을 하는 방법과 유사한 방식으로 다양한 소프트웨어를 개발할 수 있게 되었다,. 하드 와이어링 시스템에서는 다른 작업을 할 때마다 선을 일일이 다시 연결해야 했지만, 천공 카드 리더는 프로그램만 바꾸면 다른 작업을 할 수 있었다. 요즘은 음악을 들으면서 문서 작업을 하는 것처럼 동시에 여러 작업이 가능하지만, 이때는 한 번에 한 가지 작업만 할 수 있는 단순한 시스템이었다. 하나의 작업을 읽어 실행시키면 정해진 순서에 따라 실행한 후 결과만 보여 주었다. 지금과 달리 모든 작업을 한꺼번에 처리해야 했으며, 프로그램 실행 중간에 사용자에게 데이터를 입력받거나 수정하는 것은 불가능했다. 이러한 시스템을 일괄 작업 시스템(batch job system) 혹은 일괄 처리 시스템(batch processing system)이라고 한다. 일괄 처리 시스템은 라면 자판기에 비유할 수 있다. 라면 자판기는 라면을 자동으로 끓여 주는 기계다. 그러나 계란을 뺀다든지, 좀 더 익혀 달라든 지, 물을 많이 넣어 달라는 등 요구를 할 수 없다. 오직 처음에 프로그래밍된 대로만 라면을 끓여 준다. 일괄 처리 시스템은 천공 카트에 명시된 대로만 작업하고, 결과는 프린터로 알려주는 단순한 시시템이다.
3. 대화형 시스템[1960년대 초반]
1960년대 초반 키보드와 모니터가 등장했다. 키보드는 타자기 자판과 유사하게 만들며, 초기 모니터는 컬러가 아닌 단색(녹색 혹은 오렌지색)이었다. 키보드와 모니터의 등장은 단순 작업 시스템인 작업 방식을 획기적으로 바꾸어 놓았다. 기존 일괄 처리 시스템에서는 작업 중간에 새로운 값을 입력하거나 데이터를 변경하는 것이 불가능했다. 그래서 천공 카드를 수천 장 뚫어서 프로그래밍한 후 카드를 읽어 실해시켰는데, 라인 프린터에 'ERROR'가 표시되면 그야말로 낭패였다. 이때는 오류를 찾아 천공 카드를 다시 뚫오 실행하는 과정을 반복했다. 그래서 일괄 처리 시스템은 매우 비효율적이었다. 키보드와 모니터가 개발되면서 작업이 진행되는 중간에 사용자에게 입력을 받거나 중간 결과 값을 보여 줄 수 있게 되었다. 또 중간 결과 값을 출력하여 프로그램에 이상이 있는지, 프로그램을 정상적으로 진행하고 있는지 확인도 가능해졌다. 프로그램 진행 중간에 사용자에게서 입력을 받을 수 있게 되면서 입력 값에 따라 작업 흐름도 바꿀 수 있었다. 컴퓨터와 사용자가 대화를 통해 작업한다고 하여 이러한 시스템을 대화형 시스템이라고 한다. 일괄 처리 시스템으로 계산 위주의 작업만 할 수 있었던 것에 비하여, 대화형 시스템 등장으로 문서편집기나 게임 등 다양한 종류의 응용 프로그램을 만들 수 있게 되었다.