|
*주의: 이 리뷰는 이 책에 대한 어떠한 정보도 제공하지 않습니다. 내게는 언제나 기원이 문제였다. 이것은 어디서 온 것인가? 저것은 무엇으로 만든 것인가? 그것은 왜 움직이는가? 전광석화처럼 달려 나가는 생의 발걸음을 멈춰 세운건 언제나 이런 뿌리에 대한 질문들이었다. 컴퓨터의 세계는 오로지 0과 1만으로 기술된다고 말한다. 그런데 왜 하필 0과 1일까. A와 B면 안되는 걸까? 아니 좀 더 깊이 내려가서 왜 항상 양자택일일까? 일자무식, 단순한 흑백론. 이것도 저것도 아닌 제 3의 무엇에는 컴퓨터를 못 견디게 할 만큼 어떤 악의적 개념이 숨어있단 말인가? 그런데 신기한건 컴퓨터는 오로지 0과 1만 가지고도 사과와 바나나와 원숭이와 거기다가 그 엉덩이가 빨갛다는 사실까지 표현한다는 것이다. 이런걸 보면 '음양론'이 떠오른다. 음과 양이 어우러져 태극을 이루고 그 태극이 온 세상 만물을 생성하듯이 컴퓨터는 0과 1로 우주를 만들어낸다. 지극히 현대적인, 게다가 지극히 서양적이기까지 한 이 사물의 원리가 어쩜 이리 동양 사상의 정수를 쏙 빼닮았는지... 어쩌면 컴퓨터는 서구 문명 사회가 음양론의 정수를 깨달아 만들어낸, 그 형이하학적 실체인지도 모르겠다. 0과 1이 음양론의 그림자라면 아스키코드는 구조주의 언어학의 편린이다. 이쯤되면 시니피에와 시니피앙을 떠올리지 않을 수 없지! 컴퓨터의 언어와 그 의미는 철저하게 임의로 결합한다. 예를들어 알파벳 소문자 'a'는 아스키 코드로 '97' 이진수로 표현하면 '1100001'이 된다. 아무리 뚫어져라 쳐다봐도 1100001에는 'a'라는 의미를 잉태할 어떠한 썸씽도 존재하지 않는다. 시니피앙이 시니피에의 바다에서 그 하나를 건져 내듯이 컴파일러는 이진수의 낚시대로 우리말의 의미를 낚고 있는 것이다. 한편 컴퓨터 진보의 역사와 이를 위한 인간의 집념에선 '모든 가치는 노동으로부터 창조된다'는 아담 스미스의 노동가치론의 미래가 보이기도 한다. 이렇게 생각해 보자. 언젠가 컴퓨터가 너무너무 발전해 컴퓨터 스스로 해야 할 일을 정하고 그들 스스로가 프로그래밍을 할 수 있다면, 기술 문명의 발전과 그에 따른 온갖 가치들을 노동의 산물이라고 부를 수는 없지 않겠는가? 자 이쯤보면 찰스 펫졸드의 'CODE'는 완전히 인문서다. 그것도 철학에 언어학에 경제학까지 잡탕한 종합 인문서말이다. 하지만 고백할게 있다. 사실 이 책에서 이런 사색을 이끌어 내는건 완전히 자의적이다. 아니 철저히 주관적이다. 아니아니 완전히 자의적이면서 동시에 철저히 주관적이고 심지어 대단히 이기적이기까지 하다. 한 마디로 개 눈에 똥만 보였다고 밖에... 이 책이 철학과 사상을 컴퓨터의 역사로 은유한 출판 역사상 가장 독특하고 메타적인 철학서라고 설명하는 건 사기다. 하지만 어떻하냐고! 0과 1에서 출발해 논리 회로를(AND, OR, NOR, NAND...) 만들고 그 논리 회로를 좁은 공간에 직접하기 위해 반도체를 만들고 반도체를 모아 CPU를 만들고 그 CPU로 컴퓨터를 만드는 과정 속에서 내가 본 건 음양과 소쉬르와 아담 스미스 인걸. 하여튼 기원을 찾아 떠나는 여행은 이렇게 두서 없다. 제대로 된 출구를 찾았는가 하면 어김없이 딴 세상이다. 자 주절주절 이야기를 딴 데로 돌리는 건 무안하다는 증거. 더 이상 썼다간 매 맞을까 두려우니 오늘 리뷰는 여기서 끝! |
|
처음 "CODE"라는 책을 보게되었을때 사실 프로그램 랭귀지를 생각하고 책을 집었다. 프로그래밍 언어를 새로운 각도에서, 또는 이야기로 풀어가는 책을 생각하고 봤지만 막상 책을 읽었을때, 단순히 프로그래밍 언어만을 위한 책이 아니라는 것을 깨닭게 되었다.
단순히 프로그램언어론이 아닌 "컴퓨터의 최밑단 부터 컴퓨터의 모든것을 이야기로 풀어가는 책" 이라고 이책에 대해 정의 하고 싶다.
가까운 상대에게는 인간의 언어로서(말) 생각이 전달되지만, 그것이 50M, 100M 거리가 멀어지면 당사자에게 생각을 전단하기 힘들다. 이러한 점에서 착안된것이 수신호나 전등을 이용한 신호인데 이를 좀더 체계적이고 단순화한게 모스 부호이다. 필자는 이러한 모스 부호가 2진의 신호라는 점을 강조하였다. 모스 부호만이 아닌 점자도 2진의 신호이고, 이러한 2진의 신호가 컴퓨터에 적용되는 과정을 이야기로 풀어 설명하였다. 2진의 신호에서 전기 회로, 그리고 그것을 이용한 논리회로, 메모리, 그리고 cpu까지 차근차근 설명한게 이책의 특징이다.
단순히 컴퓨터에대한 역사를 서술한것도, 그렇다고 진부한 컴퓨터의 내부 지식을 전달한 전공 서적이라기 보다 이야기 책을 떠올리게 만드는 팻졸드의 CODE
컴퓨터를 처음 시작하는 사람이나 과거의 지식을 떠올리고 싶은 독자에게 추천할 만한 책이지만, 전문적으로 과정을 밟아온 독자에게는 조금 부족하거나 지루한 책이 될 수도 있다.
|
|
이 책을 선택하기까지 좀 고민했다. 서점에서 살펴보지 않고 오직 인터넷으로만 판단하려니 쉽지 않았다
컴퓨터 구조를 쉽게 설명한 책을 원했는데 책의 목차를 봤을때 감이 안왔고 다른 분들의 리뷰를 보니 쉽다는 평, 기본지식이 없으면 어렵다는 평 상이한 평이 함께 공존한 책이어서 선택하는데 많이 주저했다.
하지만 책을 읽어본 결과 대만족이었다. 600페이지 정도의 얇은 책에 물리, 회로이론의 내용까지 들어간 참 대단한 책이다. 이걸 기본지식이라 다른분들이 평했구나 하는 생각이 들었다.
아주 기본적인 내용부터 서서히 발전해 나가는 구성이 참 괜찮았다. 그 발전과정을 서서히 알아가면서 뭔가 컴퓨터에 대한 통찰을 얻게 만들어 주는 좋은 책이라 생각한다.
이책은 내가 구입한 많은 컴퓨터 관련 서적 중 구입시 가장 주저했지만 가장 만족스러운 책 중 하나다 |
|
개발자로서 한번쯤은 읽어볼만한 책이다. 릴레이의 원리부터 고급 프로그래밍 언어까지 작동방식과 발전방향을 차근차근 비교적 쉽게 설명한다. 트랜디한 스킬을 익히거나, 개발 참고서로 쓸 책은 아니다. 단시간에 개발자의 소양을 늘리기 위해 섣부르게 읽을 책 또한 아니다. (이 책 한권으로 얻을 수 있는 지식은 여러 분야의 지극히 작은 조각일 뿐이다.) 천천히 궁금증을 늘리기 좋아하는 사람이거나 생각할 능력을 시험해보고자 하는 사람이라면 읽어볼만한 책이다. 또한 소프트웨어 쟁이로서 스스로의 능력을 점검하고 부족한 부분을 찾고자 한다면 반드시 읽어야 할 책이다. |
|
하드웨어에 관련된
프로그래밍 쪽으로 나온 책은 종종 볼 수 가 있다.
현재 읽은 'CODE' 라는 책도 그렇지만 보다 원리적인 내용을 기반으로
나도 전자공학과를 나왔지만
이 책은 그러한 방법에 사용된 숫자와 법칙 등을 천천히 단계를 밟아가며
이 책을 읽으면서 참 재밌게 읽은 책이다.
|
|
Windows API를 사용하는 개발자라면 누구나 한번쯤은 들어보았을 Programming Windows의 저자인 찰스 펫졸드가 썼다는 것만으로도 이 책에 대해서 어느 정도의 기대를 가지고 읽어볼만 하다.
일반적인 Reference 책들의 경우 중간부터 본다거나 필요한 부분만 찾아서 보는 방법이 있는데 반해, 이 책의 경우 그런 방식으로 읽기에는 그다지 좋지 않다.
이야기의 흐름에 맞추어 책을 이해해 나갈수 있다. 물론 이미 알고 있는 내용들은 건너띄는 방식으로 읽을 수 있을 것이다.
간단한 스위치 회로를 통하여 논리 회로를 구현하는 방법을 설명하고, 그리고 점점 더 확장하여 실제 컴퓨터로까지 넘어가게 된다. 컴퓨터 프로그래밍을 하는 사람들에게는 익숙한 용어들을 자세히 풀어서 설명해주고 있다. 다만 아쉬운 것은 쉬운 내용을 풀어서 쓰다보니 내용에 비해 책이 너무 두꺼워서 약간은 지루한 감이 든다는 것이다. 이 책은 컴퓨터를 전공하는 대학생(특히 신입생)이나 컴퓨터를 전공하지 않은 프로그래머에게 추천할 만 하다. 책의 내용이 논리 회로 라던가 회로 이론과 같이 컴퓨터 전공 수업에서 배우는 내용을 다루고 있기 때문에, 대학생의 경우 미리 예습을 하거나 수업시간에서 빠르게 지나간 부분에 대해서 느긋하게 읽으면서 이해할 수 있다는 장점이 있다. 반면, 컴퓨터를 전공한 회사원의 경우 다 아는 내용만 나와서 의외로 책에서 별로 볼 것이 없다고 느낄 수도 있을 것이다. 대학을 졸업한지 오래되어 기억이 가물가물하거나 이런 부분에 지식이 없는 사람들이 컴퓨터 프로그래밍을 하는데 있어 기본이 되는 원리같은 것을 쉽게 설명하여 체계적으로 책의 내용을 따라가면서 이해할 수 있도록 쓴 책이라고 할 수 있겠다. |
|
책 제목만 보고 상상했던 내용과는조금 달랐다. 책의 내용은Language 가 아닌, 대학교 1~2학년때 주로 베우는 컴퓨터 구조, 디지털논리설계에 대해서 서술 하고 있다.
어떻게 컴퓨터라는 기계가 출발하게 됐는지 역사를 예를 들면서 꽤 재밌게 설명하고 있다.
문제는 과연 이 책을 읽을만한 대상자가 누구일까 라는 것인데, 위에서 쓴 것처럼 디지털 논리설계와 컴퓨터구조에 대한 기초적인 지식이 없으면, 꽤나 지루할 수 있는 내용이다.
페졸드의 책 대부분이 그렇듯이 굉장히 직설적으로 쓰여있어, 집중하지 않으면 지루해지기 일 수 인데(물론 내용이 나쁘다는 말은 아니다.) 이책은 예전에 쓴 책이라(혈기 왕성할때?ㅋ) 꽤 비유가 많이 들어가 있으나, 지식이 전무한 사람에게는 역시 지루할 수 있다.
소장가치는 있다고 본다. 컴퓨터구조 및 디지털 논리설계관련 된 내용은 사실 지루할 수 밖에 없는데 페졸드는 꽤 포괄적이면서 자세하게 책 한권에 다 넣어놓았다.
결론은 음 이책을 못봤다고 해서 실력이 뒷쳐지거나 조급해하거나 그럴 필욘 없다.ㅋ 다만, 정리가 잘된 컴퓨터 구조책을 한권으로 마무리 하고 싶다정도로 보면 될것 같다. |
| 유명한 찰스 페졸드 이름이 무색하지 않을 만큼 신호 전달부터 컴퓨터의 개발과 프로그래밍 언어에 이르기까지 다소 넢고 깊은 주제를 다루고 있다. 책 제목을 보고 소프트웨어 코드를 생각하기 쉬운데 여기서 코드는 좀 더 광의의 의미로 이해해야 한다. 서두의 수시호, 점자 등의 기본적인 기호에 관련된 부분을 제외하고는 대부분 회로, 진공관, 트랜지스터, 프로세서 등의 하드웨어를 설명하는 내용이 많다. 전산전공을 하지 않고 언어만 배운 프로그래머라든지 졸업한지 오래되어 전공 커리큘럼이 가물가물한 사람도 보아둘만한 소양이라 생각한다. 소장의 가치? 물론 있다. |