Crash Course: Computer Science를 듣고 정리했습니다.
Computing's History
Computing's Origins
The Abacus 주판
컴퓨팅의 기원은 계산기이며, 그 계산기의 기원은 '주판'이다. 기원전 2500 년전 메소포타미아에서 발명되었다.
이후 인간은 다양한 계산기를 개발한다.
Astrolabe
천문 관측 장치.배가 바다 위에서 그들이 있는 위도를 알 수 있게 해준다.
The Slide Rule
계산자.곱셈과 나눗셈을 할 때 도움을 준다.
이외에도 일출,밀물, 썰물, 천체의 움직임을 계산할 수 있는 장치들을 개발한다.
Leibniz' Step Reckoner 계단식 계산기 또는 라이프니츠 계산기
1672년경 독일의 수학자 고트프리트 빌헬름 라이프니츠가 발명하여 1694년에 완성한 기계식 계산기.
Range Tables. Speed and Accuracy
범위 테이블. 기계 계산기는 너무 크고 비싸서 일반인들에 접근성이 떨어졌다. 이 책에는 온갖 제곱 계산 결과가 기록되어 있어서 몇 분만에 복잡한 계산 결과를 찾을 수 있게 해주었다.
Charles Babbage
영국의 수학 교수 찰스 배비지는 '프로그램이 가능한 컴퓨터' 개념의 시초자이다. "컴퓨터의 아버지"로 불린다.
Charles Babbage's Difference Engine approximates polynomials
찰스 배비지의 차분 기관. 다항함수를 계산하기 위한 기계식 디지털 계산기.
The Analytical Engine 해석기관
찰시 배비지가 고안한, 기계적 범용 컴퓨터의 설계. 당시 기술력 문제로 완성되지는 못했다.
Ada Lovelace, the world's 1st programmer
해석기관에서 처리될 목적으로 작성된 알고리즘이 최초의 컴퓨터 프로그램으로 인정되었던 바, ‘세계최초의 프로그래머’라는 수식어가 붙는다. 해석기관을 단순한 계산기 또는 수치 처리 장치로만 생각하던 당대의 과학자들과는 달리 훨씬 다양한 목적으로 활용될 수 있는 가능성에 주목하여 현대 컴퓨터의 출현을 예측하였다.
The US Census. Hollerith's punch machine.
인구 조사국이 허먼 홀러리스에게 계산기 개발을 의뢰해서 만들어졌다. 그는 수백만 조각의 자료로부터 통계를 빠르게 도표화시키기 위하여 천공 카드를 기반으로 한 공학용 도표 작성기를 개발하였다. 홀러리스가 창립한 전산제표기록회사는 IBM의 전신이다.
IBM: International Business Machine's Corporation
천공 카드 시스템을 고안한 허먼 홀러리스가 1896년 창설한 제표기기회사가 1911년에 국제시간기록회사, 컴퓨팅 스케일 컴퍼니, 번디 제조회사와 합병해 세운 전산제표기록회사(CTR)가 이 회사의 전신이다.
20세기 인구의 폭발적인 증가 → 복잡성, 관료주의, → 데이터의 폭발적인 증가 → 집합 자동화와 계산의 필요성을 증가시킴.
계전기
계전기란?
- 전류의 유무에 따라 회로를 여닫는 장치
- 당시 컴퓨터의 브레인 역할
- ex. Harvard Mark I는 가장 크기가 큰 전기식 기계 컴퓨터들 중 하나 (2차 세계대전 중 IBM이 동맹군을 위해 1944년 개발)
- 계전기는 수도꼭지와 같은 역할을 한다 (물이 아닌 전기로!)
단점
- 계산속도가 느리다.
- 움직이는 기계라서 금방 마모된다.
- 계전기의 수가 늘어나면 실패 확률도 늘어난다
- 컴퓨터 버그라는 말의 탄생 계기
- 1947년 11월에, Havard Mark II 의 운영자가 고장난 계전기에서 죽은 나방을 꺼냈다.
- 이처럼 단점이 많아서 대안이 필요하다!
John Ambrose Fleming, Thermionic Valve.
- 1904년도에 영국 물리학자인 John Amborse Fleming은 새로운 전기 구성 요소를 개발한다.
- 이것이 열 이온 밸브. (밀폐 된 유리 전구 안에 두개의 전극을 가둔 것).
- 최초의 진공관.
- 다이오드 : 한쪽으로만 전기를 흐르도록 작용하는 전자 부품
- But, 필요했던 것은 전기의 흐름을 껐다 켤 수 있는 스위치
Lee de Forest, Triode Vacuum Tubes
1906년에 미국인 발명가인 Lee de Forest는 플레밍이 고안해낸 두개의 전극 사이에 세 번째 제어 전극을 추가한다.
- 제어선을 조작하면서, 회로를 열거나 닫을 수 있었다.
- 계전기와 유사한 점.
- But 진공관은 움직이는 부분이 었어서 마모가 덜하며, 전환도 빠르다!
- 이 3극 진공관은 거의 반세기동안 라디오, 장거리 전화와 많은 전기 기계들의 기본이 된다.
- 단점
- 부서지기 쉽다.
- 고장이 난다
- 비싸다.
- 라디오에는 하나만 사용했지만 컴퓨터는 수백개 또는 수천개의 전기적 스위치가 필요했다.
- 1940년대에 금액문제는 어느정도 해결되어 정부 등에서 컴퓨터에 진공관을 사용한다.
- 이는 전자 기계식 컴퓨팅에서 전자식 컴퓨팅으로의 전환을 의미
Electronic Computing. Colossus MK1. Alan Turing
- Tommy Flowers라는 기술자가 개발한 Colossus Mk 1.
- 최초로 진공관이 큰 규모의 컴퓨팅에 사용된 사례. 1943년 12월에 완성되었다.
- 목적 : 나치 통신 해독
ENIAC
- 세계 최초의 진정한 범용으로 프로그래밍이 가능한 전자식 컴퓨터.
- 그러나 많은 진공관들의 고장으로 일반적으로 한번에 약 반나절 동안 작동이 중지되곤 했다.
A Transistor. Computers get smaller, Computers get cheaper
트랜지스터
- 1947년, 벨 연구소 과학자 John Bardeen과 Walter Brattain, William Shokley에 의해 발명되었다.
- 이로 인해 컴퓨팅의 새로운 시대가 탄생하게 된다.
- 트랜지스터의 물리학은 양자 역학에 의존하기 때문에 매우 복잡하다.
- 진공관이나 계전기와 비슷하다.
- 두 개의 전극은 반도체로 분리되어 있다.
- 반도체가 수도꼭지 역할
- 고체상태의 고형물질
- 엄청나게 작게 만들 수 있다.
- 오늘날, 컴퓨터는 50나노미터 크기보다 작은 트랜지스터를 사용한다.
- 한장의 종이는 대략 10만 나노미터두께.
- 오늘날, 컴퓨터는 50나노미터 크기보다 작은 트랜지스터를 사용한다.
- 1957년 출시된 IBM 608
- 이 컴퓨터는 최초의 완전히 트랜지스터로 가동하여 상용으로 쓸 수 있는 컴퓨터
- 초고속, 내구도 좋다.
Silicon Valley
- 많은 트랜지스터와 반도체들의 개발이 캘리포니아의 샌프란시스코와 샌조스 사이의 Santa Clara Valley에서 이루어졌다.
- 또한 일반적으로 반도체를 만드는 데에 실리콘을 사용했다.
- William Shockley도 이곳으로와서 Shockley Semiconductor을 세우고,
- 그 직원들은 후에 Fairchilde Semiconductors을 창업하고,
- 또 직원들은 나중에 인텔을 설립했다.
- 그 직원들은 후에 Fairchilde Semiconductors을 창업하고,
하드웨어의 개선 과정
1세대
Tyranny of Numbers
초기 전자컴퓨터는 전부 별개의 부품으로 구성되어 있어 ENIAC 같은 경우는 500만건의 납땜이 필요하기도 했다. 그래서 성능을 더 올리려면 그 각각의 부품의 개수를 늘리는 수밖에 없었다.
2세대
이후 트랜지스터가 상용화되어 컴퓨터에 통합되었다. 그러나 여전히 하나의 개별 부품이었다.
전자 컴퓨팅 2세대 : 트랜지스터화된 컴퓨터
하지만 아직도 숫자의 폭력은 해결하지 못했고, 이는 1960년대에 한계에 도달하게 된다. 내부는 엄청난 양의 전선 엉킴으로 가득했다.
3세대
IC 집적 회로 Intergrated Circuit
개별 부품을 선으로 잇는 대신 새 하나의 부품안에 많은 부품을 함께 넣는 것이다. Noyce가 실리콘으로 만들었다.
IC는 빌딩 블록인 레고와 비슷하다
인쇄 회로 기판 PCB Printed Circuit Boards
방대한 수의 선을 납땜하고 번들링하는 대신, 금속 와이어를 엣칭했다.
PCB와 IC를 함께 사용하면 이전과 같은 기능을 더 저렴하고 작고 믿을만하게 만들 수 있다!
그러나 하나의 IC에 5개이상의 트랜지스터를 쓰기 어려웠다.
그래서 등장한 공정👇
Photolithography 사진 석판술
복잡한 패턴을 반도체같은 물질에 빛을 이용해 이동시키는 방법이다. 실리콘은 반도체인데, 반도체는 전기를 전도할 수도 있고 안할 수도 있는 것이다.
Photoresist는 Photomask랑 사용할 때 유용하다. 마스킹하여 선택적으로 Oxide Layer로 실리콘을 덮을 부분을 남길 수 있다. 즉, 회로 연결에 필요한 모든 선을 단일 실리콘 조각으로 만들 수 있다!
이제 개별 부품이 필요 없게 되었다.
무어의 법칙
2년마다 2배의 트랜지스터 장착이 가능하다는 법칙이다. 100% 맞지는 않지만 기술 발전을 나타내기에 적합한 말이다. 트랜지스터를 더 작게 만들 수 있는 기술력이 발전했기 때문이다.
트랜지스터가 작을수록 이동이 적어서 소비전력도 준다. 신호 지연도 적고!
1980년 CPU에는 트랜지스터 8만개
1990년 백만개
2000년 3천만개
2010년 십억개! 무려 IC하나에 이만큼 들어가는 것이다. 이러한 발전으로 전자제품 대부분이 (뭐든지) 기하급수적으로 발전하게 되었다.
Noyce&Moore는 이후에 Intel을 설립한다. (Integrated + Electronics = Intel) 광고에서 흔히 볼 수 있는 마이크로프로세서라는 말이 바로 IC를 뜻하는 것이다.
전자 컴퓨팅 3세대의 시작
4세대
자동으로 칩의 디자인을 생성하는 소프트웨어를 사용한다. 이 소프트웨어가 가장 효율적인 방법으로 회로를 디자인한다.
4세대 컴퓨터의 시작이다.
이제 무어의 법칙은, 정밀도에 대한 한계 때문에 끝난 게 아니냐는 얘기가 나오고 있다.
컴퓨터 과학의 아버지 앨런 튜링
튜링머신
튜링머신은 가상의 컴퓨팅 머신이다. 이론적인 계산 장치로 state, srule, read, write가 존재한다. 충분한 시간과 메모리만 있으면 어떤 계산이든 할 수 있다는 걸 보여준다. 이는 컴퓨팅 모델로서의 강력한 아이디어가 되었으며, 이것보다 더 강력한건 Turing Complete라고 부른다.
모든 문제를 계산으로 증명할 수 있는 건 아니다 = 즉 컴퓨터의 능력에는 한계가 있다 (시간이나 메모리가 아무리 많아도)
튜링테스트
인간을 속여서 인간이라고 믿게 만들 수 있다면 Intelligent 라고 부를 자격이 있다는 튜링의 주장에서 기반한 테스트.
공개 튜링 테스트가 바로 captcha다!