본문 바로가기
기술공학/세상을 바꾼 IT

[세상을 바꾼 IT: 태동] 단말기와 CLI, 천공카드로부터 해방되다

by 롱카이 2024. 4. 24.
반응형
  • 천공카드로 코딩하기
1969년 마가렛 헤밀턴이 작성한 아폴로 11호 컴퓨터 명령 천공카드
1969년 마가렛 헤밀턴이 작성한 아폴로 11호 컴퓨터 명령 천공카드

산업혁명 당시 자동으로 작동하는 기계에 작동 명령을 내리는 법은 천공카드에 구멍을 뚫는 것이었습니다. 기계는 뚫린 구멍을 파악해 부품이 작동하며 특정 동작을 수행하도록 설계되었고 당시에는 그렇게 부품이 물리적으로 동작해 기계의 동작을 변형해야 했습니다. 그 전통은 컴퓨터에도 이어져 컴퓨터는 천공카드나 테이프에 구멍을 뚫어 컴퓨터 안에 넣고, 컴퓨터가 그것을 읽는 방식으로 이어졌습니다. 또 천공카드에 구멍을 뚫어놓고 천공카드를 보관하면 그 자체로 메모리가 되는 것이어서 천공카드로 구멍을 뚫어 코딩하고 보관한 뒤 컴퓨터에 삽입했습니다.

COBOL은 종이에 손코딩한 뒤 한문장 단위로 천공카드에 구멍을 뚫어 코딩했다
COBOL은 종이로 손코딩한 뒤 한문장 단위로 천공카드에 구멍을 뚫어 코딩했다

허나 한 천공카드에 내리는 코딩 양이 너무 적어 코딩 하나에 생각보다 많은 천공카드를 소비했습니다. 코딩 과정 역시 손으로 손코딩을 한 뒤 한 문장씩 천공카드에 구멍을 뚫어 명령어를 입력해야 했습니다. 즉, 연필로 손코딩을 한 뒤 손코딩 내용을 보며 천공카드에 구멍을 뚫는 장치의 키보드를 두들겨 천공카드에 구멍을 뚫고 그 천공카드를 컴퓨터에 삽입해야 했습니다. 거기에 천공카드 여러 개로 만든 명령어 하나에서 천공카드를 하나라도 분실하면 처음부터 다시 만들어야 할 정도로 매우 큰 재앙이었습니다.

자기 테이프
자기 테이프

1960년대에 들어서 쓸데없이 많은 부피를 차지하고 불편한 천공카드 대신 자기 테이프에 명령어를 입력하는 방식이 도입되었고 미국 기업과 소련 과학기구 등 컴퓨터를 개발하는 기관에서 꽤 많이 사용한 방식이었습니다. 자기 테이프는 한 자기 테이프에 명령어 하나를 입력하면 되어 한 명령어 당 한 자기 테이프만 필요했습니다. 허나 자기 테이프는 한번 코딩을 잘못하면 자기 테이프 자체를 교체해야 했고 자기 테이프 역시 보관하다가 꺼내 컴퓨터에 삽입하며 사용해야 했습니다. 또 천공카드보다 심각한 문제점이 있었는데 뻥 뚫린 구멍 배치를 보고 코드를 읽을 수 있던 천공카드와 달리 자기 테이프는 육안으로는 잘 짜여졌는지 확인이 불가능해 컴퓨터에 넣고 돌려봐야했습니다. 그래서 어디가 오류가 났는지 확인하는 작업이 번거로웠습니다.
 
 
 

  • 발전하는 시각 인터페이스, 모니터
EDSAC 모니터
EDSAC 모니터

그 와중에 컴퓨터에 명령어를 입력한 결과를 출력하는 출력장치 중 시각 부분을 담당하는 모니터는 나날이 발전했습니다. 모니터가 처음 적용된 컴퓨터는 1948년 완성된 EDSAC으로 3개의 모니터 화면으로 출력결과를 보여줬습니다. EDSAC 모니터는 크기가 너무 작아 사람이 보기 불편했으나 눈으로 결과물을 본다는 것 자체가 매우 간편한 일이어서 모니터 개선에 투자했습니다.

브라운관
브라운관

컴퓨터 제조업체는 브라운관CRT으로 모니터를 만드는 시도를 했습니다. 전자총에서 전자를 발사해 마스크에 충돌시키는 브라운관CRT의 원리는 다음과 같습니다. 전자총에서 발사된 전자가 주변에 흐르는 강한 자기장 때문에 경로가 휘어진 상태로 섀도우 마스크에 충돌합니다. 그리고 세개의 섀도우 마스크에 각각 빨간색, 초록색, 파란색을 나타내는 형광물질이 있어 전자와 섀도우 마스크가 충돌하면 빨간색, 초록색, 파란색 빛이 섀도우 마스크 너머로 일직선으로 쏘아져 모니터 화면에 비춥니다.

브라운관으로 구현한 모니터 화면
브라운관으로 구현한 모니터 화면

빨간색, 초록색, 파란색 세 색이 모니터 화면에 각각 독립적으로 비추는데 그 색 점의 크기를 줄이면 멀리서 볼 때 색의 병치 혼합 현상 덕분에 빨간색, 초록색, 파란색 외에 다양한 색이 보입니다. 브라운관은 이런 방식으로 모니터 화면에 시각적 이미지를 출력했고 컴퓨터 제조업체들은 브라운관을 컴퓨터 실행결과를 출력하는 출력물로 주목했습니다.
 
 
 

  • 입력과 출력을 동시에 하는 입출력장치, 단말기Computer terminal
UNIVAC의 Uniscope
UNIVAC의 Uniscope

1950년대 말, 컴퓨터 장치가 아직 정립되지 않은 시절 MIT의 컴퓨터과학 연구실은 효과적인 컴퓨터 장치 디자인을 연구했습니다. MIT의 인재들은 연구결과 입력을 담당하는 입력장치와 출력을 담당하는 출력장치가 같이 존재해야 사용자가 사용하기 편리하다는 결론을 냈고 입력장치와 출력장치를 한 곳에 모아 입출력장치라는 개념을 만들었습니다. 미국의 컴퓨터 업체 양대산맥이던 레밍턴 랜드와 IBM은 MIT의 연구결과를 적극적으로 도입했습니다. 두 기업은 입출력장치를 도입했으며 입력장치는 키보드, 출력장치는 단말기(모니터)로 결정했습니다.

IBM 2260 단말기
IBM 2260 단말기

레밍턴 랜드는 UNIVAC 시리즈를 출시하며 모니터 아래에 키보드를 배치했습니다. 그리고 이 입출력장치를 Uniscope라고 불렀으며 특히나 모니터를 가리켜 Uniscope라고 홍보했습니다. IBM은 IBM 2260이라는 컴퓨터를 출시하며 단말기 크기를 Uniscope보다 훨씬 줄였습니다. 컴퓨터를 이용하는 사람들은 더이상 컴퓨터에 명령어를 입력한 뒤 자리에서 일어나 출력장치로 걸어간 뒤 결과를 기다릴 필요 없이 단말기 앞에 앉아 키보드로 좀 명령어를 치고 좀 기다리면 모니터에 결과가 출력되니 자리에 가만히 앉아있기만 하면 되었습니다. 그리고 단말기가 출시되며 컴퓨터에 명령을 하는 방식 역시 변혁을 겪었습니다.
 
 
 

  • 천공카드와 자기 테이프에서 CLI(Command-line Interface)로
단말 에뮬레이터로 구동된 CLI
단말 에뮬레이터로 구동된 CLI

결과물을 출력하는 단말기가 있다는 것은 입력하는 것도 시각화할 수 있음을 의미했습니다. 그래서 MIT와 컴퓨터 기업은 타자기의 키보드를 두드리면 종이에 글씨가 써지듯이 컴퓨터 키보드로 명령어를 따라 두드리면 그 명령어가 모니터 화면에 나타나는 방식을 시도했습니다. 그래서 모니터에 띄울 명령어 시각화를 담당하는 단말 에뮬레이터Terminal emulator 프로그램을 개발하고 단말 에뮬레이터Terminal emulator에 타자기로 치는 것과 동일한 문서를 띄웠습니다. 그 문서는 Command-line Interface라는 이름으로 명명되었고 줄여서 CLI이 되었습니다.

톰프슨 셀
톰프슨 셀

최초의 CLI은 1971년 벨 연구소에서 개발된 톰프슨 셀이었습니다. 톰프슨 셀로 구현된 CLI은 타자기로 명령어를 입력하는 느낌을 주었습니다. 무엇보다도 CLI로 명령을 입력하면 명령을 제대로 입력했는지 바로 확인하고 수정이 가능했으며 CLI로 명령을 입력한 뒤 실행 키를 누르면 컴퓨터가 작동해 이전처럼 천공카드나 자기 테이프를 꺼내 입력기에 넣는 과정을 하지 않아도 되었습니다. 그래서 이전보다 프로그래밍에 대한 부담이 훨씬 적어졌습니다.

1978년 DEC이 출시한 VT100과 CLI 프로그램
1978년 DEC이 출시한 VT100 단말기와 CLI 프로그램

이후 나온 컴퓨터는 단말기에 CLI로 코딩하는 것이 표준이 되었습니다. 천공카드와 자기 테이프는 컴퓨터 시장에서 빠르게 몰락했고 그 자리를 단말기와 CLI 프로그램이 채웠습니다. 모든 컴퓨터 기업은 입출력장치인 단말기를 개발했고 소프트웨어로 CLI을 입력하는 프로그램, 결과물을 출력하는 프로그램 두 프로그램을 만들었습니다. 그리고 고급 프로그래밍 언어는 더이상 천공카드, 자기테이프에 어떻게 표식을 할건지 고민할 필요가 사라져 인간에게 더 자연스러운 고급 프로그래밍 언어로 발전할 수 있었고 자연스럽게 고급 프로그래밍 언어와 기계어를 번역하는 어셈블리어도 발전했습니다.

CLI과 고급 프로그래밍 언어
CLI과 고급 프로그래밍 언어

단말기는 컴퓨터 구동에 대한 이해도가 없는 사람도 컴퓨터를 쉽게 사용할 수 있도록 진입장벽을 낮추고 입력장치에서 입력하고 출력장치에서 결과를 보는 방식이 아닌 단말기 앞에 앉아 입력하고 출력물을 보면 되는 것으로 바꿨으며 CLI은 천공카드, 자기 테이프를 컴퓨터에서 몰아내고 고급 프로그래밍 언어의 제약을 풀었습니다.
 
 
 
 
 

반응형

댓글