“ECC 프로그램을 이용해 박물관 보안 시스템을 보완했어요.”
박물관 보안 시스템을 어떻게 보완했는지 여라가 묻자 제이는 이렇게 대답해요. ECC라는 단어를 들어본 적 있나요? ECC는 ‘Error Correcting Code’의 줄임말로 우리말로 하면 ‘오류 정정 부호’예요.
통신과 정보 처리 체계에서는 정보를 숫자, 글자 같은 부호(code)로 표현해 작업하는데요. 통신을 하다 보면 자기장 등에 의해 신호가 왜곡되거나 통신 수발신기가 고장나는 등의 이유로 오류가 발생할 때가 많아요. 이때 ‘부호 이론’이라는 수학 이론이 등장하면서 이런 문제를 해결해 나가고 있어요. 이 부호 이론에서 사용하는 부호가 바로 ECC예요.
부호 이론은 미국 수학자 클로드 섀넌이 1948년에 발표한 것으로, 부호 이론을 이용하면 통신 체계가 스스로 잘못된 신호를 인식하고 바르게 수정하도록 하는 알고리즘을 만들 수 있습니다. 1970년대 미국항공우주국(NASA)에서 이 ECC를 적용한 알고리즘을 이용해 화성탐사선이 보내온 화성 사진을 정확히 해독해내면서, 본격적으로 정보통신 분야에 쓰이기 시작했어요.
많은 사람이 잘 모를 수 있지만, 우리가 주고받는 정보는 부분적으로나마 잘못 전달될 수 있어요. 1을 보냈는데 상대방은 0을 받는 것처럼요. 사실 인류가 처음 서로 소통을 하게 된 때부터 잘못 전달될 확률이 있었어요. 지금도 일상생활에서 대화를 할 때 상대방 말을 모두 100%로 정확히 알아듣는 건 아니잖아요. 아주 짧은 문장이 아니면 모두 다 정확히 알아들을 확률이 그리 높지 않아요.
그러나 우리의 두뇌에는 놀라운 기능이 있어 잘 듣지 못한 말도 고쳐서 제대로 알아듣게 해요. 현재 상황, 전후 문맥, 표정 등을 통해 잘 안 들리는 말도 무슨 내용인지 파악할 수 있지요. 우리 뇌가 이런 작업을 너무나도 빨리 하기 때문에 처음부터 제대로 들었다 착각하게 되는 경우가 대부분이에요. 제가 본 중에 최고의 오류를 정정하는 과정은 1, 2살 된 어린아이가 웅얼거리는 말을 정확히 알아듣는 보호자의 모습이었어요.
그러나 이런 작업도 완벽한 게 아니라서 상대방의 말을 잘못 알아듣고 오해를 하는 경우가 많이 생겨요. 우리가 주고받는 대화에서처럼 디지털 세계에서의 상호 소통에서도 항상 오류가 발생하고 또 그 오류를 빠른 속도로 정정하고 있답니다.
한 가지 간단한 예를 들게요. 민준과 서연이 서로 문자를 주고받으며 1 또는 0만을 보내기로 약속했다 해요. 그런데 민준이 0이나 1을 보냈는데 서연이 반대로 받을 가능성이 있어요. 그 확률이 10%라 할 때 민준과 서연은 어떻게 해야 할까요? 잘못 전달될 10%의 확률을 감수하고 소통해야 할까요? 그렇지 않아요. 소통이 잘못될 확률을 줄일 수 있는 여러 가지 방법이 있어요.
비교적 쉬운 방법은 우리의 일상적인 대화에서 힌트를 얻을 수 있지요. 같은 말을 2번, 3번 반복하는 것에서요. 바로 민준이 서연에게 같은 부호를 3번씩 보내겠다고 알려주는 거지요. 그래서 0을 보내고 싶으면 000, 1을 보내고 싶으면 111, 이렇게 3번씩 보내는 거예요.
그럼 서연은 어떻게 해야 할까요? 당연히 3번 받은 것 중 많은 숫자를 민준이 보냈다고 여기는 거지요. 서연이 000, 100, 010, 001 중 하나를 받았다면 0을, 그리고 011, 101, 110, 111 중 하나를 받았으면 1을 민준이 보냈다고 여기는 겁니다. 이때 3번씩 보낸다는 정보가 담겨 있는 부호가 ECC예요. 이와 비슷하게 오류를 정정할 수 있도록 사용하는 부호를 모두 ECC라고 해요.
근데 소통이 잘못될 확률은 얼마나 될까요? 각각이 ‘독립적’으로 일어난다면 000을 보냈는데 011을 받을 확률은 90% 10% 10% = 0.9%가 돼요. 같은 방법으로 101을 받을 확률도 0.9%, 110을 받을 확률도 0.9%가 됨을 알 수 있어요. 그리고 111을 받을 확률은 10% 10% 10% = 0.1%가 되지요. 4가지 경우 중 어느 2개라도 동시에 일어날 수 없으니 각각의 확률을 더해 구하면 소통이 잘못될 확률이 2.8%가 됩니다. 5번이나 7번씩 또는 더 많이 반복해 메시지를 보내면 소통이 잘못될 확률은 점점 더 줄어들어 0으로 수렴하게 됩니다.
그러나 이러한 방식은 좀 문제가 있어요. 시간도 몇 배로 들고 보내는 비용도 비례해 늘어나서요. 그래서 다차원 공간의 벡터(vector)를 이용하는 등 여러 효율적인 방법이 현재 개발돼 있어요.
이제 ‘신의 책’ 시즌1이 끝났으니 잠시 쉬어야 하네요. 시즌2가 나올 때까지 독자 여러분 모두 잘 지내시고 곧 다시 만나요. 그동안 너무 감사했습니다.