Computer Science

#.1 초기 컴퓨터 Early Programming

voider 2020. 9. 6. 18:30

** 이 글은 Youtube채널 CrashCourse - Computer Science 영상을 보고 제 맘대로 정리한 내용입니다. 정확하지 않은 정보가 포함되어 있을 수 있습니다.
**

Computer is Everywhere.

스마트폰이나 컴퓨터에는 수십억 개의 트랜지스터가 있다.

그러나 겁 먹을 필요 없다.

컴퓨터는 많은 단계를 추상화하여 복잡한 작업을 실행하는 단순한 기계일 뿐이다.

첫 시간에는 이 추상화된 단계를 분석한다.

위대한 Carrie Anne선생님

  • 0과 1의 개념
  • 논리 단위
  • CPU
  • 운영체제
  • 전반적인 인터넷 개념과 그 외

컴퓨터의 기원

출처:CrashCourse Youtube channel

기원전 2500년, 메소포타미아에서 주판이 사용 되었다.

주판은 점점 커져가는 사회 규모, 인구, 자원을 개개인이 기억하고 다루는 것이 어려워 만들어졌다. 주판이 있으면 인간이 머리를 써서 계산할 필요가 없다. 이후 4000년 동안 인류는 수많은 계산기를 발명했다. 계산기의 등장은 어려운 계산에 쉽게 진입할 수 있도록 벽을 낮췄다. 그와 동시에 우리의 정신력을 증폭시킬 수 있게 도왔다.

초기 컴퓨터 개척자인 Charles Babbage는 각 분야의 지식이 증가하고 새로운 장치가 고안될수록 인류의 노동력은 단축된다고 말했다. 그러나 이런 도구를 컴퓨터라고 부르지는 않았다.

컴퓨터란 단어가 처음 쓰인 것은 1613년 Richard Braithwait의 책이었다. 그것은 기계가 아니라 직업 이름이었다. 말하자면 기계로 계산할 줄 아는 인간을 이르는 말이었다. 이런 명칭은 컴퓨터라는 의미가 기계로 옮겨진 1800년 후반까지 쓰였다.

이 장치들 중 주목할만한 것은 고트프리트 라이프니츠(Gottfried Leibniz)가 1694년 개발한 스텝 레코너Step Reckoner다.

Step Reckoner

이것은 주행거리계와 비슷한 기능이었다. 단순히 얼마나 주행했는지 더해주는 역할이었다. 이 장치는 여러 종류의 기어를 가지고 있다. 각각의 기어는 10개의 톱니를 가지고 있다. 10개의 톱니는 0부터 9까지를 나타냈다. 하나의 기어가 9를 지나면 0으로 돌아갔다. 그리고 인접한 기어를 한 단계 진행(+1)했다. 이 방법은 위에서 설명한 주판의 작동방식과 다르지 않다. 이 기계는 덧셈과 뺄셈은 물론 곱셈과 나눗셈도 가능했다. 단순하다. 여러 번 더하거나, 빼면 되는 일이니까. 스텝 레코너는 이런 연산을 자동으로 할 수 있었다. 네 가지 연산을 할 수 있는 최초의 장치였다. 이 설계는 이후 약 300년간 사용 되었다.

하지만 불행히도 실생활에서 계산하는데 많은 단계가 필요했고 연산 시간이 길게는 며칠까지도 걸렸다. 무엇보다 비싸서 일반 사람들은 사용할 수 없었다.

그래서 20세기 인간들은 8백만6백75만3백9의 제곱근을 구하기 위해 하루 종일 스텝 레코너에 매달리는 게 아니라 제곱근 표로 가득한 거대한 책을 뒤졌다. 그것이 더 빠르고 쉽고 정확했기 때문이다.

군대에서도 컴퓨팅은 중요했다. 정확하게 적에게 포탄을 맞춰야 했기 때문이다. 그래서 속도와 풍향 뭐 그런 것들을 계산한 레인지 테이블Range Tables를 만들어냈고, 2차 세계대전에서 아주 유용하게 쓰였다. 문제는 포탄의 설계를 변경하면 새로운 계산표가 필요해진다는 것이다. 이건 시간도 소요되고 필연적으로 에러가 나는 일이었다.

찰스 바배지Charles Babbage는 이 문제를 인지하고 1822년 "천문학 그리고 수학적으로 계산된 표를 기계에 적용할 때 참고사항"이란 글을 기고했다. 찰리스 바배지는 Difference Engine이라는 새로운 기계 장치를 제안했다. 이 기계는 다항식을 계산할 수 있는 더욱 복잡한 기계였다. 다항식은 변수 간의 관계를 설명할 수 있다. 범위 기압, 혹은 내가 얼마만큼 피자를 먹어야 행복할 수 있는 지. 다항식은 삼각함수를 측정하는 데 쓸 수도 있다. 그러니까 머리로 손으로 하기 매우 복잡한 작업 같은 것들 말이다. 이후 20년 동안 15톤짜리 기계를 만들었지만 슬프게도 망했다. 중요한 것은 이게 아니다.

배버지가 연구 기간에 분석 엔진이라는 아주 복잡한 기계를 생각해냈다는 것이다. 이건 Difference Engine이나 Step Reckoner 그리고 일반적인 모든 계산 장치들과 달랐다. 분석 엔진은 범용적으로 사용 가능한 컴퓨터였다. 단순히 하나의 계산에 국한되지 않고 많은 용도로 사용할 수 있었다. 데이터를 받을 수 있었고, 순차적으로 작동 가능했다. 심지어 기억장치와 원시적인 프린터도 가지고 있었다. (도대체 뭔 지는 모르겠지만) Difference Engine과 같이 그것은 시대를 앞섰고 완성되지는 못했다. 그러나 "자동 컴퓨터"라는 아이디어 자체만으로 놀라운 것이어서 자동화된 작업, 컴퓨터 프로그램으로 나아갈 수 있는 발판을 깔았다.

분석엔진에 대한 가상 프로그랭메 대해 기록한 영국의 수학자 에이다 러브레이스Ada Lovelace는 미래에는 분석을 위한 새롭고, 다양하고 강력한 언어가 개발될 것이라고 했다. 에이다는 종종 최초의 프로그래머라고 언급된다. 분석 엔진은 babbage의 아이디어를 그들의 기계에 접목시킨 첫 세대 컴퓨터 과학자들에게 지대한 영향을 끼쳤다. 찰스 바배지가 컴퓨터의 아버지라고 언급되는 이유다.

19세기 후반 컴퓨터 장비는 과학, 공학의 특정 작업에 목적을 두고 사용했다. 사업, 정부, 일상생활에서는 거의 사용되지 않았다. 미국정부는 인구 조사를 좀 더 편하게 하기 위해 tabulating machine을 발명한 허먼 홀러리스Herman Hollerith에게 연구를 맡겼다.

electro-mechanical

그가 개발한 electro-mechanical(전기 기계)는 수를 저장할 때 전통적인 계산 시스템을 사용했다. 그러나 허먼은 장치에 전동장치를 결합했다. 홀러리스의 기계는 격자무늬가 있는 펀치 카드를 사용했다. 펀치를 뚫으면 데이터를 나타낼 수 있었다.

예를 들자면.

결혼한 상태는 구멍에 펀치를 뚫는다. 그리고 카드를 회로에 홀러리스의 기계에 넣는다.

  1. 구멍이 뚫린 자리에 작은 금속 핀이 카드를 향해 내려온다.
  2. 핀은 종이에 있는 구멍을 통과한다.
  3. 회로가 완성되면 종이는 유리병 속으로 들어간다.
  4. 완성된 회로는 기어를 돌려 하나를 더 추가할 수 있도록 전기모터를 하나 더 움직인다.

음...

홀러리스의 기계는 Manual Tabulations로 계산하는 것보다 10배 이상 빨랐다. 13년 걸리던 인구조사가 2년 6개월 만에 끝났고 수백만 달러를 절약했다. 이를 보고 사업가들이 컴퓨터의 가치를 인식했다. 그들은 회계, 보험 평가 및 재고관리 같은 데이터 집약적인 업무를 개선하는 데 있어서 이익을 낼 수 있는 가능성을 보았다. 이들의 요구로 홀러리스는 The Tabulating Machine Company를 설립했다. 후에 1924년, 이름을 The International Business Machines Corporation으로 바꾸고 다른 기계 제작자와 합병했다. 이것이 바로 IBM의 전신이다.

1900년 대 중반에는 세계 인구 증가, 세계적인 무역 증가로 데이터를 처리하는 데 더 빠른 속도와 유연성 있는 도구가 필요해졌다. 이것이 디지털 컴퓨터의 무대를 만들었다.