버그 잡이

CODE(찰스 펫졸드 지음) 서평 1편 #하드웨어와 스프트웨어에 숨어 있는 언어 본문

독서

CODE(찰스 펫졸드 지음) 서평 1편 #하드웨어와 스프트웨어에 숨어 있는 언어

버그잡이 2020. 4. 21. 22:00

비전공자 출신으로 CS 부분에 대한 지식이 약한데 독서를 통해서 이를 보충하고자 한다.

 

그 첫번째 책으로 "CODE - 하드웨어와 스프트웨어에 숨어 있는 언어(찰스 펫졸드 지음)" 이다.

 

노마드 코더를 운영하는 니콜라스가 추천하는 책이고 컴퓨터가 작동하는 원리에 대해 이해하기 좋은 책이라고 한다.

 

자 그럼 시작해보자.

 

 

뭐에 관한 책인가요?

 

"CODE라는 책은 컴퓨터가 어떻게 동작하는지 설명하는 책이다!" - 5p
"이 책 CODE의 구성과 같이 컴퓨터를 구성하는 각 계측을 이동하면서 하나씩 살펴나가면 많은 이들이 생각하는 것보다는 컴퓨터가 이해하기 쉽다는 사실을 느끼실 겁니다." - 6p

 

그렇다 이 책은 컴퓨터가 어떻게 동작하는지 설명하는 책이고 컴퓨터를 구성하는 각 계층을 하나씩 살펴보면서 컴퓨터에 대해서 이해해나가는 책이다.

 

이 책의 챕터는 총 25개로 구분되어있다. 그 중 1~8장은 "부호" "전신" "이진수" 라는 세가지 도구에 대해서 알아본다. 이 세가지 도구는 최초의 컴퓨터를 탄생시키는 근본이 되는 것들이다. 

 

 

 

1~3장. 부호

 

부호란?

 

이 책은 창문 너머로 반 대편 집에 있는 친구와 더 이야기하고 싶은 아이들의 이야기로 시작한다.

전화도 없고 밤이라 소리를 칠 수도 없는 상황이다.

 

'이들은 어떻게 대화를 나눌 수 있을까?'

 

손전등을 통해서 수신호를 정할 수 있다. 알파벳 A는 깜빡임 1번,  B는 깜빡임 2번... Z는 26번...

하지만 이는 'How are you'라는 간단한 문장을 전송하기 위해서 100번 이상 손전등을 깜빡여야 한다..

 

더 좋은 방법이 있습니다. 바로 '모스 부호'입니다. 모스 부호는 점과 선의 조합으로 만든 부호 체계이다.

이는 위 방법보다 효율적으로 문장을 전달할 수 있다.

 

이 책에서 부호라는 용어는 일반적으로 사람과 컴퓨터 간에 정보를 전달하는 체계를 의미합니다. 달리 말하자면 부호란 의사소통을 가능하게 하는 것이라 할 수 있습니다. - 20p

 

 

부호와 2진수

 

모스 부호의 특징으로 다시 돌아가 보면 모스 부호는 점과 선이라는 두 가지 조합으로 모든 알파벳을 표현할 수 있다. 여기서 중요한 것은 '두가지'라는 점이다.

 

두 가지 다른 것들이 적절히 조합되어 모든 형태의 정보를 전달할 수 있는 것이다. - 26p

 

두 가지의 조합이하는 것은 아래와 같은 식으로 표현될 수 있다.

 

표현할 수 있는 부호의 수 = 2^점과 선의 수

 

이를 통해 점과 선의 수가 늘어남에 따라 표현 가능한 부호의 수를 알 수 있다.

 

 

 

부호의 속성

 

2열 3행의 점자 부호. 총 6개의 점이 돌출됐는냐 아니냐에 따라서 2*2*2*2*2*2 = 64 총 64가지의 경우가 표현 가능하다.

 

점자 부호의 특성을 보면 모스 부호처럼 이러한 기호가 단순 1대1 대칭 그 이상의 기능으로 활용될 수 있음을 알 수 있다.

 

대문자 표시 부호가 있어 바로 뒤의 한 글자에 대하여 대문자로 해석될 수 있도록 하고(6번째 점)

shift 부호라 부르는 선행 부호는 뒤에 나오는 문자를 문자에서 숫자로 숫자에서 문자로 변경시키고 이는 다음 시프트 부호가 나올때까지 계속 된다.

 

(shift 버튼이 여기서 유래되었나 보다)

 

 

 

 

4~6장. 전신

 

전신이란?

 

회로에서 전기란 전자가 원자에서 다른 원자로 이동하는 것을 말합니다. - 50p
전지를 만들 때는 뺄셈 기호로 표시된 부분에서 여유전자를 생성시키고, 반대쪽의 덧셈 기호로 표시된 부분에서는 추가적인 전자를 요구하는 형태의 상호작용이 일어날 수 있는 화학작용을 선택합니다. 이런 방법으로 화학 에너지가 전기 에너지로 변환되는 것이지요 - 51p
전자가 음극에서 출발하여 양극 쪽으로 공급될 수 있는 전기 회로가 구성되어 있을 때만 이러한 상호작용이 발생하게 되는 것입니다. - 52p
일반적으로 전지가 회로에 전기를 공급한다고만 생각하기 쉽습니다. 하지만 이제 회로라는 것이 전지에서 화학적 상호작용을 발생시킬 수 있도록 방법을 제공하기도 한다는 것을 알게 되었습니다. - 54p

 

전기란 전자가 흐르는 것인데 전지는 음극과 양극의 화학작용으로 회로는 이를 연결함으로써 전기의 흐름을 돕는다.

이 구조가 바로 최초의 전기 통신 수단인 "전신" 이다.

 

 

 

 

전선을 뉴욕에서 캘리포니아까지 연결하려면 어떻게 해야할까?

 

전선을 길게 늘리면 그에 비례하여 필요한 높은 전압이 요구된다.

새뮤얼 핀리 브리즈 모스라는 사람은 '전자기 현상'을 이용하여 이 문제를 해결하고 워싱턴 DC와 메릴랜드를 통하는 통신을 성공시킨다.

 

"전압은 그렇다 치고 그 긴 전선은 어떻게 연결할건데?"

 

여기서 중계소라는 개념이 등장한다. 가는 길 도중에 중계소가 설치되고 중계소는 받은 메시지를 다음 중계소에 보내준다. 하지만 이는 '릴레이'라는 장치를 통해서 자동화 될 수 있다. 

릴레이는 일종의 스위치로 들어오는 신호를 받아 다음 중계소의 신호를 보내는 스위치를 작동시킬 수 있는 장치이다.

 

 

 

 

7~8장. 이진수

 

십진수

 

숫자는 일종의 부호이다. 내가 가진 닭이 몇마리인지 표시하려면 숫자가 필요하고 사람들은 손가락부터 시작해서 이를 나타낼 수 있는 부호 체계를 발전시켰을 것이다.

이러한 부호 체계의 정점은 아라비아 숫자이다. 0 이라는 개념의 발견으로 위치에 따른 표기가 가능하고 이로 인해 10을 표시하기 위한 특별한 기호가 필요하지않다. 또, 로마숫자체계에서는 힘든 곱셈과 나눗셈이 쉬워졌고 이는 대수학의 발전으로 이어진다. 그래서 로마숫자체계를 쓰는 그리스 사람들은 기하학을 높은 수준까지 발전시킨 반면 대수학에 대해서는 잘 알지 못하였다.

 

10이라는 숫자는 우리의 손가락 갯수와 땔래야 땔 수 없는 관계다. (5를 뜻하는 five와 주먹을 뜻하는 fist의 어원이 같다고 한다.) 그래서 모든 숫자 체계는 10을 표시하기 위한 기호 또는 체계가 있다. 즉, 인간들은 10이라는 숫자 체계를 사용하는 것이 효율적이었기 때문에 10진수의 숫자체계를 발전시킨 것이다.

 

 

"컴퓨터도 이런 십진수 체계가 유용할까?"

 

이진수 체계는 산술 연산과 전기와의 차이를 채워줄 수 있는 연결고리가 됩니다. - 112p
이진수라는 세 음절씩이나 가지고 있는 단어 대신에 좀 더 짧고 새로운 단어를 만들어서 사용하기로 하였지요. ...... 완벽하게 사랑스러운 단어인 bit(비트)를 사용하기로 결정하였습니다. - 113p
반응형
Comments