Seongyeol Yi

컴퓨터의 손가락이 두 개인 이유

This post is not yet available in English and is shown in Korean.

painting

오래전부터 인류는 주변 세상을 경험하고 그 속에서 발견한 지식을 남기고자 했다. 동굴 벽에 사냥 장면을 새겨 넣거나 파피루스에 문자를 기록하여 지혜를 전달하던 순간들이 바로 그러한 노력의 일환이었다. 이는 세상을 이해하고 타인과 소통하려는 인간의 가장 기본적인 모습 중 하나였다.

LP

특히 소리나 빛처럼 연속적으로 변화하는 자연 현상을 있는 그대로 담아내려는 시도는 오랫동안 이어져 왔다. 예를 들어 레코드판은 가수의 목소리나 악기의 미세한 떨림을 레코드 표면의 모양이라는 연속적인 형태로 새겨 넣는다. 이처럼 현실 세계의 정보를 그 연속적인 특성 그대로 표현하는 방식들을 아날로그라고 부른다.

그런데 현대 문명의 핵심인 컴퓨터는 정보를 다루는 데 있어 이 아날로그 방식과는 전혀 다른 독특한 길을 선택했다. 바로 디지털 방식이다. 변화하는 현실 세계의 정보를 몇 가지의 명확히 구분되는 값으로만 표현한다는 아이디어다.

어떻게 이런 단순함으로 아날로그인 현실 세계를 담아낼 수 있다는 걸까? 왜 컴퓨터는 이런 방식을 택했을까? 어떻게 0과 1 두 숫자가 소리, 글자, 이미지, 그리고 우리가 상상하는 모든 것을 담아내는지 살펴보자.

세상을 쪼개는 컴퓨터

디지털은 세상의 정보를 작은 조각으로 나누어 단순한 숫자로 표현하는 방식이다. 이 쪼개진 조각 하나하나가 컴퓨터가 이해할 수 있는 가장 기본적인 정보 단위가 된다.

사진을 예로 들어보자. 우리가 필름 카메라로 사진을 찍으면 빛이 필름 표면에 연속적인 색조와 밝기의 변화로 이미지를 기록한다. 완전한 아날로그 정보다.

하지만 디지털카메라는 이미지를 아주 작은 네모난 점, 즉 픽셀로 먼저 나눈다. 그리고 각 픽셀은 담당하는 작은 영역에서 감지된 빛의 세기와 색상 정보를 하나의 숫자 값으로 변환하고 저장한다. 결국 피사체는 수많은 픽셀 값, 즉 방대한 디지털 데이터로 변환되는 것이다.

픽셀화된 이미지
64x32

그렇다면 컴퓨터는 왜 이렇게 세상을 잘게 쪼개어 디지털로 이해하려 할까?

바로 정보의 명확함과 외부 간섭으로부터의 강인함 때문이다. 아날로그 신호는 연속적이라 미세한 변화에도 민감하고, 주변의 작은 소리나 전기적 잡음에도 쉽게 원래 모습이 흐려지거나 변형될 수 있다. 하지만 디지털은 정보를 명확히 구분되는 상태로 표현한다. 덕분에 약간의 간섭이 있더라도 컴퓨터는 원래의 값을 분명하게 알아볼 수 있어 정보가 훨씬 안정적으로 유지된다.

이렇게 명확하게 표현된 정보는 손실 없이 다룰 수 있다. 종이 위의 글이나 그림을 복사기로 복사하고, 그렇게 나온 복사본을 다시 복사기에 넣어 또 복사하는 과정을 몇 번만 반복해도, 내용이 점점 흐릿해지고 번져서 결국 원본을 알아보기 어렵게 되는 것을 본 적 있을 것이다. 반면 디지털 정보는 수백만 번을 복사하거나 지구 반대편으로 전송해도 원본과 조금도 다르지 않은 내용을 완벽하게 유지한다.

그런데 0, 1, 2를 사용하는 3진법이나 0, 1, 2, 3을 사용하는 4진법도 디지털 방식일텐데 컴퓨터는 왜 두 가지 상태만을 사용하는 이진법을 핵심 원리로 삼았을까?

컴퓨터의 손가락은 두 개

사람은 손가락이 10개여서 10진법을 쓰니 2진법을 쓰는 컴퓨터는 손가락이 2개라고 생각할 수 있겠다. 컴퓨터가 이진법을 사용하는데에는 매우 현실적인 하드웨어 공학적인 이유가 있다.

컴퓨터는 전기로 작동하며, 전기 신호는 생각보다 내재적인 변동성을 지닌다. 전기 신호는 전선을 지나면서 약해지기도 하고, 부품이 오래되면 제 성능을 못 내기도 하며, 작동 중 발생하는 열 때문에 신호가 흔들리기도 한다. 이런 신호 품질 저하때문에 신호를 여러 단계로 나눈다면 다른 단계로 쉽게 오인될 수 있다.

이런 불안정함 속에서 가장 확실하게 정보를 구분하는 방법은 분명히 높거나(1) 아니면 분명히 낮거나(0)처럼, 두 가지 상태만을 사용하는 것이다. 신호가 다소 약해지거나 약간의 잡음이 섞여도, 1로 인식될 만큼 충분히 높거나 0으로 인식될 만큼 충분히 낮다면 컴퓨터는 정보를 정확히 판독할 수 있다. 이처럼 2진법은 신호의 작은 변화에도 훨씬 너그럽고, 덕분에 안정적인 컴퓨터를 만들 수 있다.

2진법 (2레벨)오류 0/24
10진법 (10레벨)오류 6/24

수신된 신호를 가장 가까운 레벨로 판독한다. 초록은 정확한 판독, 빨강은 오류이다.

노이즈±20%

결국 컴퓨터가 2진법을 쓰는 건 불완전한 현실 세계의 전기 신호로도 믿을 수 있는 기계를 만들려는 엔지니어들의 가장 실용적인 선택이었던 셈이다.

비트

앞서 컴퓨터가 0과 1이라는 두 가지 상태를 사용해 정보를 표현한다고 이야기했다. 바로 이 0 또는 1 하나하나, 즉 컴퓨터가 다루는 가장 작은 정보의 단위를 ‘비트(bit)’ 라고 부른다. 우리가 컴퓨터로 하는 모든 정교한 작업은 결국 이 작은 비트들을 다루는 과정이라고 볼 수 있다.

메가바이트, 기가바이트처럼 일상생활에서는 바이트(byte) 라는 단위가 더 익숙할 수 있다. 1바이트는 8비트로 이루어져 있다.

마무리

이렇게 해서 컴퓨터가 세상을 인식하는 가장 근본적인 방식인 아날로그와 디지털의 차이에서부터 시작하여, 왜 컴퓨터가 0과 1이라는 이진법을 선택했는지 그 현실적인 이유를 살펴보았다.

다음 글에서는 이 비트들을 가지고 어떻게 논리적인 판단을 내릴 수 있는지, 그리고 그 논리가 어떻게 실제 회로로 구현되는지 살펴보자.