연속된 세상에서 분할을 만들다, 아날로그-디지털

김재만·2022년 2월 18일
0

CS

목록 보기
9/13
post-custom-banner

아날로그와 디지털은 마치 무수한 음악용어들처럼 모호하게 남아있는 용어 중 하나다. 그저 시계를 보면 "얘는 시침, 분침, 초침이 돌아가니까 아날로그 시계고 쟤는 숫자를 표현하는 화면이 시간을 알려주니까 디지털 시계다" 하는 구분만 가능했다. 이번 글에서는 아날로그와 디지털이 어떤 의미인지 얘기해보고, 인간의 사고와 기술의 발전을 전반적으로 훑어 보려고 한다.

연속의 시대에서 분할

내가 태어나서 여러가지 기계장치와 개념들을 배울 때는 이미 연속 된 것들과 분할 된 것들이 나뉘어 있었다. 보통은 연속된 것을 분할하는 방법에 대해 배웠는데 특별히 이유를 설명하지도 않고 주입되는 개념도 있었고, 직관적으로 분할되는 것이 편하다는 설명만으로 넘어가는 경우가 많았다. 그럼에도 큰 거부감 없이 받아들였으며, 오히려 10년 쯤 전에는 '인간의 가장 큰 발명은 (분할하여 생각할 수 있는)직관이다.'라는 생각을 여럿에게 공유했던 기억이 난다.

그렇다면 우리가 일상에서 느끼는 분할은 어떤 것들이 있을까. 가장 대표적인 것은 시간 개념에 적용하는 분할이다. 초, 분, 시, 일, 월, 년에 이르기 까지 모든 단위 값으로 표현하는 시간 개념은 분할을 내포하고 있다. 물론 년의 경우 공전이 반복되는 주기, 일의 경우 자전이 반복되는 주기라는 연속적이면서도 다소 자연 발생적인 분할이 존재한다. 어찌됐든 연속돼서 엄밀히는 재단할 수 없는 개념이지만, 직관적으로 분할하여 효율을 취한 개념이다. 음악에서의 음, 시각예술에서의 색 역시 무수히 많은 것들 중에 의미를 갖는 몇 가지를 취하여 이름을 붙여 사용한다. 만약 최초의 예술가들이 이러한 직관을 갖지 못했다면, 처음 사용할 음과 색을 선택하지도 못하고 일생을 마쳤을 것이다.

아날로그 컴퓨터

연속된 세상의 물리값을 분할하여 계산하기 위한 장치를 아날로그 컴퓨터라고 한다. 학창시절에 흔히 배웠던 해시계, 물시계 같은 경우에도 일종의 아날로그 컴퓨터라고 할 수 있다.(K-컴퓨터메이커 장영실) 조금 더 일반적인 예를 찾아보자면, 톱니바퀴 장치를 연결하여 날짜 값을 입력하여 해나 달의 위치를 측량하는 '안티키테라'나 상용로그의 덧셈 연산을 보조하는 '계산자'의 경우도 아날로그 컴퓨터라고 할 수 있다. 참고로 비행 컴퓨터(flight computer) 원형 슬라이드 룰은 현재에도 사용되는 몇 안되는 아날로그 컴퓨터이고, 연료 연소, 바람 보정, 이동 시간 및 기타 항목을 계산하는 데 도움이 되도록 비행 계획(이륙 전 지상에서) 중에 사용된다.

아날로그와 디지털의 차이

그렇다면 아날로그와 디지털의 차이는 무엇일까. 아날로그는 앞서 말한 것처럼 연속적인 값을 계산을 위해 직관적 분할을 적용하여 효율적으로 계산하기 위한 방법이고, 디지털은 사이 값이 없는 표현법을 활용하여 계산하는 방법이다. 아날로그는 비교적 쉽게 구현할 수 있고, 원하는 값을 특정하여 출력하기 쉽다.

예를 들면, 1cm의 값이 주어졌을 때 0.5cm의 값을 측량하는 경우를 생각해보자. 자를 가지고 와서 재면 끝나는 일이다. 하지만, 대부분의 장치들이 디지털로 바뀌는 데는 이유가 있다. 우리가 측량한 0.5cm는 정확한 0.5cm라는 보장이 없다. 그것은 길이 뿐만 아니라 넓이, 질량과 같은 모든 물리값에 대해 정확한 값이라는 것은 연속된 세계에선 사실상 불가능하다. 하지만, 1cm의 값이 주어졌을 때 디지털의 경우는 정확한 0.5cm를 도출해낼 수 있다. 더 나아가 우리가 원하는 값이 0.2342582352라는 직관을 벗어나는 세부값으로 들어간다면 더욱이 디지털 컴퓨터의 힘을 필요로 한다.

하드웨어의 크기

컴퓨터는 전기로 작동하며, 전자를 움직이며 연산을 진행한다. 때문에 빛의 속도 이하의 정보이동 속도를 보인다. 오늘날 컴퓨터의 클록속도는 4GHz이다.(헤르츠는 1초당 진동횟수를 표시하는 단위다.) 1초에 40억 번 연산할 수 있다는 의미이다. 순식간에 연산이 되어 하드웨어의 크기가 큰 체감이 없을 수도 있지만, 현실에서 사람이 발로 뛰어 배달하는 것과 마찬가지로 가까울 수록 연산 효율이 좋다. 전자도 결국 1/40억 초 동안 이동할 수 있는 거리가 75밀리미터 정도이다.(빛의 속도 299,792,458m/s % 4,000,000,000) 현대 CPU의 한 면의 길이가 18mm정도이니 왕복에 36mm, 두번 왕복에 72mm의 길이를 이동해야하므로, 전자는 두 번 정도 왕복이동할 수 있다.

때문에 크기를 작게 만들수록 연산에 드는 에너지와 시간을 절약할 수 있다. 하지만 작게 만들 때 생기는 몇가지 문제가 있다.

외부 요인과 정밀도

아날로그든 디지털이든 정밀도와 계산효율의 기로에서 적당한 효율을 취해야만 한다. 아날로그의 경우 계산 결과가 적당히 의미있는 직관 값을 반환해야한다. 그러나 이런 직관적인 값조차 여러가지 물리력에 의해 왜곡되기 십상이다.

디지털의 경우 일상적으로 느끼는 물리력이 작용하지는 않는다. 하지만 전기신호를 교환하는 선이 매우 밀접함으로 인해 회로가 다른 회로에 의해 의도치 않은 영향을 받는 누화 현상이 발생한다. 때문에 디지털의 경우도 더욱 정밀한 판정 기준을 통해 정보가 왜곡될 가능성을 낮추는 것이 필요하다.

아날로그 정보의 디지털화

연속된 값을 특정한 판정기준에 맞춰 부합, 부적합을 결정하기 위해선 입력값의 증폭 과정이 필요하다. 판정기준에 부합하게 만들고 싶은 값은 전부 판정기준에 부합할 정도로 증폭시켜 왜곡이 일어나게 하고, 부적합하게 만들고 싶은 값들은 해당 기준에 부합하지 않을 정도로만 증폭시켜 왜곡이 일어나지 않게 하는 것이다. 이 때 왜곡이 시작되는 최초의 값을 문턱값이라고 한다.

10진 숫자 대신 비트를 사용하는 이유

아날로그에 비해 디지털이 갖는 효율을 이해했다면, 왜 2진수로 해당 방법을 구현하는지 이야기해보자. 우리가 컴퓨터 수학을 일상 수학의 규칙을 그대로 적용시키려면 사실 10진법을 구현했으면 편할 일이다. 하나의 비트에 문턱값을 9개 만들면, 하나도 넘지 못했을 때 0 - 하나를 넘으면 1 - 두개를 넘으면 2 -... 으로 표현한다면 컴퓨터는 하나의 비트마다 하나의 양손, 비트의 갯수*2개 만큼의 손을 갖게 되는 것이다. 이 방식이 상용화되지 못한 이유는 역시 비용에 있다. 2진 표현법으로 10진법 만큼의 수를 표현하려면 최소한 4개의 2진표현 비트가 필요한데, 이 네 개의 비트를 구현하는 것이 10진 비트 하나를 구현하는 것보다 훨씬 저렴하기 때문이다.

마무리

양 손(디지털, 이산)

profile
듣는 것을 좋아하는 개발자입니다
post-custom-banner

0개의 댓글