컴퓨터과학으로 그리는 미래 설계도

이시연(농경제사회학부, 2020-16745)

이호제(종교학과 2020-14593)

강서현(화학교육과 2021-16094)

지음

이광근

박규연

32명의 강의 수강생

검토

컴퓨터과학이 여는 세계

서울대학교

유난히 추웠던 2021년 가을과 겨울,

컴퓨터과학에 대한 관심과 애정을 담아,

따뜻하게.

들어가며

이 책은 총 여섯 꼭지로 구성된다.

첫 번째 장에서는 보편만능의 튜링 기계의 원천 설계도를 톺아본다. 튜링 기계가 제안한 기계적인 방식이 무엇인지, 지금까지도 깨지지 않는 기계적인 방식을 제안한 튜링 소년의 생애는 어떠했는지에 대해 자세히 알아본다.

두 번째 장에서는 컴퓨터과학과 관련된 세 가지 질문, 1)컴퓨터로 모든 문제를 해결할 수 있는가? 2) 수학적으로 참인 모든 명제를 찾아내는 것이 가능한가? 3) 부울 대수와 스위치 회로가 같은 것임을 보일 수 있는가?에 대한 답을 인공지능 로봇에게, 또는 여행을 함께하는 친구에게 설명하는 방식으로 제시한다.

세 번째 장에서는 여러 사람이 함께할 수 있는 새로운 게임을 디자인하기도 하였다.

네 번째 장에서는 컴퓨터과학을 소재로 한 영화 시나리오는 제안하였다.

다섯 번째 장에서는 인공 감정에 대하여 소개하였다.

여섯 번째 장에서는 여러 시들을 컴퓨터과학과 연결 지었다. 독자들을 위해 각 시를 제시한 다음, 시에서 연결 지을 수 있는 컴퓨터과학적인 개념에 대해 다시 한 번 자세히 설명하였다.

이 책을 읽는 사람들 또한 한 번쯤은 컴퓨터과학으로 그리는 미래에 대한 디자인을 해 보기를 바라며 책을 시작한다.

1장. 원천 설계: 보편만능의 기계, 그 설계도를 톺아보자.

도구를 사용하는 인간, 호모 하빌리스. 호모 하빌리스는 정교한 뗀석기를 만들어 사냥을 하고, 가죽과 뼈, 살을 각각 발라내었다.

먼 과거에서부터 인간은 도구를 사용하면서 스스로의 삶을 더욱 다채롭게 만들어갔다. 흰색, 흑색, 흑백으로만 가득 찬 삶에서, 빨간색, 주황색, 노란색, 초록색, 파란색, 남색, 보라색... 무지개색 빛으로 가득 차도록. 무지개색 빛을 넘어 온갖 다양한 빛들로 넘쳐나도록.

1장을 열며.

지금 현재를 살아가고 있는 우리는, 보편만능의 기계를 사용하는 인간이다. 21세기 한국 사회를 살아가는 우리는 하루 동안 잠에서 깨어나서부터 다시 잠들 때까지, 어쩌면 하루 종일, 도구를 사용한다. 그중에서도 한국인들의 제2의 심장이라 부를 수 있는 스마트폰은 언제나 우리 곁을 지키고 있다. 전화면 전화, 문자 메시지면 문자 메시지, 심지어는 음악을 재생하거나 게임을 할 수 있도록 해주기도 한다. 스마트폰의 인터넷 어플은 눈과 귀, 어쩌면 결제 버튼을 누르는 손가락까지도 즐겁게 만드는 쇼핑을 할 수 있도록 해주기도 한다. 당장 물리적으로 가까운 거리에 있지 않아 더더욱 보고 싶은 사람이 있을 때, 우리는 스마트폰으로 사랑을 전하기도 한다. 물리적으로 너무나도 위협적인 위치에 흉기를 들고 서있는 사람이 있을 때, 우리는 스마트폰으로 스스로의 안전을 지키기도 한다.

스마트폰이라는 도구 하나를 가지고, 우리는 세상의 모든 일을 할 수 있는 것만 같아 보인다. 대체 이 도구에는 어떠한 힘이 들어 있길래, 어떠한 기술이 접목되어 있길래, 우리의 삶을 이렇게나 윤택하게 만들어줄 수 있는가!

스마트폰 이전에, 인간은 컴퓨터라는 보편만능의 기계를 이용하며 살아왔다. 컴퓨터 한 대만 있다면, 우리는 셀 수 없이 많은 업무를 빠르고 정확하게 수행해낼 수 있다. 이렇게 놀랍도록 정교한 기계는 사실, 많은 수학자들을 좌절시키던 순간 만들어지기 시작했다. “400년의 축적”, 우리의 제2의 심장과도 같은, 보편만능 기계가 탄생하는 순간으로 잠시 되돌아가 보자.

‘기계’에 관한 고찰

우리는 일상생활 속에서 ‘기계적’이라는 단어를 자주 사용하곤 한다. “저 사람, 참 기계적이다”와 같이. 기계적인 사람은 어떤 사람인가? 대부분의 상황에서 감정을 배제하고 대처하는 사람을, 항상 해왔던 것처럼만 행동하는 사람을, 우리는 기계적인 사람이라고 부른다. 기계적인 노동은 어떤 노동인가? 복잡한 생각을 거칠 필요 없이, 이미 주어진 과정에 맞추어 진행할 수 있는 노동을, 우리는 기계적인 노동이라고 부른다.

기계들은 항상 해왔던 일만 수행하는 것처럼 보인다. 기계들은 스스로에게 주어진 과업을 스스로 복잡한 과정을 떠올리며 수행하기보다는, 스스로에게 이미 탑재된 과정을 이용하며 수행해 나간다.

기계를 정의하는 것은 매우 어려워 보인다. 그러나 이러한 매우 어려워 보이는 정의 내리기를, 튜링 소년이 성공해 냈으며, 소년의 정의는 아직까지도 깨지지 않고 견고하게 그 위치를 지키고 있다.

튜링 소년은 튜링기계라는 보편만능의 기계 한 대를 정의 내린다. 이 기계는 여러 부품들로 이루어져있는데, 메모리 역할을 하는 테이프, 메모리에 읽고 쓰는 장치, 작동 규칙표, 그리고 규칙표를 따라서 잘 작동하는 장치들이다. 튜링 소년은 기계 부품들을 이용하여 만든 기계로 돌릴 수 있는 것을 ‘기계적인 방식’이라고 정의 내렸다.

튜링이 정의한 기계 부품들로 작동 가능한 기계는 매우 놀라운 힘을 가지고 있다. 다른 모든 기계들을 흉내 낼 수도 있으며, 모든 기계적인 계산을 하나의 기계가 해결해낼 수도 있다. 즉, 튜링 소년이 고안해 낸 기계는 서로를 흉내낼 수 있는 보편적인 기계이며, 단 한 대의 기계만으로 모든 기계적인 문제를 해결할 수 있는 만능적인 기계라는 것이다. 튜링 소년이 정의내린 기계 부품들로 돌아가는 이 기계 덕분에, 오늘날 우리는 우리가 직접 풀어내기에는 너무나도 복잡한 문제들을, 한 번에, 매우 빠르고 정확하게 풀어낼 수 있다. 이러한 빠르고 정확한 계산을 위해 단 한 대의 튜링 기계만이 필요하다는 것은 매우 놀라운 사실이다. 단 한 대의 기계만으로, 우리는 너무나도 다양한 문제들을 해결할 수 있다.

그런데 튜링 소년은 왜, 어쩌다, 어떠한 방식으로 기계적인 모든 업무를 수행할 수 있는 위대한 보편만능의 기계의 설계도를 작성할 수 있었던 것일까? 단지 그가 지닌 천재성 덕분이었을까?

‘튜링 소년’에 관한 고찰

이 글의 목적은 ‘천재성’이라는 산 위에서 우리를 굽어보고 있는 튜링을 끌어내리는 것이다. 혹은 ‘천재성’이 무엇인가에 대한 고찰이라고 할 수도 있겠다.

튜링과 같은 천재들이 의도한 바는 아니겠지만, ‘천재’와 같은 단어는 사람들을 지레 겁먹게 한다. ‘나는 천재가 아니니까 저 사람들처럼 할 수 없을 거야’ 라며 포기하게 만드는 원인이랄까. 하지만 일명 ‘천재’들의 사고방식과 그들의 ‘위대한’ 발견들을 하나하나 뜯어보고, 그들을 ‘천재’로 만들어 준 요소들을 나열해본다면, 의외로 ‘나도 할 수 있겠다’라는 생각이 들 수도 있지 않을까? 어떠한 것을 적나라하게 알게 된다면, 그것에 대해 느끼는 두려움, 절망감 등은 사라질 것이다. 이 글을 통해 “알고 보니, 그들도 별거 아니었더라!” 같은 반응을 이끌어내고 싶다. 그러기 위해 어찌 보면 천재 중의 천재인(Np문제 같은), 튜링이 튜링 기계를 어떻게 고안하게 되었는지, 그 사고 과정을 추적해보고자 한다.

천재성

‘천재성’은 무엇일까? 우리가 누군가를 ‘천재’라고 부른다면, 그들이 가지고 있는 공통적인 특성은 무엇일까? 이를 알아낼 수 있다면, 모두가 천재의 사고방식을 가질 수 있지 않을까. 이를 탐구해보기 위해서는 우리가 어떻게 정보와 지식을 학습하는지 알 필요가 있을 것 같다.

정보와 지식

지식은 어떻게 생산될까? 지식은 암기 혹은 이해로 생성된다. ‘암기‘는 것은 새로운 정보를 그 자체로 기억하는 것, ’이해’는 여러 정보들을 연결지어서 새로운 정보를 생산하는 행위이다. 사람이 지식을 쌓아가는 과정에서 암기는 극히 일부분만을 차지한다. 우리가 암기하는 정보들은 ‘정의’ 혹은 ‘경험적 정보’ 2가지로 보인다. 이를테면 알파벳, 혹은 숫자나 덧셈, 뺄셈의 의미와 같은 ‘정의’들과, 불은 뜨겁다는, 문에 새끼발가락을 찧으면 아프다는, 미시세계에서는 거시세계에서와 원지의 움직임이 다르다는, 이러한 경험적으로 습득하는 정보들 말이다. 그 이외의 고차원적인 정보들은 이러한 기본 정보들의 연결, 즉 이해로 습득한다. 이러한 정보의 연결이 더욱 많아질수록 그 정보는 더욱 단단히 기억된다. 다른 연결된 정보를 떠올린다면 그로 인해 그 정보도 같이 떠오르게 할 수 있기 때문이다.

수학 과목을 예로 들어 보자. 우리는 방정식, 함수 같은 기본 개념들을 먼저 배운다. 여기서 배운다는 것은, ‘무엇인지 아는 것’ 정도이다. 말 그대로 수학적 정의들을 암기하는 정도이다. 그 다음에 우리는 배운 개념들을 조합해서 문제 유형 풀이법들을 이해하고 외워간다. 일차방정식 푸는 방법, 기울기와 y절편이 주어진 함수를 구하는 방법 등을 배우다 나중에는 방정식과 함수를 연결짓게 되고, 다른 줄 알았던 두 개념 사이에서 공통점을 찾게 된다. 이를 통해 문제들을 더욱 유연하게 풀어갈 수 있게 된다. 이렇게 사람들은 정보들을 연결지어 이해함으로써 자신의 ‘스키마’를 구축해나간다. 이 ‘스키마’는 한 사람이 암기, 이해한 정보들이 서로 연결되어 있는, 일종의 뉴런과 시냅스 같은 구조라고 할 수 있다. 그렇다면 어떤 사람이 ‘창의적’이라는 것은 무엇일까?

정보의 거리

‘창의적’인 사람은 거리가 멀리 떨어진 정보들을 연결짓는다. 정보들에는 거리가 있다. 가까운 거리의 정보들은 연결짓기 편하다. 예를 들어 더하기와 곱하기를 연결짓기는 쉽다. 2x4는 2+2+2+2, 2를 네 번 더한 것이다. 먼 거리의 정보들은 연결짓기 힘들다. 곱하기와 인간 존재의 의미, 손가락의 개수와 미시세계에서의 양자의 움직임 등, 그 연관성을 상상할 수 없는 것들이 거리가 먼 정보들이다. 일명 천재들의 발명, 혹은 발견이 특별하게 보이는 이유는 그들이 갖고 온 아이디어가 사람들이 흔히 갖고 있는 정보들에게서 ‘멀리 떨어져 있기’ 때문일 것이다. 즉 평범한 사람들의 스키마로는 그 정보가 연결되지 않는다는 것이다. ‘기계적인 것들’이라는 정보와, ‘무한히 긴 테이프, 상태표시기, 그리고 규칙표‘라는 정보를 연결지을 수 있는 사람이 얼마나 될까? 튜링이 천재라고 불리는 이유가 이것이 아닐까. 천재들은 우리가 보통 가지고 있는 정보들에서 아득히 떨어진 곳의 정보를 찾아내고, 우리가 알고 있던 정보들과 연결짓는다.

건너건너

하지만 천재들이라고 해서 갑자기 한 정보에서 멀리 떨어진 정보로 점프할 수 있을까? 인간인 이상 쉽지 않을 것이다. 아니, 애초에 한 정보에서 비상식적으로 멀리 떨어진 정보로 이동한다는 것은, 이해할 수 없는 정보라는 말이다. 결국, 천재들이 도달한, 평범한 사람들의 평범한 스키마에서 아주 멀리 떨어진 정보들은, 그 평범한 스키마에서 그들 나름대로 건너건너 다리를 놓아 도달한 것이다. 간단하게 말하면, 그들은 더 깊이, 많이 공부했다는 뜻이다. 기본적인 지식들에서 착실히 건너건너, 그 중간 다리를 모르는 사람들은 상상할 수 없는 곳까지 도달한 사람들인 것이다.

그 중간 다리를 탐구해 보자. 튜링은 어떻게 ’튜링 기계‘라는 천재적인 발명에 도달할 수 있었던 것인가? 그의 생애를 살펴보면서 이에 대한 답에 다가갈 수 있으면 좋을 것 같다.

1936년 논문까지의 튜링의 생애

많은 천재들이 그렇듯, 튜링은 어릴 때부터 남다른 모습을 보였다. 9살때부터 만년필을 개발해서 부모님께 편지를 썼고, 그 편지에는 본인이 고안한 발명품들의 도면들이 동봉되었다고 한다. 또한 그는 매우 독립적인 학생이었으며, 모든 문제를 자신만의 방법으로 해결하는 것을 좋아했다. 선생님들의 가르침을 귀담아 듣기보다는, 자신만의 방법을 찾아 나섰다고 할 수 있다. 그래서 튜링은 학교에서 대개 ‘이단아’ 취급을 받았다.

킹스 칼리지 도서관 튜링 자료모음, 튜링이 부모에게 보낸 편지 (catalogue reference K 1) 앨런 튜링 : 컴퓨터와 정보 시대의 개척자 재인용.

그러나 계속 보고되고 있는 바와 같이, 튜링은 『모든 어린이가 알아야 하는 자연의 경의Natural Wonders Every child Should Know』라는 책을 통해 과학적 설명이라는 개념에 눈을 떴고, 그때부터 인간의 규약에 반대되는 것으로서 자연은 그의 주의를 사로잡았다... (중략)

그는 학교에 다니는 동안에는 그 자신의 우선권을 추구하면서 가능한 한 많은 것을 무시했고, 대영제국의 요구들에 반항적이라기보다는 차라리 당혹스러워했고 서툴렀다. 1925년에 그는 어머니에게 이렇게 편지를 썼다. ‘저는 제가 하려는 순서로 일련의 실험들을 하고 있어요. 저는 항상 에너지를 가장 적게 낭비하면서 자연에서 가장 흔한 것으로부터 사물들을 만들기를 원하는 것 같아요.

튜링 : 이미테이션 게임(앤드류 호지스 지음, 박정일 옮김. 2015 11-12p

이러한 그의 성향은 그가 다른 사람들과는 다른 지식, 혹은 사고 체계를 구축하도록 만들었다.	그는 항상 혼자서 공부했으며, 그렇기에 그의 스키마는 일반적인 사람들의 스키마와는 점점 멀어지고 있었다(그는 16세 때 양자역학을 공부했다).

1933년 그는 러셀의 ’수리철학 입문‘을 읽었고, 그때부터 수학 혹은 논리학에 관심을 넓혀갔음을 알 수 있다. 20대 초반에 양자역학, 논리학, 수학, 과학 등에 대한 지식을 다방면으로 습득하고 있었던 것이다.

그가 모컴 여사에게 보낸 편지에서는 영혼과 자유 의지에 대한 그의 생각이 서술되어 있다. 젊은 날의 튜링은 인간의 정신은 무엇인가? 에 대한 고민 역시 했던 것으로 보인다.

이러한 튜링의 스키마가 컴퓨터 원천설계도의 고안에 큰 영향을 미쳤을 것이다. 그 시절에는 computer라는 단어가 현재 우리가 생각하는 컴퓨터를 의미하지 않았을 것이다(컴퓨터가 발명되기 이전이니까). 대신 computer는 정부 기관 등에서 문서를 베껴 적거나 하는 단순 노동을 하는 사람들을 의미했다. 튜링의 computer는 사람 그 자체였다. 튜링 기계의 상태표시기가 바로 정신 상태를 의미했다. 튜링은 실제로 이렇게 말했다.

어느 순간이든 컴퓨터(계산하는 사람)의 행동은 그가 관찰하고 있는 기호들과, 그 순간에서의 그의 ’정신의 상태‘에 의해결정된다. 우리는 그 컴퓨터(계산하는 사람)가 한순간에 관찰할 수 있는 기호들이나 네모칸의 수에 한계 B가 존재한다고 가정할 수도 있다...(후략)

위와 같음. 28-29p

이제 어느정도 납득이 갈 수 있다. 왜 튜링 기계에서 테이프, 상태표시기, 규칙표 세 가지의 부품이 쓰인 것인가. 튜링은 사람 그 자체를 상상하였던 것이다. 실제로 글을 베껴 쓰는 등 기계적인 작업을 반복하는 사람. 그리고 정신 상태를 반영하는 상태표시기라는 신박한 부품. 그리고 그가 이 컴퓨터를 만들도록 이끈 것은 수학과 논리학에 대한 관심이었다.

징검다리

튜링이 ’기계적‘에서 ’튜링 기계‘로 점프할 수 있었던 징검다리는 바로 ’사람‘이라고 생각한다. 말도 안 되고, 멀어 보였던 두 정보가 ’단순 반복작업을 하는 사람‘ 이라는 정보를 끼우니까 그럴듯하게 연결되는 것 같다. 아마 그 이외에도 수많은 요인들이 튜링이 튜링 기계를 만들 수 있도록 이끌었을 테지만, 그래도 큰 징검다리 하나를 발견한 느낌이다.

어느 사람이 오더라도, 그 사람이 튜링이 아니더라도. 튜링의 생각 과정과 똑같은 과정을 밟고, 튜링이 아는 것을 똑같이 알았다면, 아마 그 사람이 튜링 기계를 발명할 수 있지 않았을까, 나는 이렇게 생각한다. 그렇기에 천재적인 발명의 기원을 밝혀내고, 튜링이라는 사람의 생애를 분석하는 것은 아마 다른 수많은 천재들을 만들어내는 데 주요한 역할을 할 수 있지 않을까. 이 글을 읽고 많은 사람들이 이런 생각을 했으면 좋겠다.

나도 할 수 있을까.

라고 말이다.

2장. 가르침처럼 가혹한 가르쳐짐은 없다.

여행의 시작.

- 이상으로 2120년 12월 29일 오전 9시 뉴스를 마칩니다. 고맙습니다.

아나운서의 뉴스 종료를 알리는 사인이 떨어지자마자, 나는 곧장 짐을 챙겨 문 밖으로 뛰쳐나갔다. 생전 처음 혼자 떠나는 여행이었다. 아무런 계획도 없이, 일단은 무작정 걷기 시작했다. 처음에는 뚜벅뚜벅 걷다가, 점차 엄청난 해방감을 느끼며 앞쪽 방향으로 달려 나가기 시작했다. 다만 내가 잊고 있었던 것은...

여행 1일차.

나는 엄청난 길치이며, 이 지역에 이사를 온 지 얼마 되지 않은, 이방인에 가까운 존재임을 잊고 있었다. 아무런 것도 살펴보지 않은 채로, 무작정 달려 나온 결과, 내가 지금 서있는 이곳은 황량한 사막.

2099년부터 시작된 심각한 수준의 환경오염과 천문학적인 변화-지구 자전축에 큰 폭의 변화가 진행되었고, 공전 이심률에도 변화가 생겼다-는 지구의 수많은 곳을 황량한 사막으로 만들어 버렸다. 이곳에서 벗어나기 위해 나는 사막의 곳곳을 돌아다녀보았으나, 사람으로 보이는 물체는 어디에도 보이지 않았다.

2100년부터 진행된 인공지능이 탑재된 로봇과 인간의 공생 프로젝트는 사람들의 바깥으로의 외출을 감소시켰다. 전 세계적인 차원에서 이를 개선하고자 과도한 양의 인공지능 로봇을 길거리에 풀어두었고, 그 결과 내가 지금 마주한 것은...

거대한 크기의 하얀색 솜뭉치를 닮은 인공지능 로봇. 어릴 적 나를 사랑해주시던, 나 또한 사랑했던, 할머니께서 들려주셨던 빅 히어로 영화 이야기에 나오는 주인공 로봇 베이맥스를 닮은 외향을 지녔다. 친근감에 아무 의심 없이 로봇에게로 달려가 물었다.

- 저기, 길 좀 물읍시다.

외모를 보고 사람을 판단하지 말라 했던가. 로봇도 외모를 보고 판단하면 안 되는 것이었다. 그 로봇에게서 돌아온 답변은 다음과 같았다.

- 꼬마 인간, 나에게 질문을 하려면, 내 질문들에 대한 답을 먼저 해 주어야 한다. 나의 요청에 승낙하겠는가? 승낙의 표시를 위해서는 고개를 위, 아래 방향으로 한 번 끄덕이고, 거절의 표시를 위해서는 고개를 왼, 오른쪽 방향으로 두 번 저어주면 된다.

질문 하나만 하겠다는 사람에게, 되레 자신의 질문에 대한 답을 달라는 저 무모한 로봇은 대체 무엇인가! 다른 도움을 구할 만한 사람이나 로봇을 찾기 위해 아무리 주위를 둘러보아도, 내 주변에는 지금 내 앞에 서 있는 이 뚱뚱한 흰색 로봇 하나밖에는 없었다. 나는 기분이 상한 채로, 어쩔 수 없이 고개를 끄덕이며...

- 나는 길을 물어보려고 왔는데, 내가 지금 여행 중이라 조금 바빠. 첫 번째 질문부터 빨리 해 줄래?　보이다시피 내가 지금 좀 많이 급해서 말인데.

나의 요청에 로봇은 바로 질문을 하기 시작했다.

- 나를 만들어 준 제페토가 나의 심장은 컴퓨터로 만들어졌다고 했다. 그리고 제페토는 컴퓨터란 보편 만능하고, 거의 모든 문제를 풀 수 있다고도 했지. 그러나 나는 요즘 ‘감정’이라는 것에 대한 문제를 제대로 풀어나가고 있지 못하다. 컴퓨터로 모든 문제를 풀 수 있는 것 같은데, 왜 나의 심장, 컴퓨터는 모든 문제를 풀 수 없는 것인가? 이것이 나의 첫 번째 질문이다.

로봇의 질문에 나는 꽤나 당황할 수밖에 없었다. 갑자기 컴퓨터에 관한 질문이라니? 길 하나 찾자고 내가 컴퓨터 박사가 되어야 한다는 현실에 눈물이 나올 것만 같았지만, 최대한 머리를 굴리며 첫 대답을 내놓았다.

- 컴퓨터로 풀 수 없는 문제가 있다고? 그건 너의 착각인 것 같은데. 풀 수 없는 게 아니라, 너무나도 느리게 풀어서 마치 못 푸는 것처럼 보이는 것일 뿐이야. 이정도면 충분한 답변이 되었겠지? 자, 이제 어서 다음 질문을 줘.

- 느리게 푼다는 것이 대체 어떤 의미지?

- 음... 일단 ‘컴퓨터로 문제를 푼다.’라는 것의 의미부터 알아보는 것이 좋을 것 같네. 컴퓨터로 문제를 푼다는 것은, 튜링기계라는 소프트웨어를 돌리면서 문제풀이를 자동적으로 진행하는 행위를 말해. 이때 튜링기계로 만들어내는 문제풀이 방법을 ‘알고리즘’이라고 부르지.

그런데 알고리즘을 실행할 때 드는 비용이 있어. 그 비용을 이제부터 ‘복잡도’라고 부를게. 복잡도의 비용의 단위는 지금 여기, 내 지갑 안에 들어있는 돈의 단위와는 달리, 시간이나 메모리야. 어떤 미지의 알고리즘을 실행하여 답을 낼 때, 얼마만큼의 시간이 드는지, 또 얼마만큼의 메모리가 필요한지가 바로 알고리즘의 복잡도에 해당하는 것이지. 여기까지는 잘 알겠니?

- 좋아. 기계적인 방식을 통해 자동화되는 문제 풀이법. 그 알고리즘을 수행하는 데 드는 시간과 메모리와 복잡도.

- 음 정확히 이해했어! 그렇다면 복잡도가 굉장히 큰 알고리즘이 분명히 존재하겠지?

- 그렇지.

- 어떤 알고리즘은 그 복잡도가 굉장히 커. 우주가 죽어나가기 전까지 기다려도 그 계산이 끝마쳐지지 않을 정도로 커. 즉, 문제 풀이는 계속하여 진행되지만, 인간은 아무리 기다려도 그 문제 풀이가 완료되지는 않는 것이지. 계속해서 기다려도 그렇게까지 복잡한 알고리즘은 답을 도출해주지 않을 거야.

- 그렇다면 느리게라도 컴퓨터는 모든 문제를 다 풀 수 있는 것이 아닌가? 인간은 수명이 짧지만, 나는 영원히 살 수 있는걸.

- 음... 그건 아니야. 멈춤 문제라는 것이 있어. 물론 멈춤 문제 말고도 컴퓨터로는 절대로 해결할 수 없는 여러 문제들이 존재해.

- 멈춤 문제? Halting Problem을 말하는 것인가?

- 그래 맞아. 어? 너 멈춤 문제가 무엇인지를 아는 거니?

- 사실 예전에, 딱 한번 그 이름만 들어본 적이 있어. 나에게 멈춤 문제란 무엇이지, 그리고 왜 튜링 기계를 이용해서 그 문제를 해결할 수 없는지를 알려줄 수 있겠니?

- 좋아. 내가 컴퓨터로 멈춤 문제를 해결할 수 없음을 증명해 보인다면, 너의 질문에 대한 충분한 답이 되겠지?

- 그렇게 되겠지. 자, 어서 설명해봐...!

- 우선, 튜링 기계로 잠시 돌아가 보자. 컴퓨터의 소프트웨어를 구성하는 튜링 기계. 튜링 기계의 개수는 자연수의 개수만큼만 존재해. 왜냐하면, 어떤 미지의 튜링기계들은 각자 자신만의 고유한 자연수 하나로 표현되는 것이 가능하기 때문이야. 그렇다면, 소프트웨어의 개수는 총 몇 개일까?

- 각 소프트웨어, 즉 튜링기계들은 자연수 하나에 대응되니까... 소프트웨어는 자연수의 개수만큼 존재하는 것인가?

- 그래 맞아. 그런데, 자연수와 관련된 문제는 셀 수 없이 굉장히 많아.

-왜지? 각 자연수와 관련된 문제 하나하나씩을, 각 자연수 하나에 대응시키면 자연수 개수만큼의 문제가 발생하는 것이 아닌가?

-음... 그것은 아니야.

자연수에 대한 참과 거짓을 판별하는 문제들에 대해 잠깐 생각해 볼래? 각각의 문제마다 마치 두 가지 갈림길에 서 있는 것처럼, 각 자연수에 대한 참과 거짓으로, 그 답이 나뉘게 되겠지? 즉, 자연수에 대한 참 또는 거짓을 알아내는 문제는 자연수에서 참이나 거짓, 두 가지 경우로 가는 함수에 해당하게 될 거야. 그렇다면, 이러한 문제의 개수는 자연수만큼의 개수에 해당하는 것일까?

- 내 계산에 따르면, 아니야. 문제마다 답은 하나. 각 자연수에서 참 또는 거짓으로 가는 함수들. 그렇다면 네가 제시한 문제의 개수는 [eqn: 2 ^{NU }]([eqn: N]은 자연수의 개수)이 되겠지. 마치 자연수의 부분집합의 개수를 카운트하는 방식과 비슷하군. 이는 자연수의 개수보다 훨씬 많은 개수에 해당해.

- 그래, 네 계산이 정확해. 문제를 풀어낼 수 있는 알고리즘을 지닌 소프트웨어, 튜링 기계들은 이 세상에 존재하는 자연수의 개수만큼만 존재해. 그러나 이 세상에 존재하는 문제들의 개수는 자연수의 개수, 즉 이 세상에 존재하는 튜링 기계들의 개수보다 많은 것이지. 즉, 컴퓨터로 풀 수 없는 문제는 셀 수 없이 많을 거야.

-그렇군. 그렇다면, 멈춤 문제의 경우에 대해 좀 더 자세하게 설명해줄래? 자연수의 참 거짓을 판별하는 문제가 멈춤 문제인 것인가?

- 음... 멈춤 문제로 돌아가기 위해 잠시 튜링의 시절로 돌아가 보자.

튜링은 괴델의 불완전성 증명을 새로운, 다른 방식으로 증명하려 시도했었지. ‘모든 참인 명제를 차례로 만들 수 있는 튜링기계’를 A라고 부르자.

A는 존재하지 않는다.

위 명제를 증명하기 위해, 튜링은 ‘테이프에 표현된 기계가 멈출지, 또는 멈추지 않을지를 정확히 판단할 수 있는 기계’, 즉 ‘멈춤 문제를 정확히 판단하는 기계’ H가 가능한지 알아보았어.

만약 A가 존재한다면 우리는 손쉽게 H를 만들어낼 수 있을 거야.

A가 존재하면 H가 존재한다.

그런데, 튜링은 H가 존재하지 않음을 증명해 냈지.

H는 존재하지 않는다.

A가 존재한다면, H가 존재해. 그러나 H는 이 세계에 존재하지 않지. 그렇다면 A는 존재할까?

- H가 존재하지 않으니, A 또한 존재할 수 없지.

- 그래 맞아. 지금까지 내가 설명한 것이 튜링의 증명 과정이야.

- 튜링의 증명 과정은 참 완벽했구나. 그런데, 너의 증명 과정에는 무엇인가 빠진 부분이 있는 것 같지 않은가?

- 무엇이 모자라다고 느낀 거니?

- 튜링은 어떻게 멈춤 문제를 푸는 기계 H가 존재하지 않음을 증명해 낸 것이지?

- 아아..! 그래.. 그 부분을 내가 설명하지 않았구나.

튜링 기계는 아까 설명했듯이, 자연수의 개수만큼 존재해. 그런데 멈춤 문제를 푸는 H는 튜링기계의 개수가 자연수의 개수보다 많음을 보여줄 수 있지. 이는 튜링 기계의 본질, 자연수의 개수만큼 존재한다는 사실에 어긋나는 것이지. 따라서 H는 존재하지 않는 거야. 이 정도면 충분하지?

- 아직 충분치 않아. 조금 더 자세히 설명해 줄래?

- 우선, 튜링기계 하나씩은 각각 하나씩의 자연수에 대응시킬 수 있지? 튜링기계 각각 하나씩마다 자연수 번호를 붙여보자. 1번 튜링기계, 2번 튜링기계, 3번 튜링기계 ...

이제, 튜링기계마다 각각의 Input 값에 대해 문제를 풀고 나서 멈출지, 멈추지 않을지, 그 결과를 기록해 보자. 멈춘다면 1, 멈추지 않는다면 0을 기록해 보자.

	[eqn: Input _{1}]	[eqn: Input _{2}]	[eqn: Input _{3}]	...
[eqn: TM _{1}]	0	1	0	...
[eqn: TM _{2}]	0	1	1	...
[eqn: TM _{3}]	1	0	1	...
...	...	...	...	...

- 그래. 표를 이용해서 각 입력값에 대해 튜링기계가 멈출지, 멈추지 않을지를 숫자 0과 1을 이용하여 표현했구나. 계속해서 설명해 봐.

- 그런데 이 표를 잘 들여다보면, 우리는 새로운 튜링기계를 만들 수 있어. 먼저, 이 표의 각 대각선에 도출된 값에 각각 +1이라는 작업을 수행하여 결과값을 내놓는 튜링기계를 만든다고 하자. 그렇다면, 이 튜링기계는 위 표에 표현이 되어 있을까?

- 그러한 튜링기계는 위 표에 표현되어 있을 수 없지.

- 그래. 우리는 이러한 방식을 이용해서 새로운 튜링 기계를 만들어낼 수 있어. 그런데, 우리는 저 표에 모든 튜링 기계, 즉 자연수로 넘버링이 되어 있는 모든 튜링 기계들을 표현해 둔 상태야. 그런데, 이미 존재하는 모든 튜링 기계가 아닌, 새로운 튜링 기계가 만들어진다니! 이건 모순이야. 모순이 아니려면, 이미 위 테이블에 표현이 되어 있었어야 해.

- 아하! 이해했어. 그렇다면, H는 이 세상에 존재할 수 없는 것이었구나.

- 그래, 정확해! 이제 너의 질문에 대한 답이 충분히 잘 되었니?

- 그래. 그렇다면, 지금 이 세상에는 복잡도가 매우 낮아 컴퓨터가 수월하게 풀어낼 수 있는 문제들, 복잡도가 꽤 높아 컴퓨터가 조금 고생하며 풀어낼 수 있는 문제들, 복잡도가 굉장히 높아 컴퓨터가 풀어낼 때까지 기다리기 거의 불가능한 무시무시한 문제들이 도사리고 있는 것이군.

이 세상에는 컴퓨터로 풀 수 있는 문제들, 그리고 컴퓨터로는 풀 수 없는, 멈춤 문제와 같은 문제들이 모두 존재하는 것이군. 좋아. 내 질문에 대한 답이 충분히 된 것 같구나.

여행 2일차.

이 망할 로봇의 질문 공세에 벌써 하루가 꼬박 지났다. 얼마나 더 설명을 해야 하는 것인가?

...막막하다.

“그러면 이제 두 번째 질문을 하겠다. 나를 만든 제페토는, 참 이상한 사람이었어. 인간들 말로 표현하자면, ‘괴짜’였지. 그는 거의 모든 문제를 해결할 수 있는 천재였지만, 그런 그도 손대도 풀리지 않는 문제들은 분명히 존재했지. 그런 문제들에 막혀 좌절할 때마다 그는, ‘수학적으로 참인 모든 명제를 찾아내는 것도 불가능하지...’ 라고 혼자 중얼거리곤 했어. 나는 계속 이게 무슨 말인지 궁금했다, 인간. 내가 만족할 만한 정도로 이를 설명해 봐라.”

어제는 컴퓨터 전문가가 되어야 했는데, 오늘은 수학자란 말인가? 한숨이 나온다.

그래도, 마침 옛날에 학교에서 이와 관련된 수업을 들었던 것 같기도... 기억을 되짚어 본다.

“음... 수학적으로 참인 모든 명제를 찾아내는 것은 불가능하댔지.”

말을 이어나갔다.

“말 그대로야. 1928년에 힐베르트라는 대담한 수학자가 있었어. 그는 몇 가지 추론 규칙만으로 수학의 모든 명제를 증명할 수 있을 것이라고 생각했대. 그렇게 되면 수학자들은 명제들을 증명하기 위해 뼈 빠지게 고생하지 않아도 될 테니까.

”만약 그게 가능하다면 수학자들은 다 실업자가 되겠군.“

그가 한 마디 얹었다.

음, 어쩌면 그럴 수도.

”어.. 맞긴 하네... 그래. 어쨌든 이 힐베르트라는 사람은 모든 수학자들을 실업자로 만들어버리고 싶었는지도 모르겠다. 편안하게 의자에 앉아 라디오나 듣고 싶었을 수도? 그런데 이게 별로 맘에 안 드는 사람도 있었나 봐. 실업자가 되기 싫었던 걸까. 괴델이라는 사람이 “힐베르트, 당신은 틀렸어!” 라며 등장한 거지.“

”근데 잠깐만, 추론 규칙이 뭔데 그것만 가지고 수학의 명제들을 증명할 수 있다고 말하는 건가?“

확실히, 설명을 너무 빨리 했는지 그는 바로 궁금한 점을 캐묻기 시작했다.

”음, 예를 들면 내가 “지구는 둥글다, 라고 말하거나, ”1+1=2이다“라고 말한다면 이 명제들은 참이지? 그런데 만약 내가 “지구는 둥글다, 그리고 1+1=2이다. 라고 말하면 이 명제도 참이지? 이 명제가 참인 이유는, 참인 명제가 참인 명제와 ‘그리고’라는 접속사로 연결되었기 때문이야. ”(참인 명제) 그리고 (참인 명제)“ 라는 문장은 반드시 참이 되는 추론 규칙이 성립하는 거지. 이러한 추론 규칙은 수학적 명제에서도 성립할 거야. 고등학교 때 ‘집합’ 단원에서 배웠던 그리고, 또는, 아니다 기억나지? 그것들로 수학적 명제들을 조립할 수 있다는 거야. 그렇다면, 우리는 반드시 참인 명제 몇 가지에서 수학의 모든 사실들을 이러한 규칙으로 찾아낼 수 있지 않을까? 라는 게 힐베르트의 생각이었고, 그는 이것이 가능하다고 주장했어.

”좋다. 고등학교는 다녀본 적 없지만, 추론 규칙이 무엇인지는 이해했다. 그렇다면 괴델이라는 사람은 힐베르트의 주장을 어떤 식으로 반박한 것인가?“

”뭐, 말 그대로 추론 규칙만으로 참인지 거짓인지 증명해낼 수 없는 명제를 찾으면 되는 거지. 괴델은 참인지 거짓인지 증명도, 부정도 되지 않는 문제를 찾아버렸어. 그런데 심지어 참이긴 한데, 그것을 증명할 수 없는 문제도 찾아내 버렸어. 완전 찬물을 끼얹어 버린 거지.

“그 문제가 뭔데 말이지?”

이런. 골치가 아파졌다. 설마 했는데 여기까지 물어볼 줄이야...

“음... 이제부터는 이해하기 조금 어려울 수도 있는데. 그냥 대충, 그렇구나~ 하고 넘어가는 건 어떨까?”

“그럴 수는 없다. 빨리 설명해 봐라.”

성가신 로봇 녀석.

“일단 괴델은 먼저 참인지 거짓인지 증명도, 부정도 되지 않는 문제를 찾았어. 그 당시 수학계에서는 칸토어의 ‘연속체 가설’이라는 것이 핫했어. 이게 무슨 가설인지 간단히 설명해 볼게.”

그 녀석은 귀기울여 듣기 시작했다.

“그 즈음에는 무한의 세계에도 크기가 존재한다는 점이 밝혀지고 있었어. 예를 들어 짝수와 자연수, 무한한 두 집합 중에 어떤 집합의 크기가 더 클까?

”자연수가 짝수보다 더 많으니까 자연수 집합이 더 크지 않겠나?“

”하지만 칸토어는 두 집합을 잇는 일대일 함수가 존재한다면, 두 집합의 크기는 같다고 했어. 예를 들어, 방 개수가 무한한 호텔이 있다고 생각해 보자. 그런데 지금 모든 방에 손님이 꽉 차 있는 상태야. 이때 손님 한 명이 오면 지배인은 어떻게 새로운 손님에게 방을 만들어 줄 수 있을까?

“아, 이 내용은 데이터베이스에 있었던 것 같기도 하다. 손님들보고 옆방으로 옮기라고 하면 됐던 것 같은데, 예를 들어 1번 방 손님은 2번 방으로, 2번 방은 3번 방으로, n번 방은 n+1번 방으로...

”오 맞아. 그러면 이번에는 손님 무한 명이 무한 버스를 타고 왔어. 이들에게는 어떻게 방을 만들어 줘야 할까?“

”음... 손님들을 자기 방 번호에 곱하기 2를 한 번호의 방으로 옮기게 하면 되었던 것 같다. 1번 방은 2번 방으로, 2번 방은 4번 방으로, n번 방은 2n번 방으로.. 그러면 무한 개의 방이 빌 수 있을 테니까.

“맞아. 이 부분이 아까 말한 짝수와 자연수의 관계라고 할 수 있지. 무한 호텔에 2배를 해도 무한 호텔은 똑같지. 짝수의 개수도 자연수의 개수의 2배지만, 무한의 세계에서는 두 집합의 크기는 같은 거지.

”그러면 아까 두 집합을 잇는 일대일 함수가 존재한다면 두 집합은 같다고 했는데, 여기서 ‘일대일 함수‘ 라는 건 무슨 의미인 것인가?“

”일대일 함수를 생각해 봐, x하나에 각기 다른 y하나가 대응되어야 하잖아? 그러기 때문에 무한에서 무한으로 대응되기에, 그 x집합과 y집합의 크기는 똑같다고 생각할 수 있겠지.“

나는 말을 이어갔다.

”그런데 위에서 말한 무한대들을 모두 셀 수 있었지. 다른 말로 하면 번호를 매길 수 있다는 거야. 자연수의 집합이라고 하면 1은 1번, 2는 2번, n은 n번... 이렇게 번호를 붙이는 게 가능할 거고, 짝수 집합이라고 하면 2는 1번, 4는 2번, n은 n/2번... 이렇게 번호를 붙이는 게 가능하지. 이러한 무한을 ’셀 수 있는 무한‘이라고 불러. 그런데, ’셀 수 있는 무한‘ 이 있으면 ’셀 수 없는 무한‘도 있지 않겠어? 위에서 말했던 자연수, 짝수, 등은 ’셀 수 없는 무한‘ 이지만, 실수는 ’셀 수 없는 무한‘ 이야. 조금 더 구체적으로 말하면 유리수는 셀 수 있는데, 무리수는 셀 수가 없는 거지. 그렇기에 유리수와 무리수의 합인 실수는 셀 수 없게 되는 거야.“

”그건 또 어떻게 알게 된 거지?“

”칸토어 라는 수학자가 ’대각선 논법‘이라는 것을 고안해서 이 문제를 해결했어. 칸토어는 먼저 0부터 1 사이의 실수가 ’셀 수 있는 무한‘이라고 가정하고 0부터 1 사이의 실수들을 세 보기로 했어. 만약 이 실수들 중에서 셀 수 없는 실수가 있다면 가정이 틀린 것이겠지. 고등학교 때 배웠던 귀류법 증명이야.“

”그러니까, 나는 고등학교를 안 나왔다니까.“

무시하고 종이를 들고 간단하게 숫자를 적었다.

사진 출처 : https://www.dogdrip.net/157359805

”이렇게, 자연수에 대응되는 실수를 하나씩 써 볼게. 아무거나. 그리고, 대각선에 있는 수를 모아서 실수를 하나 만들 수 있겠지, 이것을 ’대각선 수‘라고 해 보자. 1번 실수에서 첫 번째, 2번 실수에서 두 번째, n번 실수에서는 n번째 실수를 골라서 만든 숫자 말이야. 자, 그러면 이 ’대각선 수‘와 어떠한 자리도 일치하지 않는 실수를 상상할 수 있지. 그런데, 만약 실수들을 모두 셀 수 있다면 이 ’대각선 수와 어떠한 자리도 일치하지 않는 실수’는 우리가 번호를 매겨 써내려간 실수 중 하나겠지. 하지만, 이건 불가능해. 왜냐하면, ’대각선 수와 어떠한 자리도 일치하지 않는 실수’가 우리가 번호를 붙여 써내려간 숫자 중 하나이기 위해서는 우리가 써내려간 수 중 k번째 수의 k번째 자리의 숫자와 ‘대각선 수와 어떠한 자리도 일치하지 않는 실수’의 k번째 자리 숫자가 일치해야 하는데, 이는 불가능하기 때문이야. 고로 가정 자체가 틀렸다고 할 수 있고, 결국 실수 집합은 ‘셀 수 없는 무한’인 거지.“

숨을 살짝 돌리고 다시 말을 이어갔다.

”본론으로 돌아와서, ‘연속체 가설’이란 ‘자연수의 크기보다 크고 실수의 크기보다 작은 무한은 없다’ 라는 명제야. 괴델은 이 가설을 통해 불완전성 정리를 증명했어. 칸토어의 이 ‘연속체 가설’이 바로 참인지 거짓인지 증명할 수 없는 문제였던 거지.

일단 괴델의 불완전성 정리를 먼저 설명하는 게 좋을 것 같아. 괴델은 제 1,2 불완전성 정리를 제시했는데, 결론부터 말하자면 이렇게 돼.“

나뭇가지로 바닥에 글씨를 적었다.

제 1 불완전성 정리 : 참이지만 증명할 수 없는 명제가 존재한다.

제 2 불완전성 정리 : 공리계의 무모순성은 해당 공리계에서는 증명불가능하다.

”그런데 너가 물어본 것은 ‘수학적으로 참인 모든 명제를 찾을 수 있는가?’ 였으니 제 1 불완전성 정리만 설명해도 충분하겠지.“

그 정도면 된다는 듯, 그는 고개를 끄덕였다.

” 1 + 1 = 2 이다, 라고 하면, 이것은 수학적인 명제지? 그렇다면 1 + 1 = 2 라는 명제는 참이다, 라는 명제를 생각해 보자. 이런 명제를 ‘메타수학적인 명제’ 라고 불러. 괴델은 이런 메타수학적인 명제를 수학적 명제로 편입시킬 수 있는 방법을 고안했어. 이것이 바로 괴델 수야.

“괴델 수?”

“그래. 이게 대체 무엇이냐 하면. 앞에 말했던 1 + 1 = 2 라는 명제를 생각해 볼까? 여기서 1에는 2, +에는 3, =에는 5, 2에는 7, 이런 식으로 숫자를 붙여 주는 거야. 여기서는 소수들을 부여했지. 그리고 이 숫자들을 다 곱한 것이 괴델수야. 그렇다면 1 + 1 = 2 의 괴델수는 2 x 3 x 5 x 7 = 210 이 되겠지. 한마디로 하나의 명제를 하나의 숫자로 일대일로 대응시키는 아이디어였던 거야. 명제의 구성 요소들에 소수를 부여한 이유도 그거지. 210을 소인수분해하면 반드시 2,3,5,7이 구성요소라는 것을 알 수 있으니, 일대일대응이 가능해지는 거야. 사실 괴델이 정확히 이와 같이 괴델 수를 부여하지는 않았지만, 그것을 설명하면 날이 샐 것 같아서 대강 이렇게 설명할게.”

그는 하늘을 바라봤다. 정말 해가 산봉우리에 걸쳐 어둑어둑해지고 있었다.

“알았다, 그 정도면 된 것 같군.”

“괴델은 그래서 이런 메타수학적 명제 p를 상상해. ‘p라는 명제는 증명할 수 없다’ 라고 말이야. 그런데 사실 이런 역설은 예전부터 많이 논의되어 왔던 것이고, 수학계에서는 이러한 ‘자기 자신에 대한 명제 p’와 같은 메타적인 명제는 논의에서 배제해 왔어. 하지만 괴델은 앞서 말한 ‘괴델 수’를 이용해 메타수학적인 명제를 수학적 명제로 표현해버린 것이지. 이것을 식과 기호로 복잡하게 나타낼 수도 있겠지만, 그 근본은 이것이야. ‘p라는 명제는 증명할 수 없다’ 라는 메타수학적인 명제를, 수학적 명제로 표현해버리면서 수학의 불완전성을 증명해 버린 거지.”

“음. 결론은 생각보다는 간단하군.”

“결론은 간단하게 보일지 몰라도, 그 결론에 도달하는 과정은 상당히 복잡해. 뭐, 원래 수학이라는 학문이 그런 것일지도 모르겠지만... 이 정도면 궁금증이 해결이 됐을까?”

“모든 궁금증이 해결되지는 않았지만...”

“거기까지 설명하려면 날이 샌다니까.”

“...알았다. 이 정도면 대강 이해된 것 같군”

번외. 과거 친구와 두바이에서.

첫째날

(숙소에서)

나: 와~ 요즘 좀 추웠는데 따뜻한 데 오니 좋네

친구: 그러게 나 두바이는 처음이라 그런지 뭔가 엄청 신기하다.

나: 짐은 다 풀었냐?

친구: 아 좀 기다려봐 (5분후) 이제 나가자.

나: 어디가지?

친구: 세상에서 제일 높다는 부르즈칼리파나 가자. 택시비 엄청 싸다니까 바로 택시타고 가는 걸로 해서

(택시에서)

친구: 이번학기 대학교에서 수업 뭐 들었냐?

나: 이것 저것 들었지. 전공도 쫌 듣고, 아 컴퓨터 관련해서도 들음.

친구: 컴퓨터? 뭔가 의외다. 너 정보시간에 잘 잤던거 같은데...

나: 잠깐 존거야 어디서 모함을 해

친구: 그렇다 치자 그래서 뭐 배움? 컴퓨터 언어 같은 거 배우나?

나: 아니 크게 보면 컴퓨터가 논리적으로 어떻게 작동되는지? 같은거 배우고 있음.

친구: 뭔가 감이 안오는데.... 예시를 좀 들어봐 구체적으로

나: 오 너 좀 학구적으로 변했네?? (갸웃거리며)

친구: 조용히 하고, 암튼 궁금해서 그럼. 요즘 컴퓨터가 엄청 핫하잖아

나: 음... 오키 그럼 컴퓨터의 논리체계가 실제로 어떻게 구현되는지에 대해서 설명해준다?

친구: 좀 어려울 것 같긴 한데 일단 설명해봐

나: 일단 최대한 설명해줄게. 근데 나도 전문가 수준은 아니니 감안하고

친구: 그건 이미 알고 있음.

나: 일단 컴퓨터의 논리체계부터....혹시 부울대수라고 들어봤어?

친구: 아니 나 문과야 궁금한거 있음 바로 물어볼께

나: 일단 부울대수의 시작은 부울이라는 사람이 사람의 생각이 조립되는 거라고 보는 것에서 시작해. 이때 부울은 사람의 생각이 세 개의 접속사 그리고(and), 아닌(not), 또는(or)만으로 충분히 조합될 수 있다고 판단했어. 여기서 이 접속사들은 참이거나 거짓인 문장들을 연결하는데......

친구: 잠시만, 부울이 생각을 조립되는거라고 보는 건 이해가 되었는데 생각할 때 반드시 접속사가 필요하지는 않은 거 아니야? 예를 들어 하늘을 보면서 ‘날씨가 참 좋네’하고 생각하는거에서는 접속사가 안 들어가잖아. 또 세 개의 접속사만으로 모든 생각을 조립하는 건 무리 아닐까? 특히 감정 같은 경우에 말이야. 난 니가 싫지 않아라고 말한다 해서 너가 좋다는 의미는 아니잖아. 문맥상의 모호함을 표현을 하지 못할 거 같아...

마지막으로 참과 거짓인 문장들은 연결한다 했는데 확실하지 않은 문장은 어떻게 되는거야? 뭐 우주에는 문명을 이룬 외계인이 산다와 같이 말이야.

나: 질문이 너무 어려운 거 아니야?

거기다 한번에 세 개나 해버리냐.....뭔가 열심히 배웠는데 기죽는 느낌이야. 일단 첫 번째 질문부터 대답할게. 부울은 생각의 조립이 하나의 문장으로 끝나는 게 아니라 두 문장을 조합하는 데에 집중했어. 예를 들어 서울인구는 100만이다 그리고 도쿄인구는 100만이다와 같이 말이야. 이 경우 앞에 있는 것과 뒤에 있는 것 모두 틀렸으니 저 문장 자체도 거짓이 되는거고. 여기까지 이해됐어?

친구: 음... 그러면 접속사 ‘아니’는 두 문장을 어떻게 연결하는 거야?

나: 아... 실제로 ‘아니’의 경우 접속사도 아니구나.... 말은 접속사 ‘아니‘라고 하지만 실제로는 형용사나 동사처럼 쓰이고 있어. 예를 들어, ’나는 100살이다’라는 문장에 붙어서 ‘나는 100살이 아니다,’와 같이 말이야. 편의상 접속사라고 하는거 같아.

친구: 아하 그렇구나! 이해됐어.

나: 그럼 다음 질문으로 가본다? 너가 문맥상의 모호함을 표현하지 못할거라 지적했는데 이건 맞는 말이야. 이건 부울대수(논리)가 가진 한계라 생각해. 실제 컴퓨터의 한계이기도 하고 애매함과 모호함 그리고 감정을 정확하게 판별하기는 사실상 힘드니까. 그래서 그다음 질문에서 나오는 참인지 거짓인지 모르는 거를 판별하는 거도 당연히 불가능하고. 너답지 않은 좋은 질문이었어.

친구: 너무 똑똑한 친구를 가지는 건 참 힘든일이지. 난 겪어본 적이 없어서 모르겠지만 이해해.

나: 에휴 이 정도면 불쌍하다. 아무튼 설명은 이어갈게. 그리고, 또는, 아닌을 각각 설명할거니 잘 들어 핸드폰 보지 말고. 첫 번째는 ‘그리고’야. 한번 예시를 들어볼게. ‘호랑이는 동물이다.’랑 ‘지구는 네모나다.’는 두 문장이 있다고 하자. 첫 번째 문장은 참이고 두 번째는 거짓인거는 알고 있지?

친구: 응.

나: 그럼 이 두 문장을 ‘호랑이는 동물이다 그리고 지구는 네모나다.’고 조합하면 이 조합된 문장은 참일까? 거짓일까?

친구: 당연히 거짓이지.

나: 맞아. 바로 이 논리를 이용한게 ‘그리고’야. 이제 실제 문장을 예로 들지 않고 편의상 문장 A와 B가 있다고 해보자. 문장 A와 B가 모두 참일 때 ‘그리고’을 이용해서 조합하면 참이 될거고, 그 이외의 경우네는 모두 거짓이 되겠지?

친구: 음... 그러네 ‘그리고’로 연결해서 참이 되려면 양 문장이 다 참이어야하니까.

나: 정확히 이해했네. 다음은 ‘또는’이야. 이건 너가 한번 유추해볼래?

친구: 쉽지. A와 B가 모두 참인채로 ‘A 또는 B’로 연결된다면 참. A와 B중 하나만 참이어도 ‘또는’으로 연결되기에 참. A와 B가 모두 거짓이라면 ‘A 또는 B’는 거짓이 되겠네. 맞지?

나: 오 맞아. 그리고 마지막으로 ‘아니’의 경우에 대해 설명할게. 앞서서 말한 바 있듯이 ‘아니’는 실제로는 형용사, 동사의 역할을 해. 예를 들어 ‘1+1=7이다’는 문장에 붙어서 ‘1+1=7이 아니다.’라는 문장이 되는거야. 이러한 모습에서 알 수 있듯이 ‘아니’라는 접속사가 문장에 붙으면 어떻게 될까?

친구: ‘아니’는 그 반대를 뜻하는 거니 본래 문장의 참과 거짓이 바뀌겠네. 본래 문장이 참이었으면 거짓으로 거짓이었다면 참으로.

나: 정확해!!! 그럼 이제 이 세 접속사를 좀 더 활용해 볼까?

택시기사: 도착했습니다~

나: 아 도착했네 그럼 부르즈칼리파 구경하고 돌아와서 다시 설명해줄까?

친구: 좋을 것 같음. 은근 듣다 보니 재미있네. 부울 대수가 어떻게 컴퓨터에 활용되고 있을지 궁금해진다.

2. 둘째 날

(숙소에서)

나: 어후 어제 갔다 와서 컴퓨터 관련 이야기 해주기로 했는데 너무 피곤해서 기절했네

친구: 그러게 근데 나도 너무 피곤해서... 오늘은 어디가지? 뭐 좋은데 없나?

나: 두바이 몰 어떰? 세계에서 거의 제일 크다잖아. 뭐 딱히 살건 없지만 구경하러 가보자.

친구: 마침 엄청 가까운데 그냥 걸어갈래?

나: 좋네 돈도 아끼고 좀 걷는거 괜찮지

친구: 걸어가면서 어제 하던 이야기 계속 하자.

나: 나름 재밌었나보네 나름 뿌듯하다.

(걸어가며)

나: 어제 했던 부울 대수 좀 기억나냐?

친구: 어. ‘그리고’ ‘또는’ ‘아니’ 까지 다 기억함.

나: 아 그러면 바로 그 세 접속사가 어떻게 더 활용될 수 있는지에 대해 설명할게. 혹시 부울 대수에서 대수가 의미하는게 뭔지 알아?

친구: 대수는 뭐가 뭐를 대신할 수 있는지 탐구하는 분야아니야?

나: 오 맞아 너에 대한 평가를 한 단계 상향 조정해야겠다. 아무튼 오늘은 부울 대수의 대수에 대해서 집중해서 볼게. 먼저 여기서 가정하는 게 있는데 A가 참이면 1, 거짓이면 0인걸로 가정하고 시작하는거야. 또, ‘그리고’, ‘또는’, ‘아니’를 사칙연산 기호로도 나타내볼 수 있는데 너는 그게 뭐 같아?

친구: 사칙연산 기호로? 어제까지는 뭔가 논리학 배우는 느낌이었는데 이제는 논리를 기호화 시켜서 수학적으로 접근해보려는 건가? 잠시만 생각 좀 해볼게. 일단 ‘아니’는 역의 형태이니 빼기 기호를 사용하면 적당할 것 같고, 음.... ‘그리고’와 ‘또는’은 어떻게 해야할지 모르겠다.

나: ‘그리고’는 곱하기 ‘또는’은 더하기로 표현하는게 표기법에 따른 규칙이야.

친구: 왜? 살짝 이해가 안 되는데? 더하기라는 기호를 사용한다고 가정하면, A가 참이면 1로 표현되고 B도 참이면 1로 표현될 텐데 그럼 값이 2가 나오지 않나? 그러고 보니 빼기도 참인 값에 ‘-’를 붙이면 –1이될텐데 뭔가 머리가 복잡해지는 느낌인데....

나: 그건 +가 계산기호가 아니라 ‘또는’이라는 단어를 대체하는 기호로 사용되었기 때문이야. 또 ‘그리고’가 곱하기, ‘또는’이 더하기, ‘아니’가 빼기인 것은 논리적인 이유가 뒷받침되어서라기 보다는 약속의 형태로 이해하는 것이 좋을 것 같아. 하지만 ‘또는’이 둘 중에 하나만 참이어도 참이 되는 문장을 만들며, ‘그리고’는 둘 다 참이어야만 참인 문장을 만든다는 점에서 보았을 때 논리적으로 어느 정도 설명되긴 해.

친구: 아하 그럼 이제 대수적인 부분에 들어가는건가?

나: 응 하지만 지금 걷고 있는 중이고 어디 쓸 데도 없으니 그냥 간단한거 위주로 해볼게. 먼저 문장 A, B, C가 있을 때 A+B+C 에서 교환법칙이 성립할까?

친구: 일단 A,B,C중 적어도 하나가 1, 즉 참이면 값이 계산 순서와 관계없이 1일 테니 이 경우엔 성립하네. A,B,C 모두 0일 경우에도 계산 순서와 값이 0이되니 교환법칙이 성립하는거 같아.

나: 오 맞아. 그래서 A+(B+C)=(A+B)+C라는 결과를 도출해낼 수 있는거야. 아 이제 다 도착했네. 어때 부울대수가 좀 이해가 가?

친구: 어느정도 파악한거 같아. 이제 내일은 이 부울대수가 컴퓨터에 어떻게 적용되고 있는지에 관해 하는건가?

나: 어 좀 감이 가?

친구: 아니 어떻게 적용될지 예상도 안된다. 야 그런데 너 지갑 들고 왔냐?

나: .......

3. 마지막 날

(숙소에서)

나: 벌써 마지막 날이네. 벌써 3일째라니 말이 안되는거 같아.

친구: 너가 어제 두바이몰에 지갑을 안들고 가서 점심, 저녁을 나한테 얻어 먹은건 말이 되고?

나: 미안 그래도 오늘은 내가 다 사준다 했잖아.

친구: 그럼 고기 먹으러 가야지. 이집 양고기가 그렇게 맛있다더라.

나: 가격도 생각보다 안 비싸네 바로 앞인데 걸어가자.

(음식점에서)

나: 이제 스위치 회로에 대해서 설명해줄게.

친구: 부울대수에서 중간단계 없이 스위치 회로로 가는거야?

나: 어 일단 들어봐. 일반적인 전기회로를 생각해봐.

친구: 생각하고 있어.

나: 스위치를 닫으면 전기는 흐르고, 스위치를 열면 전기는 흐르지 않겠지.

친구: 당연하지.

나: 스위치 회로에는 이 성격을 이용해서 만들 수 있는 연결이 세 가지가 있어. 그게 뭘까?

친구: 음.. 일단 학교에서 배웠던 직렬이랑 병렬은 알겠는데 나머지 하나는 잘 모르겠어

나: 나머지 하나는 뒤집기야. 스위치가 닫히면 전기가 흐르는데에 반해 뒤집기 회로는 그 반대로 닫히면 전기가 끊기고 열리면 전기가 흐르도록 한 장치야.

친구: 오.... 신기하네. 어 잠시만 이거 부울 대수랑 비슷한데?

나: 와 너 생각보다 눈치가 빠르다. 그러면 여기서 병렬 연결은 뭐 같아?

친구: 병렬 연결은 스위치가 하나만 닫혀도 흐르니까 ‘또는’과 비슷하겠네. 또 직렬 연결은 모두 닫혀야만 흐르니까 ‘그리고’, 뒤집기의 경우 역의 형태이니 ‘아니’겠다. 맞지?

나: 정확해.

친구: 그러면 궁금한게 있는데 부울대수가 발전되어서 스위치 회로가 생긴거야? 아니면 그 반대인거야?

나: 사실 서로서로가 영향을 주며 발전된 건 아니야. 단지 클로드 섀년이란 사람이 그 부울대수와 스위치 회로는 같은 것을 발견한거지.

친구: 음... 그런데 그 두 개가 같다는 것을 발견해서 얻을 수 있는 효과가 있을까? 그저 똑같은 걸 발견한거일 뿐이잖아.

나: 별거 아닌 발견 같지만 진짜 중요한 발견이었어. 왜냐하면, 이 두 개가 같다는 사실이 발견되기 전까지 스위치 회로가 사용되었으나 체계적이지 못했고 주먹구구식이었거든. 그런데 부울 대수와 스위치 회로가 같다는 사실을 알게 됨에 따라 스위치 회로를 만들기 이전에 부울 대수를 활용해서 시스템적인 체계를 잡고 나서 스위치 회로를 만들게 되어서 훨씬 효율적이게 된거지.

친구: 아하 그렇구나. 그러면 컴퓨터도 스위치 회로를 통해서 구성된다는 거야?

나: 맞아. 쉽게 말해 엄청나게 많은 스위치 회로로 구성된 기계가 컴퓨터인거지.

친구: 오호 전반적으로 잘 이해된거 같아. 고맙다. 이제 슬슬 호텔가서 짐쌀 준비하자.

3장. 게임의 역습

어떤 게임이어야 할까

게임을 하는 사람들은 그저 재미있어서 하는 것이지만, 사실은 그 게임에 참여한 모든 사람들이 협동으로 문제를 해결하는 게임은 어떻게 구성되어야 할까? 맨 처음에 든 생각은 사람들이 협동해서 성을 정복하게 하는 게임은 어떨까였다. 현재 플레이스토어나 앱스토어를 보더라도 이와 유사한 게임들이 매출 최상권에 위치하고 있다. 그 대표적인 예는 리니지인데, 리니지의 경우 모든 사람들이 협동하기보다는 각 동맹들 간의 협력이 이루어지며 유저간 대결이 활성화되어있다는 점에서 차이가 있다. 다음으로 든 생각은 과연 이러한 게임이 쉬울까? 였다. 사실 이러한 류의 게임은 필연적으로 아이템, 레벨 등의 개념들이 생길 수밖에 없고, 자연스럽게 진입 장벽이 생기게 된다. 또한, 좀 더 게임을 단순화하기 위해 아이템이나 레벨과 같은 개념이 없다면 너무 단순해지는데 과연 이 게임이 재미있을까? 그렇게 어떤 게임이 좋을까 되뇌던 중 ‘컴퓨터 과학이 여는 세계’ 수업시간 도중 사진을 분류하는 게임에 대해서 접할 수 있었다. 사실 사진을 분류하는 것이 재미가 있을까? 라는 의문이 들기는 하였으나 한 사람 한 사람의 협동에 의해서 이루어지며 공통의 한 문제를 해결한다는 점에서 인상 깊었다. 또한, 그 해결한 문제가 사회에 실제로 도움이 된다는 점에서 특히 인상적이었다. 그래서 사회에 도움이 되면서 사람들이 쉽고 재미있게 즐길 수 있는 것은 무엇일까 고민하게 되었다.

그러다 우연히 유튜브에서 셜록 홈즈를 보게 되었다. 해당 영상을 보면서 혹시 장기 미제사건이나 조사가 진행되고 있는 사건을 게임으로 만들어 보는건 어떨까? 라는 생각을 하게 되었다. 그리고 더 나아가, 게임명을 법과 정의의 신 ‘유스티티아’의 이름을 따와 『유티아』로 설정하기로 결정하기까지 했었다. 아마 대부분의 사람은 ‘미제사건이 얼마나 많다고 그러느냐?’ 혹은 ‘경찰이나 검찰이 조사하고 있는 것을 어떻게 게임으로 만드느냐?’와 같이 수사 기밀이 노출될 수 있는데 터무니없는 소리를 하고 있다고 생각하였을 것이다. 물론 처음에 나도 그렇게 생각했고 두 가지 측면에서 문제의 소지가 있다고 느꼈다. 첫 번째는 바로 현재 열정적으로 경찰에서 조사하고 있는 사건을 게임으로 만드는 것은 보안적으로 위험성이 높다는 것이고, 두 번째는 우리나라의 미제사건이 과연 게임으로 만들 수 있을 만큼 많은가? 였다.

2. 초기 『유티아』 설계의 허점 채우기

따라서 첫 번째 문제를 해결하기 위해 게임을 크게 두 부류로 나누었다. 그것은 바로 장기미제 사건 관련 게임과 진행 중인 사건 관련 게임을 분리하여 그 구성을 다르게 하는 것이다.

예를 들어 장기미제 사건의 경우 사건 파일을 오픈하는 동시에 게임 플레이어에게 세 가지 질문을 던진다.

(1) 당신은 이 사건과 관련된 것을 목격한 적이 있습니까?

(2) 당신이 오늘의 셜록 홈즈가 되어 해당 사건을 자신만의 방식으로 풀어 보는건 어떨까요?

(3) 해당 사건이 미제 사건이 된 이유는 무엇일까요?

여기서 어떤 사람은 의문을 제기할 것이다. ‘잠시만요... 쉬운 게임이라 하지 않았나요? 어려운데...’ 혹은 ‘서울에 사는 사람에게 부산 미제 사건을 물어보면 뭐 아는게 있을까요? 계속 관련된 것을 목격한 적이 없다고 하다 보면 재미가 떨어질 것 같으데요?’ 또는 ‘협동이 없지 않나요?’ 와 같이 말이다.

먼저 첫 번째 질문에 대해 답을 하자면 필자가 생각하는 쉬움이라는 것은 한 가지 목적을 가지는 것이다. 그리고 그 한 가지 목적을 도달하기 위해 작은 목표들이 세워지지 않는 것이다. 예를 들어, 앞서 소개한 리니지와 같은 게임이 어렵다고 한 이유는 최종적으로는 성을 먹으려는 목적을 가지고 있을지라도 이를 실행하기 위해 아이템을 맞추고 동맹을 성장시키는 등 작은 목표들이 많이 필요하기 때문이다. 이를 위 게임에 적용해본다면 모든 질문은 작은 목표들을 만들지 않으며 한 가지 궁극적인 목적, 사건 해결을 목표로 한다는 점에서 쉽다고 볼 수 있다.

두 번째 질문은 충분히 그러한 문제가 생길 수 있음을 인정한다. 그래서 해당 문제를 최소화 시키기 위해 게임 앱에 접속하면 한국 지도가 떠서 지역별로 선택하여 미제사건을 볼 수 있도록 할 것이다. 이러한 방식이 적용된다면 자신과 관련이 없는 사건이 나올 확률을 대폭 줄일 수 있다. 추가로 해당 게임의 목적은 사건 해결이라는 것을 기억해야 한다고 말하고 싶다. (1)은 새로운 정보 수집, (2)는 사건에 대한 새로운 시각제공 (3)은 수사기관의 과실 가능성에 대해 알아본다. 그런만큼 (1)에서 해당 사향이 없더라도 (2), (3)에 대해 고민해보면서 충분히 재미를 느낄 수 있다.

마지막 질문에 대해서는 매우 좋은 질문이라 생각한다. 사실 이 부분은 게임을 처음 설계할 때 제대로 고려하지 못했었던 것 같기도 하다. 이를 위해서 다른 사람들이 쓴 답안을 현재의 플레이어에게 제공하여 참고할 수 있도록 도와줄 것이다. 더 나아가, 여러 사람이 함께 게임을 할 수 있도록 하는 시스템도 구축하여, 한 사건에 대해 여러 사람이 동시에 고민할 수 있도록 할 것이다. 이러한 부분들이 존재한다면 세 번째 질문은 극복된다.

결과적으로 장기 미제 사건에 대한 게임의 내용을 정리하자면 이러하다.

1. 게임 접속하면 플레이어는 우리나라 지도에서 자신이 보려는 지역을 선택한다.

2. 1명 이서 단독으로 할 것인지 아니면 여러 사람들과 함께 할 것인지 고른다.

3. 사건 파일을 보고, 3가지 질문에 대한 답을 하며, 그 과정에서 다른 사람들이 써놓은 답들을 볼 수 있다.

4. 3가지 질문의 답 중에서 첫 번째 질문인 사건의 목격자 부분에서 (예)로 답변이 되고 그에 관한 증거가 있을 경우 수사기관은 해당 내용을 참조한다.

다음은 진행중인 사건에 대한 게임이다. 사실 진행중인 사건의 경우 그 보안이 특히 중요하다. 그렇기에 장기 미제 사건과 다르게 사건 파일을 공개하지 않을 것이다. 또한, 본래 있었던 세 개의 질문을 다음의 두 개로 축소화 할 것이다.

(1) 당신은 이 사건과 관련된 것을 목격한 적이 있습니까?

(2) 당신이 오늘의 셜록 홈즈가 되어 해당 사건을 자신만의 방식으로 풀어 보는건 어떨까요?

결과적으로 진행되고 있는 사건에 대한 게임의 내용을 정리하자면 이러하다.

1. 게임 접속하면 플레이어는 우리나라 지도에서 자신이 보려는 지역을 선택한다.

2. 1명 이서 단독으로 할 것인지 아니면 여러 사람들과 함께 할 것인지 고른다.

3. 기밀정보가 제거된 사건에 대한 정보를 받고 2가지 질문에 대한 답을 한다. 그리고 그 과정에서 다른 사람들이 써놓은 답들을 볼 수 있다.

4. 3가지 질문의 답 중에서 첫 번째 질문인 사건의 목격자 항목에서 (예)로 답변이 되고 그에 관한 증거가 있을 경우 수사기관은 해당 내용을 참조한다.

앞서 언급한 두 번째 문제는 우리나라에 게임을 만들만큼 미제 사건이 많느냐는 것이다. 실제로 대한민국 경찰청의 통계결과에 의하면 충분히 많은 미제 사건들이 일어나고 있다. 그 예로 실종사건을 들어보겠다. 경찰청과 보건복지부의 2010년부터 2012년까지의 통계결과에 따르면 연간 80320명, 91000명, 95832정도의 실종신고가 집계되었으며 약 50%정도만이 귀환하고 있다. 또한, 대한민국의 연간 변사자 평균이 2만 5천여명에 이른다는 것을 고려하면 미제 사건들은 매우 많다는 것을 알 수 있다. 게다가 미발견자들 즉, 시체를 찾지 못하고, 범죄와의 연관성을 찾을 수 없다면 조사를 종결하는 경우도 많기에 많은 사람들이 죽으나 제대로 된 수사도 받지 못한다는 사실을 알 수 있다. 더 나아가, 피해가 상대적으로 적은 소매치기(대인절도)나 기물파손 등은 경찰이 사건의 발생을 제대로 파악하지 못하는 암수범죄 비율이 매우 높다. 즉, 해당 게임을 만들기에는 미제 사건들이 충분하며 해결되지 못한 사건들에 결정적인 단서를 제공할 수 있다는 점에서 큰 강점을 가진다고 볼 수 있다.

김대현, ｢한국의 사건 통계와 분석｣, 2018, 7-9면.

3. 『유티아』의 게임성 개선하기

지금까지의 과정을 통해 전체적으로 『유티아』의 전반적인 설계를 할 수 있었다. 하지만 계속 머리에 맴도는 것이 있었다. 과연 게임으로서 게임성을 충분히 가지고 있느냐 였다. 사실 게임의 목적은 미제 사건들과 조사가 진행되고 있는 사건 해결을 돕는 것이기에 사회적인 측면에서 충분히 의미가 있다. 그리고 협력을 통해서 진행되는 쉬운 게임이다. 하지만 게임성이 부족하다면 게임이라고 할 수 있을까?

이러한 문제점을 해결하기 위해 앱스토어에 존재하는 단순한 게임들을 탐색하는 시간을 가졌다. 예를 들어 구글에서 인터넷 연결이 끊긴 상태에서도 할 수 있는 스티브-게임, 벽돌 깨기 게임 등을 접하고 어떤 특징이 있는지를 고민해보았다. 해당 게임들의 공통점은 점수제를 기반으로 하고 있다는 것이다. 그래서 이러한 점수제를 『유티아』에 적용하려는 시도를 해보게 되었다. 결과적으로 게임을 한 번할 때마다 점수 3점을 부여하고 수사에 도움이 되는 증거나 목격담을 제공하였을 경우 10점을 추가로 주는 방식을 게임에 적용하도록 하였다. 이후 점수제를 조금 더 확장하여 랭킹 시스템까지 만들도록 하였다. 그래서 각 지역 랭킹이 존재하고 대한민국 전체 랭킹이 존재하도록 하여 플레이어 간의 경쟁심을 부추기는 형태로 게임성을 개선하려는 시도를 하였다. 물론 여기서 랭킹 제도가 플레이어 간의 협력을 저해할 수 있다는 우려도 존재하지만 1인플레이의 경우는 간접적인 협력이 이루어지기에 걱정할 필요가 없다고 생각한다. 이에 더해, 다인 플레이의 경우에는 실제로 협력이 저해될 수 있는 가능성이 존재하므로 같은 플레이하는 상대의 점수를 알 수 없도록 설정함을 통해서 협력 저해가 일어날 가능성을 차단했다.

4. 『유티아』의 최종적인 모습과 기대점

지금까지 『유티아』를 설계하게된 사고 과정과 문제점들을 파악하고 개선하였다. 그래서 마지막 문단을 통해 최종적인 모습을 소개하고 기대할 점에 대해 소개하고자 한다. 앞서 해당 게임의 형태를 자세하게 소개한 만큼 다소 간략하게 소개할 것이다.

1. 랭킹제, 점수제

: 지역별, 국가별 랭킹을 공개한다.

한 번 게임을 할 때마다 3점,

증거물 제공시 10점이 주어진다.

2. 진행중인 사건과 장기 미제 사건 구분하여 설계

: 진행중인 사건의 보안을 고려하여 두 유형의 사건을 구분

하도록 한다.

3. 협력

: 1인 플레이는 물론 다인 플레이도 할 수 있도록 하여 협력을 촉진한다. 그리고 1인 플레이의 경우에도 이전 사람들의 답안을 볼 수 있게 하여 참고할 수 있도록 함으로써 간접적인 협력이 이루어지게 돕는다.

그렇다면 해당 게임의 기대효과는 무엇일까? 앞서 경찰청 통계조사 결과에 따르면 우리나라에는 약 2만 5천명의 변사체가 매년 발견되고 있다. 사실 믿기 힘들 정도로 엄청난 숫자이며 이러한 변사체들 혹은 실종자에 관해 뚜렷한 범죄행위가 연관되어 있지 않다고 경찰에서 판단하면 사건은 종료된다. 이러한 부분에 있어 안타까움이 느껴질 수 밖에 없었고, 최소한 그들에 대한 목격자나 관련 증거라도 확보하고자 하는 목적으로 해당 게임을 기획하게 되었다. 이에 더해 현재 조사중인 사건에도 도움이 될 수 있다고 판단하였기에 게임의 범위을 더 확장하였다. 그러나 동시에 많은 위험성이 존재한다. 보안적인 위험, 게임플레이어가 악의적으로 증거를 조작하여 제출하려는 상황 등 안정적인 게임은 아니기에 게임이 사회에 정착하는 과정에서 많은 불협화음들이 생길 수 있을 것이다. 그러나 이러한 어려움을 속에서도 시간이 지나고 추가로 발생하는 문제점들을 개선하면 충분히 해결할 수 있다고 생각한다. 그리고 결과적으로 현재 진행 중인 수사를 돕고 죽은 이후 제대로 수사조차 못받는 사람들의 현실을 조금 더 개선하는 사회를 만들 수 있다고 믿는다.

4장. 시나리오 기획

#0

(회상)

고은 엄마: 고은아, 암호를 잘 기억해. 암호는...

(현실)

-고은의 독백

어머니께서 돌아가신지 벌써 5개월. 나는 아직도 엄마의 흔적을 찾기 위해 암호를 기억해내려 애쓴다.

#1: 등굣길

민지: (고은의 가방을 툭-하고 치며) 고은아!

고은: 어, 민지야~ 주말 잘 보냈어? 진짜 오랜만에 보는 것 같아~

민지: (웃으며) ㅋㅋㅋㅋ 맞아. 이번 주말 정말 길었어, 그치? 기말고사 끝나니까 이제 너무 여유롭다~ 나 정말 행복해.

고은: (미소 지으며) 민지야 근데 오늘 성적표 나온대.

민지: (정색하며) 넌 무슨 그런 얘기를 등교하면서 하니? 하여튼 공부밖에 몰라요~. 너 같은 범생이랑 이제 얘기 안 해. 나 먼저 간다? (고은을 제쳐두고 학교 정문을 향해 뛰어간다.)

고은: (작은 소리를 지르며) 뭐라는 거야? 야 같이 가! (민지를 향해 뛰어간다. 민지의 가방을 잡고 둘이 같이 교실로 들어간다.)

#2: 교실, 성적표 배부 시간

선생님: 자, 1번부터 나와서 성적표 받아가라. 1번 강서현~.

서현: (불평이 가득한 표정으로 자리에서 일어나며) 이 순간만큼은 아빠가 정말 밉다 얘들아. 난 왜 강씨인 걸까. (선생님을 향해 걸어가 성적표를 받고 소리 지르며) 악! (성적표를 찢는다.)

선생님: (인자한 웃음으로) 서현이는 항상 힘이 과하게 남아도는 것 같아~. 이번 시간 끝나고 잠시 교무실로 따라오렴. 자 그럼 2번~.

---

선생님: 20번 최민지~.

민지: 네~ (성적표를 받고 우울해진 표정을 지으며 자리로 돌아온다.)

#3: 하굣길

민지: (우울한 표정과 목소리로) 고은아, 너는 성적 걱정 없어서 좋겠다...

고은: 왜 그래 민지야, 다음에 잘 보면 되지!

민지: (한숨을 푹 쉬며) 하-----. 그게 문제가 아니야. 이제 이거 집에 들고 가면 엄마가 화내실 거란 말이야. 난 우리 엄마가 너무 무서워.

고은: (갑자기 슬픈 표정을 지으며) 그렇구나, 아니야 괜찮아. 어머님께서도 네가 미워서가 아니라 다 네가 너무 걱정돼서 그러시는 걸 거야.

민지: (계속해서 한숨을 쉰다) 하-------------.. 집에 가기 싫다. 고은아 나 오늘 너네 집 가면 안 돼?

고은: (눈을 크게 뜨며) 엥? 우리 집?

민지: 안 돼? 부탁할게.

고은: (잠시 고민하며) 음, 그래, 대신 저녁 먹기 전까지는 너도 집에 들어가야 해~

민지: 치, 알겠어. 얼른 가자~!

#4: 고은의 집

민지: 실례하겠습니다. 어? 고은아 근데 아무도 안 계신거야?

고은: 어, 사실 나는 혼자 살아.

민지: (놀란 표정을 지으며) 엥?

고은: (애써 덤덤한 표정으로) 아, 그, 여름방학 때 엄마 병이 점점 심해져서 돌아가셨어.

민지: (눈을 커다랗게 뜨며) 뭐??? 아 고은아 정말 미안해,,. 괜히 안 좋은 기억 꺼내게 해서 미안해...

고은: 괜찮아 이미 다 지난 일이고, 난 이제 정말 괜찮아! 간식 좀 꺼내서 올게, 잠시만. (자리에서 일어나 부엌을 향해 걷는다.)

민지: 응 고마워-. (혼잣말로) 어 근데 이건 뭐지? 열쇠?

---

고은: 짠~. 민지야 네가 좋아하는 초코 과자들 많이 가져왔어. 이거 먹고 기분 풀자!

민지: 헐 진짜 고마워! 근데 고은아, (열쇠를 들며) 이거 뭐야?

고은: 아 그거?　엄마가 예전에 “기억구독” 서비스 신청해 두셨거든. 우리 엄마 기억을 열람할 수 있는 열쇠야.

민지: 우와---. 신기해.

고은: 그런데 열쇠 말고도 암호가 필요해.

민지: 암호?

고은: 응. 엄마가 암호를 못 알려주셔서, 지금 우리 엄마의 기억을 열어볼 수 없는 상태야.

민지: 기억구독, 열쇠, 암호... 어디서 많이 들어봤는데? 음... (표정을 잠시 찡그렸다가 풀며) 고은아! 내가 도움이 될 수 있으면 도와줄게!

고은: (웃으며) 그래 고마워. 근데 민지야, 벌써 다섯 시 다 됐는데, 집에 안 가?

민지: (웃으며) 너 진짜 단호한 애다. 그래 알겠어. 이제 집에 갈게. (일어나 현관문을 나서며) 내일 봐~.

#5: 민지의 집

민지 엄마: (소리 지르며) 형편없는 것! 성적이 이번에도 이 모양 이 꼴이니! 너 이 상태면 가업 못 물려받을 줄 알아!

민지: 가업이요? 대체 어떤 일을 하는 건지도 안 알려주시면서, 왜 자꾸 공부만 하라고 독촉하시는 거예요! 저도 이제 다 컸다고요, 대체 우리 집 대대로 물려받는 가업이 뭔데요? 제발 좀 알려주세요!

민지 엄마: (한숨을 쉬며) 하-----. 넌 알려줘도 모를 거야. 코코 회사에서 제공하는 컴퓨터 소프트웨어에 기억을 저장하는 서비스 들어봤지?

민지: (혼잣말로) 설마 기억구독...? (엄마에게) 어... 네, 들어봤던 것 같아요. 근데 왜요?

민지 엄마: 코코 회사 기억구독 서비스는 우리 집안에서 대대로 맡아 진행해오던 일이야. 그런데 이제 이 소중한 가업을 잇지 못할 수도 있겠구나, 에휴!

민지: 네? 아니에요 엄마, 저 진짜 잘할 수 있어요. 앞으로는 공부 더 열심히 해볼게요. 근데, 그 기억구독 서비스 있잖아요, ...

---

#6: 다음날, 학교 교실

민지: 고은아! 저번에 네가 말했던 기억구독 서비스 있잖아, (말 크기를 줄이고 속삭이며) 그거 우리 집에서 하는 거래!

고은: 뭐? 그럼 민지야, 그 암호는 대체 어떻게 하면 찾을 수 있는 건지 넌 아는 거야...?

민지: (고개를 끄덕이며) 응! 매달 천만 원씩만 내면 컴퓨터에 자동으로 기록되는 암호를 이용해서 서비스를 이용할 수 있대. 어때? 정말 다행이야... 이제 어머니 기억 볼 수 있겠다!

고은: 천만 원...? 아 그래 일단 알겠어, 민지야 알려줘서 정말 고마워.

#7: 코코 회사 기억구독 부서 회의실

철수: 사장님, 김 박사 기억도 저장이 되어 있는데, 이거 어떻게 처리해야 할까요? 솔직히 이 기억 누군가가 열람하기라도 하면 우리 다 같이 큰일 나는 건데, 삭제하는 게 안전하지 않을까요?

민지 엄마: 안 돼. 혹시라도 걸리면 큰일이야. 최근에 열람을 시도한 사람이 있는지 찾아봐.

철수: 옙. (컴퓨터 자료화면 스크롤을 내리며) 부장님... 고인 사망일 다음날부터 오늘까지 계속해서 열람 시도가 있는 것으로 보이는데요.

민지 엄마: (깜짝 놀라며) 그게 무슨 소리야?

철수: 아, 다행히도 열람에 성공하진 않은 것 같습니다. 기억 복원 열쇠는 있는데, 기억 열람 암호를 모르는 듯 합니다만...

민지 엄마: 암호 바꿔. 최대한 어렵게, 아무도 풀 수 없게.

철수: 예 알겠습니다!

#8: 고은의 집

-고은의 독백

천만 원은 너무 심하잖아. 안 되겠어, 회사에 전화해 보자.

---

상담원: 네, 코코 기억구독 서비스입니다. 무엇을 도와드릴까요?

고은: 아, 네 안녕하세요. 기억구독 서비스 이용하고 있는데, 암호를 잃어버려서 전화드렸어요. 혹시 암호 되찾을 방법이 있나요?

상담원: 아, 네 그럼요~.

---

고은: 아, 네 알겠습니다.

-고은의 독백

암호 되찾는 데 돈이 들어간다고? 이건 말도 안 돼. 분명 어딘가에 엄마가 암호를 기록해 두셨을 거야. 엄마 연구실로 가보자.

#9: 고은 엄마의 연구실

-고은의 독백

아니, 어떻게 이렇게 아무것도 없을 수가 있지? 엄마, 왜 암호를 안 알려주고 떠나신 거예요... (눈물을 흘리기 시작하며)

갑자기 삑- 하는 소리와 함께 컴퓨터에 파란 불빛이 들어온다.

-고은의 독백

어...? 저게 뭐지? (컴퓨터 앞에 놓인 설명서를 들어 읽어 내려가기 시작한다.)

동형 암호 기술 장치

-암호를 풀지 않고 정보를 활용하는 기술을 접목시켰다. 이 장비를 이용하면 데이터에 암호가 걸린 상태에서도 모든 일을 처리하는 것이 가능하다.

-고은의 독백

어? 암호를 풀지 않아도 정보를 활용할 수 있다고?

암호를 건 정수 두 개([eqn: n,`m])를 암호를 해제하지 않은 상태에서 더하는 일을 해보자. [eqn: n]과 [eqn: m]은 각각 [eqn: n+p TIMES alpha]과 [eqn: m+p TIMES beta]로 암호화 되어 있다고 가정하자. 이때 비밀 열쇠는 [eqn: p]이며, [eqn: p>n,`p>m]인 소수이다. [eqn: alpha ,` beta]는 각각 임의의 양수에 해당한다. 암호를 푸는 일은 [eqn: p]로 나눈 나머지를 구하는 일과 같다. 이때, 암호를 풀지 않고 바로 더해 보자.

[eqn: (n+p TIMES alpha )+(m+p TIMES beta )=(n+m)+p TIMES ( alpha + beta )])

이것은 암호를 풀고 더한 후 암호를 다시 건 것과 같은 결과를 도출해 낸다.

[eqn: (n+m)+p TIMES ( alpha + beta )]

동형 암호 기술을 활용한다고 하더라도 데이터의 내용은 알 수 없다. 다만, 고은은 암호를 해제하지 않아 데이터 내용이 드러나지 않은 상태에서 데이터 뭉치를 받아 내었다.

연구원이었던 고은의 어머니는 암호 해제 없이 데이터 뭉치에서 기억 파일의 제목을 열람할 수 있도록 해 두었다. 물론 기억 파일의 정확한 데이터를 알아낼 수는 없었다. 고은은 어머니의 기억 파일의 제목을 하나씩 읽어 내려가기 시작했다.

-고은의 독백

그러니까 지금, 기억구독 서비스를 개발한 게 우리 엄마인데, 그 사실을 숨기고 회사에서 독점하기 위해 회사에서 주는 영양제에 해로운 약물을 포함시켜 놓았던 거야? 이건 말도 안 돼. 당장 도움을 받아야겠어. 가장 마지막 파일 제목에 적힌 주소로 가보자.

#10: 암호 연구실

연구원: 그러니까, 김 박사님의 따님이시라고요?

고은: 네, 제발 좀 도와주세요.

연구원: 지금까지 계속 기다리고 있었어요. 제가 하는 일이 워낙 비밀리에 진행되는 터라, 제가 있는 이 곳에서는 어떠한 연락도 할 수가 없거든요. 데이터 파일 주시겠어요?

---

수준급 해킹 기술을 가지고 있는 화이트 해킹 연구원은 고은의 어머니의 제자였고, 흔쾌히 고은의 부탁을 들어주었다. 고은은 어머니의 기억 파일을 모두 열람해볼 수 있었고, 이를 제보하여 지금까지 일어났던 일들을 세상에 알렸다. 코코 회사 기억구독 부서 직원들은 모두 체포되어 조사를 받게 되었고, 고은은 어머니가 남긴 마지막 기억들을 읽어볼 수 있었다. 연구에 매진하느라 전하지 못했던 애정의 말도 읽어볼 수 있었다.

Life is shorter, live it. Love is rare, grab it. Anger is bad, dump it. Fear is awful, face it. Memories are sweet, cherish it.

삶은 짧다, 그러니 살아라. 사랑은 드물다, 그러니 잡아라. 화는 나쁘다, 그러니 버려라. 두려움은 끔찍하다, 그래도 맞서라. 기억은 달콤하다, 그러니 소중히 간직해라.

- 머라이어 디에츠

5장. 인공 감정 제작기 : 일주일간의 기록

일평생 인공 감정을 연구하다 실종된 과학자의 책상에서 일주일치의 일기가 발견됐다. 다음은 그 전문이다.

12/1

“감정이 없는 너는 마치 로봇 같아” 그녀의 마지막 말이었다. 웃기시네, 내가 그것을 반박해보지.

12/2

감정을 가지는 로봇을 연구하기 시작했다. 막막하지만, 우선 ‘감정’을 정의할 필요가 있겠다. 이를 어떻게 정의하느냐에 따라 로봇이 어떻게 구현될지 정해질 것이다.

12/3

고민이 된다. 감정이란 무엇일까? 글쎄, 감정은 외부의 자극과 내부의 감정상태의 조합값으로 표현될 수 있을 것 같다. 즉, 감정 역시 일련의 함수일 뿐이라는 것이다. 그렇다면 감정상태를 함수로 나타낼 수 있지 않을까? 일단 가장 간단한 선형함수라고 생각해 보자.

y= ax1 + bx2 + cx3 + .... 이런 식으로.

y는 출력되는 감정이다. a,b,c...는 파라미터, x1, x2, x3...는 감정상태에 영향을 미치는 변수들이다.

출력되는 감정은 무엇무엇이 있을까? Ekman이라는 학자는 감정을 ‘기쁨(joy), 노여움(anger), 공포(fear), 혐오(disgust), 놀람(surpise), 슬픔(sadness), 6가지로 분류했다고 한다. 하지만 사람의 감정이 이렇게 딱딱 떨어지지는 않을 것 같은데. 예시를 들어 생각해 봐야겠다. 비슷하지만 다른 감정. 예를 들어 우리는 맛있는 것을 먹을 때 행복함을 느낄 수도 있지만, 고난에 빠진 주인공이 역경을 이겨내고 악당들을 물리치는, 그런 영화를 볼 때의 행복감, 일명 카타르시스를 느낄 수도 있겠다. 이 두 감정 모두 ’기쁨‘이라는 감정 축에 들 수 있을 것 같지만, 우리가 받아들이는 느낌은 분명히 다른 것 같다. 이 두 감정을 그냥 ’기쁨‘이라고 뭉뚱그릴수는 없지 않겠는가? 이 둘을 똑같은 감정이라고 부르기는 힘들 것 같다.

대신 인간의 감정은 이 6가지의 기본 감정들이 복합적으로 작용한 결과물이라고 하는 것이 설득력 있겠다. 예를 들어 카타르시스 같은 복잡한 감정은, 주인공이 무찌르는 악당들에 대한 노여움과 혐오, 공포, 주인공이 극복할 수 없는 역경을 극복하고 영웅으로 거듭나는 데 있어서의 슬픔, 놀람, 기쁨 등 모든 감정들이 복합적으로 작용된 결과물일 것이다. 이들을 어떻게 프로그램으로 구현할 수 있을지에 대한 아이디어는 나중에 생각하고, 일단은 감정 생성 모델을 설계하는 데 집중해 보자.

그렇다면 출력되는 감정 y는 6가지의 기본 감정들(기쁨, 노여움, 공포, 혐오, 놀람, 슬픔)의 조합값일 것이다. 이 기본 감정들은 0부터 100까지의 강도를 가지고 있다고 설정하고, 이들을 조합한 값이 y의 값이라고 말할 수 있겠다. 그렇다면 y를 어떻게 표현하는 것이 가장 효율적일까? 이 부분은 아직 의문이 남는다...

일단은 자고 내일 다시 생각해 봐야겠다.

12/4

6가지의 감정을 구하는 선형식 6가지를 따로 만들 수 있다면 편할 것 같은데. 예를 들어 기쁨을 산출하는 방정식, 노여움을 산출하는 방정식... 이런 식으로 말이다. 이게 가능하다면 기쁨 30, 노여움 50, 공포 20... 이런 식으로 수치를 구해 감정 상태를 나타낼 수 있을 것이다. 그리고 이 기본 감정들의 비율에 따라 복합 감정 상태가 정해지고(예를 들어 기쁨 : 공포 : 놀람 이 1 : 1 : 1이면 ’경외‘라는 복합 감정이 출력된다거나), 그 출력값의 크기에 따라 복합 감정의 크기가 결정될 수 있으면 출력값이 훨씬 직관적이고 표현하는 데 자원도 적게 필요할 것 같다(이를테면 기쁨, 공포 놀람 수치가 5,5,5 이라면 경외{5}, 50,50,50 이라면 경외{50} 이런 식으로 말이다). 이미 마이크로소프트 애져(microsoft azure)라는 프로그램에서 사진의 표정들을 분석해서 감정들을 0부터 1 사이의 값으로 나타내는 기술을 만들어 냈다고 하니, 이미 이러한 기술을 구현될 수 있다는 것이 밝혀졌나 보다. 잘 된 일이다.

기본 감정들끼리는 서로 영향을 줄 수 있을까? 만약 기본 감정들이 자기들끼리 영향을 주고받는다면 이들을 따로 구해 계산하는 것이 의미가 없을 수도 있다.

조금 더 나아가 생각해 보면, 감정에 영향을 주는 요인들을 분석해 봐야지만 이 의문도 해결할 수 있을 것 같다. 아직 모르는 것들이 너무 많다.

12/5

Ekman의 이론을 조금 더 살펴봤다, 그가 이룩한 결과물들이 나에게 도움이 될 것이다.

감정에 ’인지주의적 입장‘과 ’생리주의적 입장‘ 이 존재한다는 것을 배웠다.(우리는 어떻게 감정을 경험하고 표현하는가? : 폴 에크먼, 『표정의 심리학: 우리는 어떻게 감정을 드러내는가』(허우성·허주형 옮김, 바다출판사, 2020)) 전자는 감정의 사회,문화적 특성을 강조하는 쪽인 듯 하고, 후자는 감정의 본능성을 강조하는 쪽인 듯 하다. 하지만 중요한 것은 두 가지 모두 감정의 발생에 영향을 준다는 것이고, 그 중에 뭐가 더 중요하냐는 것은 나중의 문제다.

결국 인공 감정을 창조하기 위해서는 문화적 배경과 본능적 배경이 설정되어야 할 것이다. 곤란할 수 있겠다. 본능이란, 진화의 결과물 아닌가? 인간이 야생에서 생존하면서 얻은 지식들이 단순화되고, 내면화되어 즉각적으로 발생하는 것이 본능 아닌가? 인공지능에게는 본능이 있을 리가 없다. 만들어 줄려면 만들어 줄 수야 있겠지만, 본능을 만들어 주기 위해서는 인공지능의 ’선대 인공지능‘을 창조해야 되는 것인가?

문화적 배경도 곤란하다. 문화는 정의내리기 복잡하다. 문화는 축적되고, 변화하며, 상호작용하고, 인간의 삶에, 그리고 감정에까지 영향을 준다. 감정을 창조하기 위해서는 문화를 구현해야 할 것이다. 하지만 이게 가능키나 할까.

그러나 에크먼은 이런 자동평가 이외에 감정을 유발하는 다른 여

덟 개 요인들(반성적 평가, 과거의 감정경험 회상, 상상, 과거의 감정경험 말하기, 공

감, 타인에게 배우기, 사회규범의 위반, 얼굴표정 짓기)을 거론함으로써, 감정이

생리적 반사작용일 뿐 아니라 문화적 구성물일 가능성도 열어 놓는

다. 『표정의 심리학: 우리는 어떻게 감정을 드러내는가』(허우성·허주형 옮김, 바다출판사, 2020))

이 8가지 요인들을 받아들여야 할까. 뭔가 직관적이지는 않은 것 같은데. 감정이 어떻게 발생되는가? 이 부분을 해결하는 것이 가장 큰 과제다.

12/6

일단 앞의 문화적 배경과 본능적 배경을 생각해 보자. 모든 사람들의 마음 어딘가 깔려 있는 본능이라는 것이 있을 것이다. 하지만 동시에 사람마다 각자 다른 성격적 측면 역시 존재할 것이다. 본능은 같은 것, 하지만 그 위에 쌓아올려진 탑이 다르달까. 대신 같은 문화권의 사람들은 문화적 배경을 어느 정도 공유할 수도 있을 것이다. 같은 것과 다른 것. 무엇이 같고 무엇이 다른가? 다른 사람들이 정의한 감정 모델이 있을 텐데. 살펴볼 필요가 있다.

‘인공 감정 모델의 설계’. 이인근 외 3인. 한국지능시스템학회.2007.648-653. 649p

성격(personality), 동기(motive), 기억(memory), 감정적 충동(emotional impulse) 네 가지가 직접 요인이라고 할 수 있다. 문화적 요인은 어디에 계산되는가? 아마 감정적 충동 부분에 영향을 주는 요인으로 작용하는 것 같다. 하지만 문화나 사회규범 같은 외부적 현상이나 요인들이 ’충동‘으로 반영되는 것이 맞나? 이는 인간의 기저에 깔려서 감정상태에 지속적으로 영향을 줘야 할 것 같다. 튜링 기계의 상태 심벌처럼 말이다.

감정 모델에서는 지속적인 것과 일시적인 것을 나눌 필요가 있을 것 같다. 무엇이 지속적인가? 성격, 문화, 배경이 지속적이지 않겠는가? 여기서 지속적이라는 것은, 성격이나 문화, 배경 따위가 감정이 형성되는 데 지속적으로(연속적으로) 작용한다는 것을 의미한다. 점이 아니라 선, 이라고 표현할 수도 있겠다. 이런 지속적인 것들은 마치 전원이 공급되고 있는 전기장판처럼 사람의 마음속에 흐르고 있다. 이러한 상황에서 어떠한 모티브, 자극 등이 작용해 감정상태를 일으킨다, 고 볼 수 있지 않겠나?

12/7

정리를 해봐야 할 것 같다. 일단 인공 감정을 제작하기 위해서는 감정을 인공적으로 만들어 낼 방법을 찾아야 한다. 그러기 위해서 감정이 어떻게 만들어지는지 생각을 해 봤는데, 간단히 정리해 보자.

배경이 필요하고, 자아가 필요하고, 자극이 필요하다. 컴퓨터에게 문화적, 사회적 배경을 창조해 줄 수 있는가? 자아를 만들어 줄 수 있는가? 자극을 만들어 줄 수 있는가? 할 수 있다 치자. 이 세 가지 변수의 결과를 기쁨, 노여움, 공포, 혐오, 놀람, 슬픔 6가지의 기본 감정 수치들의 조합값으로 나타낼 수 있겠다. 6가지 감정의 비율에 따라 감정의 명칭이 정해지고, 합산값으로 감정을 도출할 수 있지 않을까?

다만, 이것이 현실적으로 가능한지, 가능하다고 해도 의미가 있는 일인지 모르겠다. 그 ’인공지능‘은 인간이 느끼는 것과 같은 복합적인 감정을 느낄 수 있을 것인가? 만약 인간의 그것과 같은 감정을 느낄 수 있다면 과연 그것은 인간인가, 컴퓨터인가? 아직 모르는 것도 많고, 이 연구 자체에 의미가 있는지도 모르겠다. 일단 오늘은 이쯤 하고 다음날 더 생각해 봐야겠다...

6장. 시 사냥

1.

이 밤 너무나 신나고 근사해요.

내 마음에도 생전 처음 보는

환한 달이 떠오르고

산 아래 작은 마을이 그려집니다.

간절한 이 그리움들을,

사무쳐 오는 이 연정들을

달빛에 실어

당신께 보냅니다.

세상에,

강변에 달빛이 곱다고

전화를 다 주시다니요.

흐르는 물 어디쯤 눈부시게 부서지는 소리

문득 들려옵니다.

- 김용택, <달이 떴다고 전화를 주시다니요>

시에 대한 컴퓨터과학적 해석

이 밤 너무나 신나고 근사해요.

- 내가 지금 읽고 있는 이 심벌, 너무나 신나고 근사해요!

내 마음에도 생전 처음 보는

환한 달이 떠오르고

- 내 테이프에도 생전 처음 보는

흥미로운 상태 심벌들이 떠올라요.

산 아래 작은 마을이 그려집니다.

- 테이프의 다음 칸에 작은 심벌이,

작은 세상 하나가 그려집니다.

간절한 이 그리움들을,

사무쳐 오는 이 연정들을

달빛에 실어

당신께 보냅니다.

- 간절한 이 읽은 심벌들을,

사무쳐 오는 새로이 쓸 심벌들을

테이프의 다음 칸에 실어

당신께 보냅니다.

세상에,

강변에 달빛이 곱다고

전화를 다 주시다니요.

흐르는 물 어디쯤 눈부시게 부서지는 소리

문득 들려옵니다.

- 세상에,

또 다른 새로운 문제가 생겼다고

새로운 작동 규칙표를 다 주시다니요.

흐르는 전자 어디쯤 눈부시게 부서지는 소리

문득 느껴집니다.

이 시를 지금 원고를 쓰고 있는 와중에도 열심히 일을 하고 있을

제 노트북에 들어 있는 튜링 기계에게 바칩니다.

§ 시 사용 설명서

-튜링 기계-

보편만능의 기계, 컴퓨터. 컴퓨터의 디자인, 즉 설계도는 수학계의 꿈을 좌절시켰던 논리 속에서 발견되었다. “기계적인 방식만으론 수학의 모든 사실을 길어 올릴 수 없다.”는 논리가 바로 그것이었다. 튜링은 위 명제를 증명하기 위하여 ‘기계적인 방식’을 정의한다. 그리고 나선 기계적인 방식만으로는 모든 사실을 창조해낼 수 없음을 증명한다. 이때 튜링은 ‘기계적인 방식’을 정의하기 위해 ‘튜링 기계’를 다섯 종류의 기계 부품으로 이루어진 기계로 정의 내린다. 그 다섯 종류의 기계 부품들은 바로 무한한 칸을 가진 테이프, 테이프에 기록되는 심벌들, 테이프에 기록된 심벌을 읽고 쓰는 장치, 장치의 상태를 나타내는 심벌들, 마지막으로는 기계의 작동 규칙표이다. 기계는 작동 규칙표를 따라 작동하게 되며, 튜링 기계는 테이프 칸의 심벌을 읽고 쓰며 기계를 돌리는 ‘기계적인 계산’을 수행한다.

2.

너도 보이지.

오리나무 잎사귀에 흩어져 앉아

바람에 몸 흔들며 춤추는 달이.

너도 들리지.

시냇물에 반짝반짝 은 부스러기

흘러가며 조잘거리는 달의 노래가.

그래도 그래도

너는 모른다.

동그란 저 달을 온통 네품에

안겨주고 싶어 하는

나의 마음은.

- 이원수, <달>

시에 대한 컴퓨터과학적 해석

너도 보이지.

오리나무 잎사귀에 흩어져 앉아

바람에 몸 흔들며 춤추는 달이.

- 너도 보이지.

직렬 스위치 회로에 흩어져 앉아

전류에 몸 흔들며 춤추는 전자들이.

너도 들리지.

시냇물에 반짝반짝 은 부스러기

흘러가며 조잘거리는 달의 노래가.

- 너도 들리지.

병렬 스위치 회로에 반짝반짝 전자 부스러기

흘러가며 조잘거리는 전기 신호의 노래가.

그래도 그래도

너는 모른다.

동그란 저 달을 온통 네품에

안겨주고 싶어 하는

나의 마음은.

- 그래도 그래도

너는 모른다.

저기 저 회로 끝에 뒤집기 스위치에

전기 신호를 알려주고 싶어 하는

나의 마음은.

이 시를 지금도 디지털 논리회로, 즉 부울 논리식을 표현하는 데 이바지하고 있는 전 세계의 모든 스위치들에게 바칩니다.

§ 시 사용 설명서

-스위치-

흐름을 막거나 여는 장치를 스위치라고 부른다. 이때, 부울의 생각 조립 방식, 즉 ‘그리고’, ‘또는’, ‘아닌’은 스위치의 형식으로 표현이 가능하다. 대부분의 스위치는 닫으면 흐르고 열면 흐르지 못한다. 스위치를 한 줄로 연속하여 연결하는 직렬 방식의 스위치는 ‘그리고’에 대응된다. 단 하나의 스위치라도 열려 있다면 흐르지 못하기 때문이다. 스위치를 각 전깃줄에 하나씩 위치시켜 연결하는 병렬 방식의 스위치는 ‘또는’에 대응된다. 단 하나의 스위치라도 닫혀 있다면 흐르기 때문이다. 스위치의 반대, 즉 열면 흐르지만 닫으면 흐르지 않는 방식의 뒤집기 방식의 스위치는 ‘아닌’에 대응된다.

3.

쉬이 잊으리라

그러나 잊히지 않으리라

가다 오다 돌아보는 어깨 너머로

그날 밤 보다 남은 연정의 조각

지워도 지지 않는 마음의 어룽

- 유치환, <낮달>

시에 대한 컴퓨터과학적 해석

쉬이 잊으리라

그러나 잊히지 않으리라

가다 오다 돌아보는 어깨 너머로

그날 밤 보다 남은 연정의 조각

지워도 지지 않는 마음의 어룽

- 쉬이 보이리라

그러나 풀리지 않으리라

가다 오다 돌아보는 알고리즘 너머로

그날 밤 풀다 남은 연정의 풀이

풀어도 풀어지지 않는 NP 문제의 잔향

이 시를 전 세계의 모든 NP 클래스 문제들에게 바칩니다.

§ 시 사용 설명서

-NP 클래스 문제-

운에 기대면 현실적인 비용으로 해결할 수 있는 문제들을 ‘NP 클래스 문제’라도 부른다. NP 클래스 문제의 예로는 해밀턴 경로 문제가 있다. 지도에 각 도시들을 잇는 선, 즉 도로가 표시되어 있다. 출발 지점에 해당하는 도시 하나를 선택하자. 그리고 바로 이웃한 도시들 중 하나를 골라 이동해보자. 모든 도시를 한 번씩 방문할 수 있는 경로, 즉 해밀턴 경로를 이용하여 각 도시들을 여행할 수 있을까? 이 문제는 NP 클래스 문제이다. 즉, 운이 좋은 선택을 연속적으로 하게 된다면, 정확히 지도에 존재하는 도시의 개수만큼만 이동하면 된다.

방문할 도시가 n개라고 하자. 그렇다면 모두 한 번씩만 방문하는 경로는 n!개가 있을 것이다.(순열) 이는 다항시간에 풀 수 있는 알고리즘이 아니다. 다항시간보다 더 복잡한 시간이 걸린다. 즉, 현실적인 비용으로 해결할 수 있는 문제인 ‘P 클래스’ 문제가 아니라, 비현실적인 비용을 들여 해결해야 하는 ‘NP 클래스’ 문제에 해당하는 것이다.

4.

아무도 반달을 사랑하지 않는다면

반달이 보름달이 될 수 있겠는가

보름달이 반달이 되지 않는다면

사랑은 그 얼마나 오만할 것인가

- 정호승, <반달>

시에 대한 컴퓨터과학적 해석

아무도 반달을 사랑하지 않는다면

반달이 보름달이 될 수 있겠는가

보름달이 반달이 되지 않는다면

사랑은 그 얼마나 오만할 것인가

- 아무도 구글을 사랑하지 않는다면

정보가 지식이 될 수 있겠는가

구글 검색에 마르코프 체인이 이용되지 않는다면

우리의 매일은 그 얼마나 불편할 것인가

이 시를 매 순간 빠른 속도로 돌아가고 있는 마르코프 체인에게, 우리에게 많고 다양한 정보를 제공하는 구글에게 바칩니다.

§ 시 사용 설명서

-구글을 활용한 지식 검색: 마르코프 체인을 이용하여-

모르는 것이 있을 때, 구글의 검색창에 입력하기만 하면 원하는 지식이 출력된다. 그런데 이때, 보통 우리가 제일 원했던 정보가 화면의 상단 부분에 출력이 되고, 상대적으로 원하지는 않았지만 검색창에 입력했던 것과는 분명 밀접한 관계가 있는 것들이 화면의 하단 부분에 출력이 된다. 그렇다면 구글이 사람들의 마음까지 읽을 수 있는 것일까? 구글은 사람들이 가장 많이 방문할 것 같은 순서대로 정보를 출력해 낸다. 즉, 구글은 사람들이 페이지를 방문할 빈도를 계산하여 그 빈도가 큰 것부터 상단에 위치시킨 채 정보를 보여주는 것이다. 이러한 구글의 계산은 수학의 ‘마르코프 체인’ 모델을 차용한다. A 웹사이트를 방문하다 B 웹사이트로 이동할 확률이 5%, 이동하지 않고 A 웹사이트에 계속 머물러 있을 확률이 95%라고 하자. 반대로, B 웹사이트를 방문하다 A 웹사이트로 이동할 확률이 15%, 이동하지 않고 B 웹사이트에 계속 머물러 있을 확률이 85%라고 하자. 이 상황에서 각 페이지를 방문하는 빈도의 비율은 마르코프 체인의 끝을 계산하는 방식으로 구할 수 있다.

[eqn: A _{k+1} =0.95 TIMES A _{k} +0.15 TIMES B _{k}]

[eqn: B _{k+1} =0.05 TIMES A _{k} +0.85 TIMES B _{k}]

이때 [eqn: A _{0} ,`B _{0}]는 A 웹사이트와 B 웹사이트 방문 각각을 웹사이트 방문의 시작점으로 할 확률이다. 이러한 방식으로 연쇄 반응식의 끝을 구하면 각 페이지를 방문할 상대적인 비율을 구할 수 있는 것이다.

참고문헌

1장. 원천 설계: 보편만능의 기계, 그 설계도를 톺아보자.

-‘앨런 튜링:컴퓨터와 정보 시대의 개척자(Turing: Pioneer of the Information Age)’ B.잭 코플랜드(Jack Copeland) 지음, 이재범 옮김. 2014. 지식함지

-‘튜링 : 이미테이션 게임(The great philosophers : Turing)‘ 앤드류 호지스(Andrew Hodges) 지음, 박정일 옮김.2015. 해나무

2장.

-이상엽Math 유튜브, 괴델의 불완전성 정리. 2019

https://www.youtube.com/watch?v=FbHowuEuYk8&t=1867s

5장.

-문학작품의 디지털인문학적 접근: 셰익스피어 비극작품 중심으로. 장세은. 새한영어영문학회. 2019. p117-142

-우리는 어떻게 감정을 경험하고 표현하는가? : 폴 에크먼, 『표정의 심리학: 우리는 어떻게 감정을 드러내는가』(허우성·허주형 옮김, 바다출판사, 2020). 이명호. 철학문화연구소. 2020. p219-228

인공 감정 모델의 설계. 이인근 외 3인. 한국지능시스템학회 논문지. 2007. p648-653

인공 지능에서 인공 감정으로 : 감정을 가진 기계는 실현가능한가?. 천현득. 철학 131. 한국철학회. 2017. p217-243

캐릭터의 성격 유형별로 정서적 특징을 반영한 인공감정. 여지혜 외 4인. 한국컴퓨터정보학회 학술논문집 19. 한국컴퓨터정보학회. 2011. p133-136

학교 창의력을 어떻게 교육할 수 있는가?. 김영채. 사고개발 16. 대한사고개발학회. 2020. p1-21

마치며

『컴퓨터과학이 여는 세계』를 읽고 컴퓨터과학으로 그리는 미래 설계도를 책의 형태로 만들어 보았다. 각 저자들의 생각과 소감을 이 책의 마지막 부분에 함께 담아 보았다.

이시연

1장에서는 ‘천재’ 혹은 ‘창의성’을 튜링이 그랬던 것처럼 명확하게 정의해 보고 싶었다. 항상 무언가를 잘 하는 사람들을 보고, ‘나도 저렇게 잘하고 싶다’라고 생각했었던 것 같다. 부러움 혹은 열등감, 모든 사람들이 가지고 있는 감정일 것이다. 그런데 이것을 해결하는 가장 직접적인 방법은, 그것을 잘 하려고 노력하는 것 아닐까. 이 글도 그러한 노력의 일환이다. 어떻게 하면 나도 천재처럼 생각하고, 창의적으로 생각할 수 있을까? 모르는 것보다는, 아는 것이 훨씬 도움이 될 것이라고 생각한다. 하지만 그 목표에 비해 결과물이 충분히 명확하지 못하고 모호한 것 같아 아쉬움이 많다. 더 많이 공부를 하면 닿을 수 있을까.

2장을 적으면서는 괴델의 불완전성 정리나, 칸토어의 무한 개념 등을 배울 수 있었다. 처음으로 능동적으로 수학 공부를 해본 것 같은데, 생각보다 흥미로웠다. 수학이 발전하는 과정은, 어쩌면 수학이 엄밀함을 좇아가는 과정이 아닌가 생각한다. 수학은 수학 문제를 풀기 위해 존재하는 것이 아니었다. 사소한 것 하나마저 엄밀하게 증명하기 위한 치밀한 과정이 수학이 아닐까. 2장의 내가 쓴 부분을 읽으면 아직 나조차도 의문이 드는, 빈 부분들이 많긴 하지만, 정말 공부다운 공부를 해 봤다는 느낌이 드는 것 같다.

5장에서는 인공 감정을 어떻게 만들어 낼 수 있을까, 에 대한 생각을 그냥 죽 늘어봤다. 관련 연구들도 찾아봤는데, 생각보다 연구가 많이 진행된 분야는 아닌 것 같다. 어찌 보면 당연한 것이, 인공 감정을 창조할 필요가 있는지조차 의문이고, 이를 만들기 위해서는 글에서 말한 것처럼 배경(문화,사회적), 자아, 자극을 창조할 필요가 있을 것이다(혹은 인간의 그것들을 사용할 수도 있겠다). 어쩌면 컴퓨터를 통해서 인공 감정(혹은 지능)을 창조하고자 하는 것은, 하나의 생명체를 만들어내는 과정이 아닐까 싶기도 하다. 어쩌면 그것의 최종 완성형, 혹은 따라잡아야 하는 1차 목표가 인간이 아닐까 싶다. 용두사미가 되어버린 것 같은 장이라 아쉽지만, 많은 생각을 해 볼 수 있었다.

이호제

사람들은 항상 주변에 있는 것의 힘이나 소중함을 과소평가하곤 한다. 컴퓨터는 어린 시절부터 계속해서 옆에 있었기에 컴퓨터를 적당히 복잡한, 특별하지는 않은 기계 정도로 생각했다. 아마 이러한 인식이 ‘컴퓨터과학이 여는 세계’를 강의하신 교수님이 학생들이 가지도록 원하신 인식이지 않을까 싶다. ‘컴퓨터 너무 복잡한 것은 아니다, 컴퓨터의 원리는 이렇다. 한계는 이렇다.’ 설명하시면서 말이다. 그러나 본래부터 다소 컴퓨터를 얕보는 생각을 가졌었기에 수업을 듣고 책을 만들어 보는 과정에서 컴퓨터의 대단함을 알 수 있었다.

사실 컴퓨터의 원리 자체는 어렵지 않다. 오히려 생각보다 더 간단했다. 컴퓨터는 튜링 기계의 원리를 근간으로 하여 부울 논리를 이용해 프로그램을 설계하고 스위치 회로를 통해서 적용된 것이다. 그러나 문제는 엄청나게 많은 숫자의 스위치들이 너무나도 작은 컴퓨터 안에 모두 들어가 있다는 것이다. 이러한 부분은 컴퓨터를 ‘적당히 복잡한 기계’에서 ‘괴물 같은 기계’로 필자의 인식이 변화하게 된 계기를 주었다.

이렇게 쓰다보니 소감이 다소 괴상하다는 생각이 든다. 보통 소감이라 하면 어렵게 보였는데 쉬웠다라거나 새로운 것을 알게되는 것 위주이기 때문이다. 그러나 이 소감은 마치 현대 과학을 얕보던 사람이 그 힘을 보고 깜짝 놀란 것과도 같은 모습이다. 물론 어떻게 그렇게 많은 스위치들이 컴퓨터에 들어가 있는지는 이 책과는 별 상관이 없다. 이 책은 컴퓨터의 원리 자체에 초점을 두고 있기 때문이다. 다만, 컴퓨터에 관해 공부하며 느낀 필자의 감정 정도로만 보아주면 좋겠다.

결과적으로 조원과 함께 책을 만들고 강의를 수강하며 컴퓨터 과학에 대한 시야를 넓힐 수 있었다. 더 나아가 컴퓨터란 어떤 기계인지에 대해 전반적으로 잘 이해할 수 있었다. 그리고 동시에 컴퓨터가 얼마나 간단하면서도 복잡한 기계인지 알 수 있었다. 한 학기동안 강의를 듣고 책을 만들기까지 정말 의미 있는 시간이었고 하나의 추억이 될 것 같다.

강서현

『컴퓨터과학이 여는 세계』라는 책을 읽어보기 전까지는, 서울대학교의 ‘컴퓨터과학이 여는 세계’ 교양 수업을 듣기 전까지는, 컴퓨터란 복잡하기만 하고 고장 났을 때 수리 센터에 맡겨야 하는 그런 어렵기만 한 고철 덩어리라고만 생각했었다. 매일 아침 눈을 뜨자마자 확인하는 스마트폰의 경우에도 마찬가지였다. 나를 참 편하고 재미있게 만들어주는 기계지만, 만일 고장이 나기라도 하면 큰일이 나는 기계. 딱 그 정도였던 것 같다. 그런데 책을 읽고, 강의를 듣고, 이번 책을 만드는 프로젝트를 함께 하다 보니 전과 같은 생각이 완전히 바뀌게 되었다. 각을 잡고 디자인한 것이 아닌, 수학적 명제를 증명하는 과정에서 제안된 기계적인 방식에 의해 설계된 컴퓨터의 초안에 대한 충격을 1장에 담아내었다. 만능적인 기계인줄만 알았던 컴퓨터가 기계적인 방식을 이용하여 해결할 수 없는 방식도 있음을 깨닫고 얻은 생각을 2장에 녹여내었다. 4장에는 시나리오의 방식으로 표현해 보았다. 6장에는 튜링 기계, 부울의 생각 회로 스위치, NP 클래스 문제, 그리고 구글의 놀라운 검색 엔진 방식과 그에 이용된 마르코프 체인과 관련지을 만한 시들을 찾아 수록하였다. 강의와 책을 바탕으로 진행한 이번 팀 프로젝트는 컴퓨터과학에 대해 달라진 나의 생각을 책이라는 방식으로 고스란히 기록할 수 있는 뜻 깊은 경험이 되었다. 세 명의 미래 설계도가 출판되면 책장에 꽂아두고 가끔 읽으며 달라진 나의 생각을 고스란히 마음속에 간직해 둘 것이다.

이상으로 컴퓨터과학으로 그리는 미래 설계도를 마칩니다.