
CODE 코드 — 점자와 모스 부호에서 컴퓨터까지, 정보를 신호로 바꾸는 원리
통합과학1 · 측정 표준과 정보 · 컴퓨터공학
책 소개
프로그래머이자 기술 저술가인 찰스 펫졸드가, 컴퓨터 한 대가 어떻게 만들어지는지를 가장 단순한 신호에서 시작해 한 단계씩 쌓아 올리는 책입니다. 저자는 손전등을 깜빡이는 신호, 모스 부호, 점자처럼 누구나 아는 부호에서 출발해 전기 회로와 논리 게이트, 메모리, CPU까지 차근차근 이어 갑니다. 어려운 수식 없이도 '컴퓨터가 0과 1만으로 어떻게 일을 처리하는가'라는 의문을 비전공자의 눈높이에서 풀어 줍니다. 컴퓨터공학을 진로로 정한 학생이 '정보를 기계가 다룰 수 있는 형태로 어떻게 바꾸는가'라는 의문으로 탐구를 시작하기 좋은 책입니다.
책은 정보를 주고받으려면 약속된 부호가 필요하다는 점에서 이야기를 시작합니다. 손전등을 길게·짧게 깜빡여 메시지를 보내는 모스 부호, 점의 있고 없음으로 글자를 나타내는 점자처럼, 사람들은 컴퓨터가 나오기 한참 전부터 정보를 '있다·없다' 두 가지 상태의 조합으로 표현해 왔다는 것입니다.
저자는 이런 두 가지 상태가 전기 회로의 켜짐·꺼짐과 그대로 들어맞는다는 점을 보여 주고, 전구와 스위치를 이어 만든 회로로 AND·OR·NOT 같은 논리 연산을 설명합니다. 그리고 이 논리 회로를 차곡차곡 모으면 덧셈을 하는 장치, 값을 기억하는 장치, 나아가 CPU까지 만들어진다는 흐름을 단계별로 풀어냅니다.
통합과학에서는 우리가 주고받는 정보가 두 가지 형태의 신호로 전달된다고 설명합니다. 소리나 빛의 세기처럼 값이 끊김 없이 이어지는 신호를 아날로그 신호라고 하고, 정해진 몇 단계의 값으로만 나타내는 신호를 디지털 신호라고 합니다.
마이크나 센서가 받아들인 아날로그 신호는 전기 신호로 바뀌고, 다시 디지털 신호로 변환되어 컴퓨터가 저장하고 처리할 수 있는 형태가 됩니다. 디지털 신호는 잡음이 섞여도 원래 값을 가려내기 쉽고, 복제해도 정보가 손상되지 않으며, 여러 정보를 묶어 빠르게 전달할 수 있다는 장점이 있습니다. 오늘날 사진, 음악, 글이 모두 디지털 신호로 바뀌어 저장되고 전달되는 까닭이 여기에 있습니다.
컴퓨터는 어떻게 글자와 그림을 켜짐·꺼짐만으로 다룰 수 있을까요? 통합과학에서 배우는 아날로그 신호와 디지털 신호의 차이로 그 출발점을 설명할 수 있습니다.
소리나 빛처럼 끊김 없이 변하는 아날로그 신호는 값이 무한히 많아 기계가 그대로 다루기 어렵지만, 디지털 신호는 정해진 몇 단계의 값으로만 나타내므로 기계가 정확히 구분할 수 있습니다. 이 책에서 다루는 모스 부호와 점자가 바로 그런 예인데, 신호가 있고 없음이라는 두 단계만으로 글자를 나타냅니다. 두 단계만 쓰면 전기 회로의 켜짐과 꺼짐에 그대로 대응시킬 수 있어, 정보를 회로가 처리할 수 있는 형태로 바꿀 수 있습니다. 응용으로 들어가면, 컴퓨터는 이 두 단계를 0과 1로 약속하고, 0과 1을 여러 자리로 묶어 숫자와 글자, 색을 나타냅니다. 자리 수를 늘릴수록 표현할 수 있는 경우의 수가 늘어나기 때문에, 같은 0과 1만으로도 한 장의 사진을 이루는 수백만 개의 점까지 빠짐없이 표현할 수 있는 것입니다.
정보를 신호로 바꾼다는 말은, 우리가 보고 듣는 내용을 기계가 구분하고 저장할 수 있는 형태로 옮긴다는 뜻입니다. 소리나 빛의 세기처럼 끊김 없이 변하는 값은 종류가 무한히 많아, 작은 잡음이 섞이면 원래 값과 구별하기 어렵습니다.
그래서 컴퓨터는 정보를 '있다·없다' 또는 0과 1이라는 두 단계로만 나타내는데, 이렇게 하면 신호가 조금 흐트러져도 두 값 중 어느 쪽에 가까운지만 보면 되어 원래 정보를 정확히 되살릴 수 있습니다. 다만 두 단계만으로는 표현할 수 있는 경우가 둘뿐이라, 0과 1을 여러 자리로 묶어 사용합니다. 자리 수가 한 자리 늘 때마다 나타낼 수 있는 경우의 수는 두 배로 늘어나, 여덟 자리면 256가지, 열 자리면 1,024가지를 구별할 수 있습니다.
글자 하나하나에 서로 다른 숫자를 약속해 두면 문자도 0과 1로 적을 수 있고, 사진은 점 하나하나의 색을 숫자로 바꿔 저장합니다. 이 책에서 본 모스 부호와 점자를 출발점 삼아, 익숙한 글자나 색을 직접 0과 1의 묶음으로 바꿔 보고, 자리 수가 늘면 표현 범위가 어떻게 넓어지는지를 정보를 신호로 바꾸는 원리의 관점에서 탐구할 수 있습니다.