Bongta      

code - ①

소요유/묵은 글 : 2008. 2. 15. 21:05


본 글은 연재 형식으로 쓰여질 예정입니다.
최종적으로 글이 겨냥하고 있는 주제는 “code”입니다.
앞 부분은 그 배경 지식을 위해 할애되었습니다.
주로 컴퓨터에 대하여 다루고 있으므로,
아시는 분들에게는 본의 아니게 폐가 되겠군요.

###

Computer

컴퓨터가 무엇입니까 ?

저는 컴퓨터에 서툰 이를 보살펴줄 때,
이리 물으며, 그의 컴퓨터에 대한 이해의 정도를 가늠해보고,
그 다음 가르침의 수준을 요량합니다.

compute란 게 “계산하다”라는 뜻이듯, 실제 computer는 곧 계산기에 다름 아닙니다.
탁상용 계산기(calculator) 역시 “calculate=계산하다”란 말 뿌리를 갖고 있습니다.

이렇듯 calculator든 computer든 공히 “계산하는 기계”란 뜻을 갖고 있는 것으로
짐작할 수 있듯이, 실제 작동하는 원리, 구조는 본질적으로는 같습니다. 

다음에 이어질 제 글의 중심 주제인 “코드(code)”에 대한 글을 쓰기 전에,
“컴퓨터가 무엇인가 ?”란 제 나름대로의 해석이 먼저 필요하다는 생각이 들었습니다.

그래서 컴퓨터에 대하여 간단히 말씀드려봅니다.
저는 여기서는 기초적인, 그러나 본질적인 문제에 집중하여 이야기를 나누고자 합니다.

컴퓨터에 대하여 말씀을 나누기 전에
먼저 analog/digital 그리고 hardware/software에 대한 이해가 선행되어야 합니다.
그래 간단히 이들을 먼저 살펴보고자 합니다.

###

Analog/Digital

이 양자의 차이를 제대로 설명하려면 제법 긴 시간이 필요합니다.
여기서는 “컴퓨터가 무엇인가 ?”란 주제를 설명하는데 데 필요한 최소한의 이해만
확보하고자 합니다.

간단한 예를 하나 들어봅니다.
전화를 통해 송화자와 수화자가 통신을 시도하고 있습니다.
이 때 이 양자가 주고 받는 말들을 일정 수단을 통해 전화선을 통해서 주고 받게 되는데,
그 일정 수단(전기)을 빌은 통신내용의 실체들을 공학에서는 신호(signal)라고 말합니다.

이 signal을 처리하는 방식엔 analog/digital 두가지가 있습니다.
x-y 좌표축을 생각해보시기 바랍니다.
x축엔 시간, y축엔 신호의 강도가 배대되어 있다면,
시간이 흐름에 따라, 신호가 죽 나열되며, 그래프가 그려질 것입니다.
analog 방식에선 시간의 흐름에 따라 발생하는 신호들을 빠짐없이 모두
전화선을 통해 상대에게 전합니다.
우리가 쓰는 음성통화는 보통의 경우 이런 방법으로 행해집니다.

그런데, digital은 예하건데, 이런 것입니다.
즉, 시간축을 따라, 1초, 2초,.... 등의 매1초 단위에 해당되는 신호들만을 끊어 내고,
그 당해 부분만을 전화선을 통해 내보내는 것입니다.
중간 부분은 버립니다.
이 때, 1초단위로 할 것인가 또는 0.5초 단위로 할 것인가라는 분해능은
기기의 성격과 현실적응 능력을 고려 정해집니다만,
어쨋건 샘플을 취하듯 일부분을 취하는 것은 같습니다.
이 분해의 정도를 sampling rate라 부릅니다.

이처럼 digital은 물리량을 본질적으로 discrete하게 다룹니다.
여기 도약이 있는데, 마치 징검다리 건너가듯, 주마등처럼 존재를 인식(처리)하는 것입니다.
간극사이의 실존은 디지탈은 취급하지 않습니다.
(* 이 부분은 모처에 있는 저의 댓글에서 발췌함.)
나중에 언급할 주역 역시 64괘란 discrete한 인식틀을 통해 삼라만상을 형식화합니다.
간극 사이에 잃어버린 존재들은 종내 미아가 되고 맙니다.
그래서 digital 시대는 아무리 발달되어도 저 잃어버린 미아를 아프게 그리는
어미 마음처럼 본원적으로 슬픈 형식이 아닐 수 없다는 감상을 갖곤 합니다.

이것이 공학에서, 목적 달성을 위해 구사하는 기술적 구현 방식으로서의
analog/digital 양자의 가장 일차적인 차이입니다.
( * 참고로 analog/digital의 제대로 된 설명은 지금 제가 설명하고 있는 수준을 넘습니다만,
저는 지금 갈 길이 바쁘기 때문에 제한적인 부분에 한정하고
있다라는 사실을 확인하여 둡니다.
예컨대, 양자역학에선 에너지가 본원적으로 discrete하다고 설명합니다.

여기서는 그러므로 continuous(연속적)한 analog로 자연을 이해하던 고전역학의
세계관은 바르지 않다고 여기고 있긴 합니다.
하지만, 지금 의론하고 있는 바는 이런 물리학적 내용이 아니라,
정보공학 또는 기술적 차원의 의론에 국한하고 있습니다. )

자 이렇게 양자를 나누고 보면,
analog는 원신호 전체를 다룹니다만,
digital은 원신호에서 잘라내버리는만큼 취급하는 신호의 양은 절감됩니다.
하지만, 잃어버리는 부분은 자진하여 감수합니다.
그러니, 얼핏 보기에 digital은 analog보다 부실해 보입니다.
그런데, 지금 기술적으로는 digital이 천하를 제패하다시피 하고 있습니다.
왜 그럴까요 ?

analog가 원신호 전체를 취급하고 있다고 말씀드렸습니다만,
이것은 개념상 그렇다는 것이지 실제는 증폭기(amplifier)의 한계,
필연적으로 발생하는 통신선로상의 잡음(line noise)의 개입 등에 따라
원신호의 distortion, crosstalk 등의 문제를 피해갈 수 없습니다.
다시 말하면, 원신호라는 게 개념상 있을런지는 몰라도 현실계에서는
송화자와 수화자간에 주고받는 원음 그대로 재현될 수 없다라는 것입니다.

그러하니, digital과 같은 sampling을 가하는 방식을 취한들 현실적으로
별 무리가 없다라는 것이지요.
경우에 따라서는 sampling rate를 높이면, 精度(precision)를 현실에 적응하여
얼마든지 탄력적으로 조절할 수 있는 것입니다.

사실은 설명의 편의를 위해 순서를 바꾸었습니다만, 이보다 더욱 중요한 것이 있습니다.
digital에서 sampling을 취한 값을 숫자로 바꾼다는 것입니다.
보다 정확히는 코드화(code)한다는 것인데,
이는 이어지는 다음 글의 주제이므로 여기서는 그냥 숫자라고 이해하고 넘어가도록 합니다.
이제 이 숫자를 상대측에 내보냅니다.
앞의 예라면 1초 시점에선 39, 2초엔 41, 3초엔 42..... 등등으로
신호 강도를 숫자로 변환하여 그 숫자를 보내는 것이지요.

그런데, analog에선 보낸 신호들이 전화선을 타고 들어오는 무수한 잡음(noise), 기기의 특성 등으로 인해 수신측에서 정확히 재현된다는 것을 보장할 수 없다라는 것입니다.
예컨대, 수신측에서 39.01, 41.02, 42.04 등으로 조금일지라도 변하게 됩니다.
그러나 digital에선 수신측에서 39, 41, 42... 등과 같이
다시 원래의 숫자로 정확히 재현할 수 있다라는 것입니다.
디지털에서는 노이즈라든가 기기의 특성에 구속받지 않고, 이를 기술적으로 극복합니다.
어떻게 극복하느냐 하는 것은 조금 설명이 필요합니다만,
여기서는 그게 과제가 아니니까 그냥 넘어가야 하겠군요.

자, 아주 중요한 부분입니다.
digital에서는 sampling이 되었을 망정, 일단 보내고자 의욕하는 신호인 이상,
수신측에서 정확히 그것을 재현할 수 있다라는 것.
이게 핵심입니다.
(* 주의: 앞에서 한가지 예로 sampling을 들었습니다만,
signal의 성격에 따라서는 sampling을 반드시 거쳐야 하는 것은 아닙니다.)

여기 레코드판이 있습니다.
과거 analog 방식의 레코드에선 LP판에 홈을 파고
여기 핀이 훑고 지나가면서 소리가 재현이 됩니다.
이 때 그 홈의 형상은 신호에 대응하여 소리 전체를 패턴화하여 그려냅니다.
LP판은 사출성형기를 통해 똑같은 것이 수천장 찍어내집니다만,
실제로는 그 하나하나는 하나도 같은 것이 없습니다.
온도에 따른 수축.팽창, 물리적 흠, 먼지 등에 의해 같은 것은 있을 수 없습니다.
이에 따라 패턴화된 홈의 물리적 형상은 조금씩 차이가 나지 않을 수 없습니다.
즉 원신호의 수록부터 벌써 차이를 감내하지 않을 도리가 없습니다.
거기다, 이것을 앰프에 걸면 그 특성에 따라 또 다른 소리로 변형되어 출력됩니다.
물론 현실에선 이런 점 때문에 analog 狂들은 이게 더 자연스럽고 깊은 재현력을 갖는다고
analog audio를 즐겨 듣습니다.

반면 audio CD가 있다고 해보지요.
이게 digital이라면, 개념상으로는 숫자로 기록해놓았기 때문에 CD가 수천장이라도
거기에 기록된 정보의 내용은 하나같이 모두 동일합니다.
기록된 CD 표면에 흠이 있든, 먼지가 껴있든, 이를 온전한 제 숫자로 재현하는 것은
기술적으로 별반 어려운 것이 아닙니다.

이게 아주 중요한 핵심사항입니다.
숫자로 기록하고, 그 숫자로 정확히 재현하는 것이지요.
정보의 전달, 재현이 100% 온전하게 보존된다라는 것 !

3byte 체계라면, 파란색은 코드 $0000FF(=255)입니다.
파란색을 상대에게 전하려 할 때, digital 방식을 통해서는 255라는 숫자로 보내지고,
이게 어떤 전달매체로 전해지든 정확히 255로 수신, 독해되고,
이게 역으로 디코드되어 파란색으로 읽혀집니다.

여기서, 중요한 소식은 정보를 전달할 때, 코드로 바꾸어 전한다는 것,
그리고 이를 디코드하여 정확히 재현한다는 것,
또한 그 구현 기술이 그리 어렵지 않다라는 것.
이런 점이 digital 기술이 오늘날 천하를 제패하게 된 핵심 동인이라고 생각합니다.

음성같은 정보는 수신측에서 조금 달라진 정보를 받아도 별 문제가 없습니다만,
문자와 같은 정확한 정보를 전달하여야 할 경우에는,
analog는 상당히 곤란합니다.
하지만, digital은 원래 보내고자 한 정보를 100% 정확하게 전달할 수 있는 것입니다.

이게 어떻게 컴퓨터에서 쓰이게 되는가 하는 것은 다음에 다루어집니다.

'소요유 > 묵은 글' 카테고리의 다른 글

code - ④  (0) 2008.02.16
code - ③  (0) 2008.02.16
code - ②  (0) 2008.02.15
문.무(文.武)의 진실과 그 화해를 위하여  (0) 2008.02.15
기우(杞憂)  (2) 2008.02.15
어둠의 계조(階調)  (0) 2008.02.15
Bongta LicenseBongta Stock License bottomtop
이 저작물은 봉타 저작자표시-비영리-변경금지 3.0 라이센스에 따라 이용행위에 제한을 받습니다.
소요유/묵은 글 : 2008. 2. 15. 21:05 :