센서로부터 측정되는 데이터는 전압,전류,저항 값들이다. 그 값을 온도, 기압, 광량, 풍속 등에 매핑하여 각종 의미를 부여한다.

어느 한 순간에 모든 센서의 데이터를 측정한다고 해보자. 이것을 하나의 프레임이라 정한다면 하나의 프레임은 동일 시간대의 모든 센서의 값의 모음이다.

만약 프레임을 벡터로 나타낸다면, (현재 시각, 온도, 습도, GPS 위도, GPS 경도, 빛의 세기, 지구 자기) 이런 식으로 하나의 벡터는 하나의 시간에 표현할 수 있는 모든 데이터의 집합으로 나타낼 수 있다.

또한 만약 1초에 100번의 측정이 일어난다면 저 벡터가 1초에 100개가 생성된다고 할 수 있겠다. 조금 더 나아가서 각 센서 마다 측정되는 주기가 다르다면 어떤 데이터는 비어 있을 수 있는데 이것은 연속량이라고 가정했을 때 대략 측정되는 중간 값을 추정하면 해당 시각의 값을 추정하여 얻을 수 있다. (인터폴레이션, 혹은 보간 이라는 방법으로 알려져있다)

이런 데이터를 저장할 수 있는 가장 좋은 형식은 어쩌면 멀티미디어 파일 아닐까? mkv, mp4 등의 컨테이너들은 내부에 여러 채널을 두고 있다. 또한 각 데이터들은 시간의 흐름에 따른 데이터를 저장하기에도 충분하다.

시간 흐름에 따른 데이터를 적절한 codec을 두어 저장한다면, 굳이 보간법을 이용하여 추정하여 기록하지 않아도 측정 데이터만 넣어두고 codec을 이용하여 특정시간에서의 값을 추출할 수 있게 된다.

이도 저도 아니면, 평면 이미지의 흐름을 저장하는 데이터만으로도 가능하다. 이미지의 각 점을 특정 센서의 측정값으로 저장하면 640x480 짜리 동영상은 30만개나 되는 센서의 흐름을 표현할 수 있기 때문이다.

서사라는 것은 시간의 흐름에 따라 떠오르는 생각을 표현하는 것이다. 그것이 말이 되기도하고 말이 되지 않기도 한다. 생각이 몇 단어 혹은 몇 장면으로 매핑이 되는 정보 손실은 일어 날 수 밖에 없다. 그럼에도 불구하고 두 개의 지점에서 (뇌 혹은 데이터 저장소) 같은 '것'을 공유하기 위해서는 어떤 식으로든 서사적으로 표현된다. 손실을 최소화하는 방향으로 서로가 합의하게 되면서 시간을 단축할 수 있고, 시간 효율성을 높일 수 있다.

무작위 시도와 효율적인 것의 취사 선택의 누적은 자연의 진화에서 일어 났듯이, 매 일상에서 반복되는 것이며, 모든 독립 개체간에 발생하는 것이다.

인간이 꿈을 꾼다는 것은 일종의 무작위적인 시도의 결과이다. 그나마 근사하게 전달의 효율이 높은 방향에서의 전개를 선택했기 때문에 뭔가 말이 되는듯 되지 않는 것이다. 이런 무작위의 말도 되기도하고 되지않기도하는 꿈이 뇌리에서 사라진다는 것은 때론 원치않는 상황이기도하다. 하지만 취사선택에 빠른 두뇌 신경망은 중요도에 대한 판단을 심각하게하지 않으며, 곧 망각하게 된다. 꿈을 오래 간직하고 싶다면 기록을 하는 정도의 영구 보존 영역으로 옮겨야한다.

말이 되는 장면만 최대한 선택해서 말이 되는 표현으로 최대한 기록해야한다.

퇴근, 변명, 얼굴

노래하는 고속도로를 지날 때 언젠가는 한 번 정리해봐야겠다고 도로의 홈 간격에 대한 생각.

일단 속도마다 다른 음이 날테니까 기준되는 속도를 100km/h로 정해보자.

100km/h는 초속으로 100*1000m/3600sec 이므로 1000/36 m/s = 27.7777 m/s


100km/h = 27.7777 m/s

시속 100km를 달리면 1초에 28m를 간다.


기준음 '라'는 진동수가 440Hz라는 것은 그냥 알고 있다. 즉, 1초에 440번 두드리면 '라' 소리가 난다.

옥타브가 하나 올라가면 진동수가 배가 된다. 즉 한 옥타브 높은 '라'는 880Hz다.

한 옥타브는 12개의 반음이 있다. 

평균율 음계에서의 음의 증가는 주파수를 log를 취했을 때 일정한 간격으로 증가하는 것을 알고 있다.

즉,


880Hz = 2 * 440Hz

log 880 = log (2 * 440) = log 2 + log 440

한 옥타브가 올라가면 주파수의 로그값은 log 2 만큼의 증가가 일어난다. 그러면 12개 들어 있으므로 하나의 반음은  log2의 1/12만큼 증가한다.


피아노 건반을 보면 도는 라부터 반음 3개를 더한만큼의 주파수를 가지게 된다. 따라서, 도의 주파수를 X라고 한다면


log X = log 2 * (3 / 12) + log 440

X = 10 ^ (log 2 * (3 / 12) + log 440)

X = 10 ^ (log 2 * (3 / 12)) * 440 = 523.2511 (Hz)


즉, 1초에 523번 두드리면 '도' 음이 난다.
만약 시속 100km로 달린다면 1초에 28m (27.7777m)를 간다.
28Hz의 소리를 낸다면, 1m 마다 한번씩 홈을 내면 되는 것이고,
280Hz라고 한다면 0.1m (10cm)마다 한번씩 홈을 내면 된다.
즉 계산식을 만들자면, 100km/h로 달릴때는,
28m 혹은 2800cm를 원하는 진동수로 나누면 될 것 같다.


만약 도, 레, 미, 파, 솔을 연주한다면, 


도 = 라 + 반음 3개

레 = 라 + 반음 5개

미 = 라 + 반음 7개

파 = 라 + 반음 8개

솔 = 라 + 반음 10개


이므로, 각각의 Hz를 구하면

10 ^ (log 2 * (3 / 12)) * 440 = 523.2511

10 ^ (log 2 * (5 / 12)) * 440 = 587.3295

10 ^ (log 2 * (7 / 12)) * 440 = 659.2551

10 ^ (log 2 * (8 / 12)) * 440 =  698.4564

10 ^ (log 2 * (10 / 12)) * 440 = 783.9908


각각을 시속 100km/h인 초속 27.7777m/s, (2777 cm/s)에 대해서 나누면

2777 / 523.2511 = 5.3 cm (도)

2777 / 587.3295 = 4.7 cm (레)

2777 / 659.2551 = 4.2 cm (미)

2777 / 698.4564 = 4.0 cm (파)

2777 / 783.9908 = 3.5 cm (솔)


간격으로 홈을 내면 연주할 수 있다. 그리고 28m가 1초이므로 대략 9m 홈을 내면 는 0.3초정도 지속 될 것 같다.



난, 이번 문재인 정권이 과거 정권에서 있었던 공무원 혹은 극우들이 저지른 소리없이 다 들춰내 도려내는 모습에 묘한 쾌감을 느낀다.

도무지, 출근 중에 떠올랐던 아이디어가 뭐였는지 생각이 나질 않는다.

아마도, 뭔가를 해석하는 관점에 관련된 것이었는데, 출근상황을 다시한 번 시뮬레이션하고, 어느 지점을 지날 때 쯤이었는지 어렴풋하게 기억만 나지 그 상황에서 무슨 생각을 했는지 기억이 나질 않는다.


나는 원래 기억을 못하거나, 기억하기 위한 여러 연결고리를 미쳐 만들지 못한채 잊었거나, 기억할 량이 많을 정도로 버라이어티한 주제를 떠올렸거나 하는 문제겠지.

인간이 실재 일어나지 않은 일을 시뮬레이션할 수 있는 능력이야말로 인간이 현재 지구를 지배하는  지위에 올려 놓은 중요한 요소 중 하나이다. 이런 지위에 올려 놓은 역할로서 시뮬레이션은 크게 두 가지인데, 하나는 위험을 그려보는 일이고, 다른 하나는 현실에 만족하지 못하도록 계속 몰아가는 역할이다.


지금 먹고 있는 이 음식을 다음에 먹을 수 있을까. 그렇지 못할 것 같다면 그것은 위험한 요소다.

아무 위험이 없는 상황에서도, 신의 위치에 올라가지 못한 이상 현실에 만족할 수 없다.

그 상황을 극복하기 위한 역할이 시뮬레이션으로 시작한다.


어느 팀에서 1년간 Node.js 로 작업을 하고나서 다시 python으로 돌아 갔다는 을 보고나서는 그럴 수 있다고 생각했다. nodejs에서 사용하는 Javascript는 기존의 Javascript와 설계 방식이 다르다. 모든 곳에서 비동기적인 상황을 고려해야한다. 정확히는 I/O가 일어나는 함수의 경우에서 비동기적인 처리를 고려해야한다.


Nodejs는 구글의 자바스크립트 엔진인 V8이 JIT 컴파일러를 도입하면서 괜찮은 성능을 제공하였기 때문에 가능한 프레임웍이었다. 그리고, 최대한 동기적인 작업을 설계에서 배제시켰고, 그에 따라 nodejs 생태계는 비동기 철학에 맞춰 확장이 되었다.


처음 nodejs가 나왔을 때 비동기적인 설계를 편하게 구현할 수 있는 자바스크립트의 문법적 기능으로는 closure 밖에는 없었던 것 같다. 지금은 co-routine을 구현하기 위한 generator가 들어가고, Promise가 들어가면서 지금과는 다른 설계방식이 앞으로는 유행하지 않을까 한다.


Nodejs는 javascript라는 것이 특징이 아니다. javascript가 클라이언트에서 사용되다가 비로소 서버에서도 사용되는 것에 열광할 일이 아니라는 것이다. 마이크로소프트의 ASP가 VB만이 아닌 Javascript로도 제공됐었다는 사실을 아시려나 모르겠다. npm 마저도 특징이 아니다. 요샌 다 패키지 매니저는 기본이지 않은가. Nodejs의 매력은 "비동기적인 설계를 강제"한 것에 있다. 만약, python이든, java든 php든 심지어 C++이라할지라도 비동기적인 함수로만 패키지의 생태계가 만들어진다면, 아마 열광할 요소가 있을 것이다. 그러나 전통강자가 있으니 아마 쉽지는 않을 것이다.



의식의 확장.


1인 회사가 가능한 이유를 잘 생각해보면, 두 가지에 근거한다.


1. 사회의 분업화

2. 단순 노동의 자동화


분업화된 사회는 일을 공정으로 나누고, 각 공정에 전문가 혹은 숙련공을 만들어냈기 때문이다. 하나의 조직에서 분업화가 이루어진 이후에는 아웃소싱이라는 방법을 통해 외부에서 전문적인 기능을 제공하는 방향으로 진화하였다. 1인 회사의 필수 요소는 하나의 회사를 지원하기 위한 외부 회사가 존재하기 때문이다.

기계에 의한 단순노동의 자동화는 한 사람이 처리해야하는 일을 필수적인 부분에 집중할 수 있게 했다. 자동화의 최전방에 있는 온라인서비스가 있기 때문에 가능해졌다. 이런 사회적인 현상은 비가역적이다. 웬만해서는 다시 원래의 불편한 사회로 돌아가지 않을 것이다.


1인회사를 만든다는 것은 내 전문기술에 대한 자부심에서 시작하는 것이며, 둘 이상의 커뮤니케이션 비용에서 오는 위험을 최대한 감수하고, 초기 이익을 최대한 재투자를 하는데 부담없이 하려는 것이다. 이런 1인 회사의 한계점은 내가 할 수 있는 전문영역에서의 만족할만한 품질에 대해서는 누군가에게 의존할 수 없는 지점에 있다. 말 그대로 내가 둘이었으면 하는 마음이 드는 때가 그 한계라는 것이다. 내가 할 수 있는 세무 대리를 지원해주는 회사, 디자인을 지원하는 회사, 온라인 마케팅 등등 모든 전문영역은 내가 할 일을 제외한 나머지 회사들의 지원에서 가능한 것이고, 그렇게 다 외부로 떼어냈을 때, 남는 것은 나만 할 수 있는 영역에 대한 한계를 실감하는 것이다.


나와 같은 지능을 갖는 누군가를 또 만든다는 것은 어려운 일이다. 하지만, 내가 하는 지적인 판단의 일부를 복제하는 일은 이제 조금씩 가능해질 것이다. 그런 것이 가능한 영역을 도와주는 어시스턴트 프로그램을 쉽게 구할 수 있을 것이며, 사람들의 우려처럼 직업이 바로 없어진다거나 새로운 직업이 바로 등장하지는 않을 것이다. 엑셀과 이메일이 회사에서 일하는 방식을 바꾸는데도 사회가 수용하는데 10년은 더 걸렸다. 그 동안 직업군은 천천히 변했고, 사람들의 기술은 천천이 이관되어 갔다. 어떤 산업군은 빨리 도입될 것이며, 어떤 산업군은 느릴것이다. 지능의 확장을 도입하는 것은 어떤 식으로든 이루어질 것이며, 그것은 지금의 우리가 사용하는 기술과 크게 다르지 않은 방식으로 시작한다.


지적인 판단을 도와주는 확장이 일어나는 순간이 그 시작이된다.

기대반, 우려반.

놀라운 시점을 살고 있다.





회상, recall. 반사행동.

자극이 들어 오면, 자극에 대한 반응이 일어난다.

인간을 신경의 다발이라고 가정한다면, 그 수준은 신경의 물리적인 자극에서부터 신경계의 2차, 3차 층위에 해당하는 추상적인 층위까지 모두 회상이라는 반응이 일어난다.

여기에는 측정되지 않은 무작위성(randomness)가 자극과 섞이면서 비슷하지만 조금씩 다른 결과를 만들어낸다.

그 결과는 다시 신경계의 연결 강도(weight)를 조절하거나, 혹은 기억이라는 과정으로 다음 회상의 재료가 된다.


그 신경다발 구조체가 얼마나 복잡해야 인간다운 수준이 될까?

혹은 어느 수준이 되어야 인간과 무리없는 상호작용을 할 수 있을까?

혹은 인간이 집중한다면 어느정도 상호작용은 할 수 있는 수준은 이뤄낼 최소 값은 존재할까?


염두에서 떠나지 않는다.

"나는 옳다"라고 종종 되뇌인다. 내가 옳은 것은 마치 이것과 같다. 식물에 물을 주면 자란다. 그건 식물이라는 생명이 작동하는 방식이 그러하기 때문이다. 식물이 자라는 방식은 옳고 그름의 문제가 아니라 그냥 그 자체로 옳은 것이다. 미묘한 뉘앙스라 생각되기는 하지만, 나는 다른 적절한 표현을 찾지 못했다. 아니, 옳다라고 표현하는 것이 그리 나쁜 표현이 아니며, 내가 느끼는 느낌을 잘 표현한다고 생각한다.


내가 옳다는 것을 전제하지 않으면, 지금의 나를 살아갈 수가 없다. 중요한 것은 "지금" 이 시점에서의 내가 사는 방식이 그러하다는 것이다. 지금 내가 옳지 않으면, 그릇작동한다면, 그것은 내 존재의 작동방식이 부정되는 것이며, 그것은 이미 내가 아니다.


옳다는 전제, 제대로 작동하고 있다는 전제하에 단지 스스로를 해석할 뿐이다. 그것이 도덕적으로는 그를지라도, 생물학적, 자연적으로는 옳다. 그렇게 형성되어온 가치관 대로 판단하는 것이 지극히 자연스러운 것이기 때문이다.



+ Recent posts