본문 바로가기

▒▒▒▒▒ 정보 ▒▒▒▒▒/:: 정보 (기타) ::

컴퓨터의 탄생에 대한 간단한 이야기들







vonneumann.png

안녕 ㅎㅎ 새벽에 일어나서 할것도 없고 항상 해오려던 정보글이나 쓰려고해..


사실 나는 아직도 공부를 계속하고 있는 좆밥이지만 그래도 내가 아는 걸 복습하고 또 니들한테 도움이 되었으면 싶어서 컴퓨터에 관한 짤막한 이야기들을 써보려 했어..


제일 처음 쓸 이야기는 컴퓨터의 시작이야.


게이들이 많이 알고있는 최초의 컴퓨터는 아마 ENIAC일꺼야1)


ENIAC - (Electronic Numerical Integrator And Computer)


Two_women_operating_ENIAC.gif

사진출처 : United Stated Army


최초의 컴퓨터로 유명해진 ENIAC은 1943년 미국 펜실베니아 주립대학에서 개발되었어.


길이만 24m에 달하고 총 무게는 무려 30톤이었다고 해.


사진 속에 두 백줌마는 그냥 모델이 아니라 무려 수학박사이자 최초의 프로그래머였어 ㄷㄷ..


저중 왼쪽 백줌마는 2008년도에 IEEE2)에서 최초의 프로그래머였던 공로를 인정받아 IEEE Computer Pioneer Award를 수상하기도 했어.


하지만 ENIAC은 그 당시에 있던 컴퓨터의 개념들을 실재하는 기계로 구현한 것일 뿐(물론 이것조차도 엄청난 혁신이었지만),


컴퓨터의 대한 개념들은 훨씬 이전에 정립되어 잇었어.


그리고 이 개념들은 거의 대부분이 딱 2명에 의해서 세워졌어. 오늘 얘기하고 싶은거는 이 2명의 천재들에 관한 이야기들이야.


---------------------------------------------------------------------------------------------

Alan Turing과 Turing Machine


컴퓨터 과학의 아버지3)라 불리는 Alan Turing(1912 - 1954)

alanturing.jpg

사진 출처 : http://4.bp.blogspot.com/-yh6xx1uBSWs/T7VdvMbU1-I/AAAAAAAACPE/CVPGEEUSOZE/s1600/Alan_Turing_03.jpg

딱 봐도 얼굴ㅆㅅㅌㅊ는 앨런 튜링은 영국이 자랑하는 수학자이자 최초의 컴퓨터 공학자야.


영국 캠브릿지 대학에서 수학을 공부하고 뛰어난 수학자로서도 두각을 보이고 있었었대.


하지만 그냥 수학자였으면 이렇게 역사에 기록되지는 않았을거야.


튜링을 천재라고 부르는 이유는 바로 앨런 튜링이 1936년에 제시한 '튜링 머신 Turing machine' 이라는 개념 때문이야.



튜링 머신 (Turing machine)


튜링 머신은 사실 굉장히 간단한 아이디어야. 


특정한 기능을 수행하는 기계를 만들었다고 생각해봐.


그럼 이제 그 기계한테 언제 어떤 일을 수행할지 차례대로 알려주는 일정표를 집어넣는 상상을 하자.


그럼 그게 바로 튜링 머신이야.


turingmachine.png

사진 출처 : 나


위에 그림처럼 게임하고 계산하고 야동보고딸치는 기계가 있다고 상상하면, 기계 입구녕으로 들어가고 있는 일정표가 같이 있는거지.


이제 저 기계는 일정표에 적힌 순서대로 기능을 실행할꺼야. 제일 먼저 게임을 하고, 그 다음에는 계산을 하고, 그 다음에 야동을 보고 폭딸을 치겠지.


이딴 아무나 생각할 수 있는 좆같은 아이디어 때문에 천재 소리를 듣는다는게 좆같지? ㅎㅎ 근데 원래 인생은 타이밍이야 ㅎㅎ


컴퓨터 공학자들이 앨런 튜링을 존나게 빨아재끼는 이유4)는 이 튜링머신이 바로 지금 우리가 쓰고있는 모-든 컴퓨터의 기본원리이기 때문이야.


우리가 쓰는 모든 컴퓨터들(스마트폰, 컴퓨터, 로봇청소기, 심지어 티비 심지어 자동차 비행기 땅크 안에 내장된 컴퓨터까지도)은 전-부 튜링머신이야.


못 믿겠으면 지금 당장 사전에서 program 혹은 프로그램을 찾아봐봐. 네이버 국어사전을 참조하면 이렇게 나와있어.


program_naverdictionary.jpg

사진 출처 : 네이버 국어사전. (문제 될시 삭제하겠음)


계획표, 차례표, 일련의 명령문 이런 단어가 보이지?


결국 우리가 쓰는 게임프로그램이나 크롬 같은 웹브라우져나 아니면 곰플레이어같은 미디어 재생프로그램도 결국 컴퓨터라는 기계를 돌리기 위한 '일정표'인거야.


프로그래머는 기계가 수행할 일정표를 짜는 사람들인거고 ㅎㅎ


그러니까 결론적으로 우리는 지금 튜링 머신 없는 삶은 생각할 수도 없는 튜링 머신 시대에 살고있는거지...


아래 사진은 http://aturingmachine.com에서 GabrielF라는 게이가 재현한 개념적인 튜링 머신이야.


종이로 된 테이프가 왼쪽에서 오른쪽으로 이동하면서 종이에 적힌 숫자가 0인지 1인지에 따라서 무언가 한다고해..자세한건 나도안봄ㅋ


저 웹사이트에는 기계가 작동하는 영상도 있으니 궁금하면 한 번 가봐..

800px-Model_of_a_Turing_machine.jpg

사진 출처 : http://aturingmachine.com


앨런 튜링은 현대 컴퓨터의 가장 근본을 세운 공로 말고도 2차 대전 때 천재적인 두뇌로 혁혁한 공을 세웠어.


영국과 독일 간 전쟁이 일어나자마자 바로 암호해독반의 팀장으로 임명이 되어서 독일군의 암호를 깨부수는 기계를 발명했지.


튜링이 발명한 기계1 1111덕(미친씨발 계11111111덕)분에 독일군의 가장 강력한 무기 중 하나인 잠수함은 무용지물이 되었다고 해.


---------------------------------------------------------------------------------------------


..앨런 튜링이 세운 공로에 비해서 튜링의 최후는 너무 비극적이었어..


사실 튜링은 떵꺼츙♥이었거든...


그리고 그 당시 영국사회는 떵꺼츙♥들에게 아낌없는 ㅁㅈㅎ를 주던 사회였어..튜링은 단지 떵꺼츙♥이라는 이유로 고소되서 법정에 까지 서야됐어..


그리고 1년간 여성호르몬 투여형을 선고받아(트랜스젠더 처방을 받은게 아니라 성욕을 없애기 위해서..화학적 거세였던 거야) ..


1년간 형이 끝난 후 튜링은 극심한 우울증에 빠져 지내다가 결국 자살을 선택해..


자살하는 방법도 생전에 좋아했던 디즈니의 백설공주 만화처럼 사과에 독을 넣은 뒤 먹었대..


영국 맨체스터의 새크빌 공원에는 앨런 튜링을 기리기 위한 동상이 있다는데 오른손에 올려져 있는 사과가 뭔가 안타까워


450px-Alan_Turing_Memorial_Closer.jpg

사진 출처 : http://en.wikipedia.org/wiki/File:Alan_Turing_Memorial_Closer.jpg


---------------------------------------------------------------------------------------------



John Von Neumann 과 Von Neumann Architecture


20세기 유일한 천재, John Von Neumann(1903 - 1957)

460px-JohnvonNeumann-LosAlamos.gif

사진 출처 : http://en.wikipedia.org/wiki/File:JohnvonNeumann-LosAlamos.gif


현대 컴퓨터의 탄생에 엄청난 영향을 끼친 또 다른 천재,요한 폰 노이만 John Von Neumann이야. 


사실 폰 노이만은 정말 천재로 유명해. 그냥 천재였대.


헝가리에서 태어난 폰 노이만은 6살 때, 8자리숫자 곱셈을 암산으로 하고 23살때는 이미 헝가리 부다페스트 대학에서 수학 박사학위를 받았어.


그리고 양자역학, 통계학, 경제학, 물리학, 수학, 그리고 컴퓨터과학 까지 폰 노이만의 업적이 미치지 못한 분야가 없어.


사실 폰 노이만이 태어나지 않았더라면 지금 우리가 쓰고있는 대부분의 기술은 존재하지 못했을지도 몰라.


폰 노이만의 천재성에 대한 일화는 정말 엄청 많아. 하나만 소개하자면,

---------------------------------------------------------------------------------------------

헝가리에서 노벨상을 받은 사람이 꽤 있었나봐;


1963년 헝가리의 물리학자 유진 위그너가 노벨 물리학상을 받고 나서 인터뷰 중에


"헝가리는 어떻게 그리 천재가 많을 수가 있나요?" 라는 물음에


"천재는 노이만 단 한 사람밖에 없습니다." 라고 대답했대;


사실 유진 위그너는 수학을 전공하다가 어린나이의 노이만을 보고 좌절감에 빠져서 물리학으로 전공을 바꿨대...근데 노벨상..

---------------------------------------------------------------------------------------------

하튼 존나 그냥 천재인가봐시발개새끼..


근데 이 아저씨가 잠깐 시간내서 튜링 머신을 살짝 개량한거지..


그리고 그 구조는.. 지금 우리가 쓰는 컴퓨터 안에 있는 cpu와 동일해.. 그 구조는 처음 저 아저씨가 1945년에 제시한 후 아직까지 바뀌지 않았어..시발


그리고 그 컴퓨터(특히 cpu)의 기본구조를 폰 노이만 구조 Von Neumann Architecture라고 불러.



폰 노이만 구조 (Von Neumann Architecture)


폰 노이만 구조는 일단 튜링 머신의 확장형이야.


510px-Von_Neumann_Architecture.svg.png

사진 출처 : http://en.wikipedia.org/wiki/File:Von_Neumann_Architecture.svg


??? 아까 무지하게 단순하게 득득득거리던 튜링 머신이랑은 그림이 많이 다르지;; 미안해.. 그래도 폰노이만 구조 그림을 천천히 하나씩 뜯어보자..


맨 왼쪽에는 Input Device 입력 기기가 있어. 이 그림에서는 정말 모든 입력기기를 의미하고 있어. 우리가 흔히 아는 키보드, 마우스 같은 거부터


하드디스크나 SSD같은 저장기기도 Input Device가 될 수 있어.


하드디스크나 SSD에서 무슨 입력을 받냐고?? 뭐긴뭐야 ㅎㅎ 하드디스크에 저장되어 있는 '일정표' 즉 프로그램을 입력받는거지 ㅋㅋ


프로그램 설치할 때 컴퓨터가 "님 이거 어디다 깔꺼에여?? 걍 C:/Program Files/ 안에다가 깔꼐여? 불만없져??" 물어보잖아?


그럼 프로그램이 거기 쏙 저장되어 있다가 니가 그걸 실행시킬때 그 '일정표' 정보를 꺼내서 컴퓨터( 쫌더 구체적으로 CPU + 메인메모리)한테 넘겨주는거야


그러니까 CPU+메인메모리 입장에서는 하드디스크 같은 저장을 위한 장치도 Input Device가 될 수 있는거지.


하여튼 Input Device로부터 프로그램, 즉 기계가 수행할 '일정표'를 받아왔다고 하자.


이제부터가 폰 노이만 구조 Von Neumann Architecture의 핵심이야.


폰 노이만은 이 '일정표'를 메모리에 저장하자! 라는 개념을 제시했어.


그리고 그게 위 그림에서 나와있는 Memory Unit이 뜻하고 있는거임.


이제 옛날 튜링머신과는 다르게 폰 노이만 구조거 접목된 기계는 더 이상 종이나 테이프로 된 '일정표'가 필요없어졌어.


모든 일정표(프로그램)들은 저장장치에 쏙 저장되어있다가 실행될 때 메인메모리로 샥 들어와있다가 실행이 끝나면 결과와 함께 Output Device로 이동하게 된거야.


Output Device는 모니터, 프린터같은 것도 있고, 위에서 말한 저장장치도 Output Device야.


니가 문서 하나를 열어서 거기다가 열심히 무언가를 쓴 다음 '저장' 기능을 누르면 다시 하드디스크에 저장되잖아?? 저장장치는 Input Device면서 Output Device가 될 수 있어.


여튼 폰 노이만 아키텍쳐의 핵심은 바로 '메모리'야.

---------------------------------------------------------------------------------------------

폰 노이만 아키텍쳐 이전의 튜링머신에서는 '일정표'를 종이나 자기테이프에다가 기록했어.


자기테이프가 어떤거냐면 옛날 중고딩때 시험보던 OMR카드 같은거야.


OMR카드에 컴퓨터가 해야할 기능들을 순서대로 찍은 다음에 컴퓨터에 득득득득 집어넣으면 컴퓨터가 그 카드를 읽어가면서 하나씩 기능을 수행했던거지.


중요한 건 이 'OMR카드'가 전기적으로 컨트롤이 힘들었다는거야. 읭? 무슨말이냐고? 잠깐 아래 그림같은 일정표를 생각해보자.


1234.png

사진 출처 : 나


자 이제 저 프로그램을 컴퓨터한테 넘겨줄꺼야. 컴퓨터는 1번 일정부터 순서대로 쭊쭊 기능을 수행하게 될거고..


근데 문제는 정말 '순서대로' 밖에 실행시킬수 밖에 없었다는거야..


사실 어떤 특정한 상황에서는 나는 컴퓨터가 134번 - 135번 - 137번 - 139번 - 138번 순서로 실행시키고 싶은데 말이야..


'일정표'가 종이로 되어있기 때문에 종이를 거꾸로 집어넣거나( 이것도 힘들고 ), 중간중간 종이를 찢어서 붙이거나 ( 이것도 또 힘든건 마찬가지 ) 하지 않는 이상 순서대로 밖에 실행을 못시키게 되는 문제점이 있었어..


하지만 메모리는 달라. 우리가 사용하는 메모리는 RAM( Random Access Memory 임의 접근가능 메모리) 야 .


여기서 Random은 스타할 때 랜덤처럼 '무작위'의 뜻이 아니라 '임의'라는 뜻이야. 즉 우리가 138번 주소에 접근을 원하면 언제든지 접근할 수 있다는 뜻이지.


그래서 메모리에 쓰인 프로그램은 이런 식으로 나타내

12345.png

사진 출처 : 나

컴퓨터는 1번부터 프로그램을 순서대로 수행하는데 16번 일정표를 봐봐. 컴퓨터가 16번 일정표를 보는 순간 다시 14번 일정표부터 수행하게 되는거야.


14번 왕복운동하기 - 15번 흥분되기 - 16번 14번으로 돌아가기 - 14번 왕복운동하기 - 15번 흥분되기 - 16번 14번으로 돌아가기 - .....


이걸 계속 반복할 수 있게 되는거지..


만약 종이 테잎이라면 16번 일정표를 읽는 순간 니가 직접(프린터에서 잼걸린 복사지를 끄집어내듯이) 종이테이프를 당겨서 끄집어 내거나 다시 일정표를 되돌리는 장치가 필요하겠지...


폰 노이만 아키텍쳐는 프로그래머들의 자유도와 컴퓨터의 성능을 모두 향상시킬수 있었고, 결국 현대컴퓨터는 모-두 폰 노이만 아키텍쳐를 따르고 있어.



vonneumann.png

사진 출처 : 나


---------------------------------------------------------------------------------------------


1) 사실 최초의 컴퓨터는 ENIAC이 아니야. 에니악이 개발된 1947년보다 무려 8년이나 앞선 1939년 ABC(Atanasoff-Berry Computer)가 개발되었었어. 따라서 ENIAC은 최초의 컴퓨터라 하기보다는 최초의 '슈퍼' 컴퓨터라고 하는게 정확해.


2) IEEE(Institue of Electrical and Electronics Engineers 전기 전자 공학 학회)는 미국에서 열리는 가장 권위있는 전기, 전자, 및 컴퓨터 공학 학회야. 보통 아이 트리플 이 라고 읽어.


3) 컴퓨터의 아버지가 앨런 튜링이라면 컴퓨터의 어머니는 에이다 러브레이스 백작부인(1815-1852)라고 해. 에이다 백작부인은 '컴퓨터'라는 것이 발명되기도 한참 전인 19세기에 해석기관에 대한 연구에서 '베르누이 수'를 구하는 알고리즘을 프로그래밍했다고 해. 하지만 아쉽게도 이런 업적은 아직 논란이 많이 일고있고 (그녀가 컴퓨터과학자라기보다는 수학자라고 보는 것이 맞다는 평이 더 많아) 최초의 컴퓨터과학자라는 칭호는 받지 못했지. 대신에 '최초의 프로그래머'라고 불리며 그녀의 이름을 딴 Ada(아다 아님. 에이다임)라는 컴퓨터 언어도 있어.


4) 튜링은 튜링 머신에 대한 개념 이외에도 컴퓨터공학에 기여한 바가 엄청나. 초기 컴퓨터를 직접 설계하기도 했고, 암호학과 정보통신에 대해서도 기여를 했어. 심지어 말년에는 인공지능에 대한 연구를 하기도 했어.


---------------------------------------------------------------------------------------------

세줄 요약

1. 컴퓨터는 2명의 천재가 만들었다 해도 과언이 아님.


2. 한명은 영국의 앨런 튜링


3. 한명은 헝가리의 폰 노이만


쪼끔더 자세하게 쓰려다가 솔직히 쫌 힘들어서 여기까지 할게. 질문이나 태클은 언제나 환영함. 다음에는 컴퓨터 언어에 대한 간단한 이야기를 써볼까함.