본문 바로가기

카테고리 없음

요한 존: 오늘의 에세이-정보 I: 통신, 코드 그리고 계산

 

정보: 만물의 척도? 1부: 통신, 코드 그리고 계산

Information: The Measure of All Things? Part I: Communication, Code and Computation

 

―― 요한 J. 존(Yohan J. John)

 

은유(metaphor)는 인간 소통의 특징이고, 과학적 사고의 필수적인 도구이다. 더 형식적인 자매인 유추(analogy)와 함께 은유 덕분에 우리는 기지의 것에서 미지의 것으로 이어지는 언어적 및 개념적 교량을 만들어낼 수 있다. 과학의 가장 위대한 획기적인 업적들 가운데 일부는 겉보기에 관련이 없는 개념들 사이에서 이루어진 유추적 도약으로 시작했다. 아이작 뉴턴(Issac Newton)이 지구를 공전하는 달의 운동이 그냥 영구적으로 계속 낙하하도록 강하게 던져진 공의 운동과 유사하다는 것을 깨달았을 때 그는 천상을 지상으로 끌어내렸다. 이런 추리 노선 덕분에 뉴턴은 지상의 현상과 천상의 현상 둘 다에 대해 동일한 결정론적 법칙들이 성립한다는 것을 깨닫게 되었다. 이런 발견의 여파로 일어난 과학 혁명은 계몽주의 사상가들로 하여금 우주가 시계 장치―그것의 구성 요소들이 조정된 기계적 정확도로 회전하는 톱니바퀴와 기어들로 얽혀 있는―처럼 작동한다는 결론에 이르게 하였다. 바이올린 현의 진동과 소리 파동 및 빛 파동의 전파는 파동 운동이라는 유추에 의해 연결되었다. 또한 유추는 원자 시대에 진입하는 데 도움이 되었다. 어니스트 러더퍼드(Ernest Rutherford)는 원자를 태양계에 비유했는데, 태양을 공전하는 행성처럼 전자들이 중심 핵을 공전한다. 통신과 유전학이라는 쌍둥이 혁명은 세계에서 가장 강력하고 대중적인 과학적 은유들 가운데 하나를 생성했는데, 그것은 DNA 분자―한 세대에서 그 다음 세대로 이어지는 유전의 담지자―가 하나의 코드, 또는 청사진, 또는 심지어 "생명의 서"라는 관념이다.

 

일련의 에세이들을 연재하는 동안 나는 코드라는 은유와 그것이 어떻게 생물학을 지배하게 되었는지 탐구하고 싶다. 코드 은유에 대한 탐구는 두 가지 관련된 의문들을 중심으로 하여 전개된다. 첫째, 세포, 세포막, 단백질 그리고 화학 결합에 관한 기초적인 사실들이 어떻게 '인코딩(encoding)', '디코딩(decoding)', '전사(transcription)', '번역(translation)' 그리고 '편집(editing)' 같은 낱말들―전자통신과 암호학의 언어―의 바다에 빠지게 되었는가? 둘째, 코드 은유의 성공에도 불구하고, 그것은 생물학에서 가장 흥미롭고 어려운 문제들 가운데 일부를 은폐할 수 있지 않겠는가? 우리가 생물학을 다루기 전에, 얼마간 기초를 마련하여 현대 과학자들이 "정보"와 "코드" 같은 낱말들을 사용할 때 무엇을 의미하는지 이해하는 것이 유용할 것이다. 그래서 이 연작의 첫 번째 부분에서 나는 정보라는 현대적 개념 구상으로 이어진 맹아적 작업을 살펴보고 싶다.

 

19세기에 시작된 일련의 기술적 혁명의 물결이 인간들이 서로 소통하는 방식을 변형시켰다. 전신과 전화 덕분에 거의 순간적인 전지구적 정보 교환이 가능해졌다. 기술 그리고 급격한 변화 속도는 새로운 의문들을 과학적 사고의 전면에 내세웠다. 우리가 전보를 보낼 때, 또는 전화를 걸 때 정확히 무슨 일이 일어나고 있는가? 우리가 메시지를 송신할 때, 전선을 따라, 또는 에테르를 통과하여 전송되고 있는 것은 무엇인가? 다시 말해서, 정보는 무엇인가?

 

'정보(information)'는 'inform'이라는 동사에서 유래되었고, '지도하다' 또는 '가르치다'를 의미하는 옛 프랑스어 informer에서 유래되었다. 이 프랑스어는 '형성하거나 구성하다'를 의미하는, 그리고 은유적으로 어떤 관념의 '윤곽을 그리다' 또는 '밑그림을 그리다'를 의미하는 라틴어 informare에서 유래되었다. 어떤 메시지가 정보를 제공하는(informative) 것이기 위해서는 의미를 품고 있어야 하는데, 즉 그것이 지시적이고, 형식을 갖추고 있으며, 구조화된 무언가를 전달해야 한다. 정보라는 개념은 그것의 용도―수신자의 마음에 관념들을 형성시키는 것―와 밀접하게 연결되어 있다.

 

정보에 대한 현대적 이해는 이런 연결을 단절할 것을 요구했다. 정보는 의미로부터 단절되어 벌거벗은 형태로, 즉 한 장소에서 다른 한 장소로 송신될 수 있는 어떤 종류의 '무언가'로 파악되어야 했다. 전자통신의 선구자들이 깨달았듯이, 이 '무언가'는 물질 또는 에너지, 즉 낡은 시계 장치 우주의 믿음직한 톱니바퀴와 기어들과 매우 달랐다. 어떤 메시지의 "내용(content)'은 매체의 본성에 의존하지 않는 듯 보였다. 결국, 전서구, 기계적 신호 장치 그리고 전보는 모두 동일한 기본 문자 또는 낱말들을 전송하는 데 사용될 수 있다.

 

정보 이론은 1948년에 클로드 섀넌(Claude Shannon)이 "통신의 수학적 이론(A Mathematical Theory of Communication)'이라는 제목의 논문을 발표했을 때 탄생했다. 섀넌은 "통신의 근본적인 문제는 한 지점에서 선택된 메시지를 다른 한 지점에서 정확히 또는 거의 정확히 재생산하는 것의 문제이다"라고 주장했다. 섀넌은 "메시지"라는 낱말로 무엇을 의미하는가? 그는 전보 또는 전화를 생각하고 있는가? 그것들은 초고속 통신의 시대로 진입하게 한 두 가지 기술이었다. 모스 코드(Morse code) 같은 전신 코드는 알파벳의 각 문자를 일련의 가청적 '점(dot)'과 '대시(dash)'들로 번역한다. 예를 들면, 문자 'A'는 하나의 점과 하나의 대시로 코드화되고, 문자 'B'는 하나의 대시와 세 개의 점으로 코드화된다. 전신 기사들은 점과 대시들의 유형들에 귀를 기울여 그것들을 다시 영어 문자들로 디코딩한다.

 

1844년에 최초로 사용된 모스 코드는 때때로 최초의 디지털 신호전달 체계로 간주되지만, 엄격히 말하자면, 이산적인 기호들을 사용하는 신호전달 체계라면 무엇이든 디지털 체계이다. 이산적인 코드의 표현력은 기호들을 조합한 유형들을 만들어내는 데서 비롯된다. 고정된 일단의 기호들을 감안하면, 더 많은 기호들을 엮을수록 더 많은 유형들이 가능해지며, 조합적으로 가능한 것들이 폭발적으로 증가한다. 한 문자 열은 26개만 가능할 뿐이지만, 두 문자 열은 676(26^2)개가 가능하며, 그리고 세 문자 열은 17586(26^3)개가 가능하다. 이런 문자열들은 숫자, 문자, 사람, 장소 또는 사물 등 무엇이든 나타낼 수 있다. 그런 코드를 사용하는 데 필요한 것은 오직 각 열과 그것에 대응하는 의미 또는 목적을 나열하는 순람표이다. 가장 간단한 가능한 이산적인 코드는 이진 코드인데, 그것은 두 개의 부호, 이진 부호(binary digit) 또는 비트(bit), 즉 0과 1을 포함할 뿐이다. 이진 코드의 소수의 부호들이 결코 그것이 나타낼 수 있는 기호들의 수를 제한하지 않는데, 표현 능력을 향상시키기 위해서는 열의 비트 수를 증가시키기만 하면 된다. 2비트 코드는 그저 네 개의 가능한 메시지(2^2)를 표현할 수 있다. 몇 개의 비트를 더 더해서 ASCII 코드 같은 7비트 코드를 형성하면 128(2^7)개의 상이한 기호를 표현할 수 있다.

 

순람표을 활용하지 않는다면 이진 코드는 대부분의 사람들이 해독하기가 매우 어렵지만, 그것은 기계를 다룰 때 특히 유용하다. 또한 이진 코드의 영과 일이라는 부호들은 '오프(off)'와 '온(on)', 또는 '부재'와 '존재'로 해석될 수 있다. 그런 단순한 기호들은 기계 제어용으로 사용하기가 비교적 용이했다. 18세기에 프랑스 직공들이 발명한 천공 카드는 일종의 이진 코드를 사용했는데, 여기서는 구멍이 올리거나 아니면 내릴 수 있는 베틀의 기계 장치를 제어했다. 그저 카드 위 구멍들의 유형을 바꿈으로써 직공들은 다양한 상이한 직물 유형들을 제작할 수 있었다. 일 세기 후에 유사한 이진 기계 장치가 자동연주 피아노의 설계에 도입되었는데, 피아노 롤의 한 특수한 지점에 뚫린 구멍이 대응하는 키를 두드릴 망치를 기동시켰다. 프랑스 직공들이 사용한 천공 카드로부터 영감을 받은 헤르만 홀러리스(Herman Hollerith)는 천공 카드를 자신의 전기 계산 기계에 대한 입력으로 사용했다. 그는 이 기계를 사용하여 1890년 미합중국 인구 조사 자료를 편찬했는데, 편찬 과정을 더 빠르고 더 저렴하게 만들었다.

 

숫자와 문자들은 이미 이산적인 기호이고, 그래서 그것들이 상이한 일련의 기호들을 사용하여 코드화될 수 있다는 것은 이해가 된다. 그런데 인간의 목소리는, 그것의 미묘한 어조와 굴절에도 불구하고, 이산적인 코드로 환원될 수 있는가? 소리 파동은 일반적으로 아날로그적인 것으로 이해되는데, 그것은 에너지의 연속적인 변이로서 결코 이산적인 기호들의 전신적 흐름처럼 보이지 않는다. 전화는 한 유형의 연속적인 신호, 소리 파동을 다른 유형의 연속적인 신호, 전자기파로 변환시킬 뿐이다. 소리 파동(또는 영상) 같은 연속적인 신호는 신호의 세기에 대한 유한한 일련의 이산적인 측정들―이른바 "샘플(sample)"들―로부터 재구성될 수 있다. 신호 세기는 숫자이고, 그래서 이산적인 코드를 사용하여 코드화될 수 있다. 섀넌과 다른 연구자들은, 충분히 많은 수의 샘플들로 아무 손실도 없이 연속적인 신호를 재구성할 수 있다는 것을 증명했다.

 

그런데, 무엇의 손실? 그것은 의미가 아니었다. 섀넌은, 최소한 효율적 통신이라는 시각에서 바라보면, "메시지의 '의미'는 일반적으로 아무 관련도 없다"고 믿었다. 섀넌은 어떤 메시지가 의미하는 것에 관심을 가진 것이 아니라, 통신 동안 전송되고 있는(그리고 소음 또는 결함이 있는 채널 때문에 때때로 손실될 수 있는) 특수한 것을 수량화할 필요가 있었다. 그는 통신 회선들에 의해 실제로 전송되고 있는 것을 측정하는 양을 고안했다. 이 양은 기호들의 어떤 집합도 코드화하는 데 사용될 수 있는 비트라는 화폐로 명명되었다. '정보'라는 낱말의 구어적 이해와 상출될 것이라는 점을 알고 있었지만, 섀넌은 자신이 수량화하고 있는 그 사물을 '정보'라고 부르기로 결정했다. 정보에 관한 그의 개념 구상은 이산적인 기호들을 전송하는 것을 포함하는 통신 작업을 의미를 전달해야 하는 통신 목적으로부터 분리시켰다. [...]

 

이것은 급진적이었지만 대단히 유용한 단순화였는데, 텍스트, 소리 그리고 영상 같은 별개의 통신 형태들 사이의 공통성을 드러내는 데 도움이 되었다. 그것들은 모두 비트로 분할될 수 있고, 동일한 기술을 사용하여 전송될 수 있을 것이다. 이런 이유 때문에 구식 전화선은 컴퓨터를 인터넷에 연결시키는 용도로 변경되어 활용될 수 있고, 하드 드라이브는 문서, 음악, 사진 또는 영화를 저장하는 데 사용되고 있는지 알지 못한다. 그리고 일단 엔지니어들이 무엇이 전송되고 있는지 그리고 저장되고 있는지 분명히 파악하게 되면, 그들은 전자통신 기술의 효율성을 개선하는 데 집중할 수 있을 것이다.

 

또한 이런 깨달음은 20세기의 다른 한 위대한 획기적인 업적―디지털 컴퓨터의 발명―과 함께 강력한 상승 효과를 낳았다. 비트는 메시지를 충실하게 저장하고 전송하는 데 좋은 것만이 아니다. 또한 비트는 새로운 유형의 메시지를 창출하기 위한 기초로 활용될 수 있다. 그리고 이것을 달성하는 길은 계산, 즉 새로운 유형을 창출하기 위해 기호들―숫자 또는 비트 같은―의 유형을 조작하는 형식적 규칙들을 사용하는 기술을 통하는 방법이다.

 

계산을 기호 조작으로 간주하는 것의 진정한 힘을 예증하는 데에는 앨런 튜링(Alan Turing)의 천재적 재능이 필요했다. 20세기 초에 이르기까지 컴퓨터는 수학적 계산을 수행한 사람이었다. 인간 컴퓨터들은 수천 년 동안 주변에 존재했었던 장치들―예를 들면, 주판―의 도움을 많이 받았다. 19세기 무렵에 주판은 일단의 점점 더 정교해진 기계적 장치들―더하기 기계, 단계적 계산기(stepped reckoner), 미분 분석기, 예측기 그리고 계산기―과 결합되었다. 기계적 컴퓨터는 전기기계적 기계로 대체되었으며, 결국 고체 전자 소자로 대체되었다. 튜링은, 인간이 수행하든 기계가 수행하든 간에, 수학적 계산은 모두 기본적인 기계적 본질로 요약될 수 있다는 것을 증명했다. 이 본질은 1936년에 튜링이 발표한, 현재 튜링 기계(Turing machine)로 알려져 있는 이론적 장치에 의해 포착되었다.

 

튜링 기계는 네 가지 기본 부품들로 구성되어 있다.

 

● 셀로 나누어진 무한히 긴 테이프(tape). 각 셀은 미리 규정된 집합에서 끄집어낸, 문자 또는 숫자 같은 기호 한 개를 포함한다. 가장 단순한 집합은 이진 부호 또는 비트, 즉 '0'과 '1'(또는 '오프'와 '온')로 구성된다. 비트의 열은 거명하고 싶은 어떤 기호 또는 숫자도 코드화하는 데 사용될 수 있다.

 

헤드(head). 이것은 테이프의 셀로부터 기호를 읽거나 셀로 기호를 적어넣을 수 있으며, 왼쪽에서 오른쪽으로 테이프를 따라 움직인다.

 

● 레지스터(register). 이것은 튜링 기계의 현재 상태를 저장한다.

 

● 기계가 하는 일을 규정하는 지시들의 목록(table of instructions). 기계는 한 셀 위에 기호를 지우거나 쓰도록 지시를 받거나, 아니면 새로운 셀 위치로 이동하도록 지시를 받는다. 어쨌든 그 지시는 튜링 기계를 새로운 상태로 옮길 수 있다.

 

튜링 기계에 대한 입력은 테이프 위에 부호화되고, 지시들이 수행된 이후에 출력은 테이프의 새로운 내용으로 구성된다. 그래서 하나의 계산은 기호들의 한 유형, 입력을 기호들의 다른 한 유형, 출력으로 변환시키는 지시들을 사용하는 것으로 이루어진다. 튜링 기계와 관련된 문제는 새로운 계산이 수행되어야 할 때마다 새로운 기계가 구축될 필요가 있다는 것이다. 그런데 튜링은 언뜻 보기엔 간단한 이런 이론적 기계의 수정 판본―현재 보편 튜링 기계(Universal Turing Machine)로 알려져 있는―이 가능한 모든 계산을 수행할 수있다는 것을 증명했다. 그가 이것을 입증한 방식은, 여느 튜링 기계의 지시 목록, 입력 그리고 출력을 보편 튜링 기계의 테이프 위에 코드화할 수 있다는 것을 보여주는 것이었다. 튜링은 보편 튜링 기계가 모든 가능한 계산을 수행할 수 있다는 것을 증명했다.

 

튜링은 매우 단순한 기계적 단계들이, 하나씩 차례로 수행되면, 무한한 수의 복잡한 수학적 계산을 수행하는 데 충분하다는 것을 보여주었다. 기호들의 간단한 유한 집합이 생각할 수 있는 어떤 열도 거의 다 생성하는 데 사용할 수 있을 것이다. 보편 튜링 기계는 현대 디지털 컴퓨터가 성장된 이론적 씨앗이었는데, 지시들의 목록은 이제 프로그램 또는 코드라고 불리고, 테이프는 이제 메모리라고 불리며, 헤드와 레지스터의 역할은 프로세서에 의해 흡수되었다.

 

섀넌과 정보 이론의 다른 선구자들은, 소통될 수 있는 것이라면 무엇이든 기호들로 코드화될 수 있고, 이진 부호가 가장 단순한 가능한 기호들이라는 것을 보여주었다. 그들은 엔지니어들이 지점 A에서 지점 B로 이런 기호들을 전송하기 위한 더욱 더 효율적인 체계들을 제작할 수 있는 이론적 토대를 마련했다. 튜링과 컴퓨터 과학자들은, 가장 복잡한 변형까지도 수행할 수 있는 대단히 간단한 기계에서 기호들의 열이 코드화되고, 그래서 새로운 기호들의 열을 생성할 수 있는 방법을 예증했다.