아마 글에 대한 감상이라기보다는, 좀 더 복합적인, 테크 리뷰라고 하기에는 애매하고 그렇다고 아니라고 하기에는 좀 애매한 글. 그럼에도 시작해보자면 먼저 중세 유럽에서 세상을 바라보던 세계관, 세계극장theatrum mundi을 논할 필요가 있다. 이 세계관에서 세상은 신이 관측하는 하나의 연극으로서, 모든 운명이 사전에 결정된 상태에서 그 연극 속에서 각각의 사람들이 자신의 배역에 맞춰 연극을 마치고 무대에서 내려온다. 현실을 그 이면의 실체로부터 유리된 일종의 환상으로 보는 시각은 플라톤, <우파니샤드> 등 여러 뿌리로부터 올라오지만 여기에서 문제가 되는 것은 사실 연극 자체는 아니다. 불교에서 윤회가 ‘이미 존재한다고 상정되고’ 그 윤회 속에서 유지되는 이것성thisness를 설명해야 했듯, 세계극장의 문제는 세계가 극장이라는 것이 아니다. 그 극장 위에서 행동하는 사람의 자유의지와 책임을 어떻게 설명해야 하느냐는 것이다. 가장 대표적인 예시를 들자면, 배반이 예정되어 있던 유다를 어째서 벌해야 하는가?
현대의 시뮬레이션 우주론은 이 계보 위에 있다. 우리가 살고 있는 현상계가 거대한 계산기계 위의 시뮬레이션일 뿐이고, 우주의 끝은 그저 시뮬레이션이 끝나는 순간일 뿐이라는 것. 현상계를 뚫고 느끼는 어떤 본질에 대한 감각은 그 계산기계와 맞닿는 순간이다. 이러한 시각이 힘을 얻은 이유야 물리학의 양자적-양자역학의 불확정성이 아니라, 물리량이 결국 ‘양자’로 딱딱 떨어질 수밖에 없다는 것-특성과 현대 정보혁명의 ‘계산적 전회’라고 할 만한 흐름이겠지만, 그것이 단순히 사그라지지 않는 이유는 이 계산을 다루는 방법이 컴퓨터공학적으로 충분히 체계적으로 정립되어 있었기 때문이다. 본질과 현상의 문제, 실재와 가상의 문제, 자원과 경합의 문제, 그 밖의 많은 구체적인 ‘공학’의 문제가 세계연극의 연극이 비유 이상으로 나아갈 수 없던 것보다 훨씬 잘 설명되며, 대신 이 형식의 충실함에 대비되듯 내용-곧, 그래서 왜 시뮬레이션이고 그것이 우리에게 어떤 의미를 갖는가?-이 텅 비어 있다. 그렇기 때문에 시뮬레이션 우주론이 죽지 않는 동시에, 그리 진지하게 받아들여지지도 않는 걸테다.
그리고 시뮬레이션 우주론의 반대편에 테리 데이비스가 서 있다. 그는 자신의 병적일 수준의 신학적 직관을 그대로 컴퓨터에 녹여낸 사람으로, 컴퓨터 OS를 통해 신에게 바칠 성전을 지을 수 있다고 믿었다. 그 말 그대로 만들어진 TempleOS는 난수 생성을 통해 성령과 직접적으로 교류하며 어디에서나 포팅 가능한 OS 구동을 통해 늘 주님의 말씀을 받들 수 있도록 하였다. 그는 세계가 컴퓨터와 연결된다고 믿지 않았으며, 대신 이 시대의 돌과 나무는 컴퓨터 OS라고 믿고 성경 구절을 글자 그대로 받아들이며 OS를 구현했다. 성전에서 프로그램은 곧 커널이며, 모든 함수는 그 자체로 살아 있는 객체이기에 호출 시에 () Unit이 불필요하다. 그 함수는 행동으로서 어딘가에 저장이 되어 있어 주소를 참조할 수는 있지만, 서로 다른 호출은 서로 다른 행동이 된다. 혹은, 말씀이라고 할 수 있으리라. letThereBeLight이지 letThereBeLight()이 아니니까.
다만 단순히 이것을 성전으로만 보기에는 미심쩍은 기술적 세부사항이 많다. TempleOS가 시작될 때 처음 활동하는 프로세스의 이름은 Adam이며, 당연하게도 모든 TempleOS 프로그램은 Adam의 자식 프로세스이며, 대부분의 OS 프로그램은 커널에서 Adam 폴더에 들어 있고, 그 Adam을 비롯한 HolyC 프로그램이 실행되는-모든 프로그램은 그 즉시 JIT 컴파일되어 기계어로 실행된다, 곧 그 어떤 공헌도 무의미하지 않으며 영원히 세상에 남는다-영역은 어떤 권한 제약도 없는 Ring 0 에덴 동산이다. 물론, 타입 역시 64비트로 통일된 메모리 위에서 언제나 자유롭게 캐스팅이 가능하다. 단순한 성전이라고 해석하기에는 다소 과감한 의미 부여인데, 어떤 의미로 보면 이는 OS의 시작이 천지창조 이후 아담을 만들고 그 에덴 동산에서 프로그래머라는 사제가 주님께 공헌하는 것으로 해석될 수 있기 때문이다-그리고 사실 말 그대로 그런 의미인 것 같다.
단요의 단편 <존재의 대연쇄>는 아마 그런 발상으로 TempleOS를 바라본 듯하다. 그 안의 세계는 단순한 성전보다는 하나의 시뮬레이션 세계이며, 그 안에 성령이 깃들 수 있다면 성령이 깃든 우리의 세계 역시 하나의 시뮬레이션이라고 보지 않을 이유가 없다. 제목 ‘존재의 대연쇄’가 말하듯, 신-천사-인간-동식물-무생물까지 세상에 존재하는 만물이 자리잡고 있는 신학적 위계 질서는 세계 자체에도 적용되며 TempleOS의 프로그래머-혹은 사용자? 영지주의의 데미우르고스가 연상되는데, 나는 이게 신학적으로 신성모독인지 모르겠다-가 하나의 신이 되는 세상 속에서 그 피조물들은 시뮬레이션 위에서 살아가며, 자신의 예정된 수명이 다하면 프로세스로서 사망하여 메모리에 남는다. 이런 부분이 시뮬레이션 우주론이 형식적으로 유능한 부분인데, 세상이 시뮬레이션이라면 사람의 삶과 죽음을 프로세스로서 이해할 수 있고, 그 사람의 바이너리가 메모리에 남아 있더라도 그것이 재차 실행되지 않는 이상 그는 다시 삶을 경험하지는 않으며, 바이너리의 실행 과정은 프로그래밍으로 이미 결정되었지만 일종의 기적-CS적인 의미로는, 트랩-없이는 그 실제 실행에 간섭할 수 없다. 최후의 날이 오기 전까지 모든 태어난 사람은 바이너리 데이터로 계산기계 속에 남아 있다가, 최후의 날이 되면 이것을 완전히 삭제하거나, 영구히 구동시키는 쿠버네티스 속에서 살아가거나…… 더 나아가면 이건 정말 테크 리뷰가 될 것 같다.
이 실제 구동의 디테일과는 별개로, <존재의 대연쇄>에서도 핵심은 그 시뮬레이션 속의 사람이 어떻게 자신의 삶과 선택, 곧 자유의지를 이해해야 하느냐에 달려 있다. 주인공과 피에르는 세상이 일종의 시뮬레이션이라는 것을 확인했고, 그것이 자신들의 신학적 의지와 충돌하지 않는다는 것도 이해했다. 그러나 그럼 고전적인 문제가 재도래하는데, 자신들이 이 시뮬레이션을 조작하여 종말의 날이 도래하도록 하는 것은 과연 허용된 것인가? 허용되지 않았다면, 허용되지 않은 일을 하는 것까지 이미 결정되어 있는 것인가? 자신들은 유다가 그러했듯 종말의 날을 도래하도록 권한을 남용하고 처벌받도록 운명 지어져 있는 것인가? 바이너리 프로그램이 실행 도중에 자신을 바꿀 수 없듯-저주받을 Python 역시 그런 남용을 허용하지는 않는다고 믿고 싶지만 난 아직 그 바이트코드와 프레임 실행에 대한 정확한 제약을 이해할 수 없다-그 두 사람의 행동 역시 자신의 고민과는 별개로, 정해져 있을 것이다…… 라고 생각한다면 또 하나의 착각이 있다. 세계가 TempleOS의 시뮬레이션이라면, 그들의 고민은 방향을 잘못 잡았다.
TempleOS의 극악한 융통성은 이 운명론에 기이한 비틀림을 주는데, 어쩌면 신학적으로는 이쪽이 더 정통적인 것일지도 모르겠지만, 그들의 행동은 프로세스 단에서 ‘바뀔’ 수 있다. 프로그램은 실행되는 과정 속에서 스스로 문자열을 만들어 그 문자열로 만들어진 프로그램이 즉시 JIT 컴파일 되어 자신의 바이너리 실행에 관여할 수 있다. 그리고 <존재의> 속에서 두 사람이 종말의 날을 실행시킨 것은 사실 이쪽에 더 가깝다. 권한을 우회하고, 메모리 주소를 직접 참조하고, 스택 오버플로우 같은 일종의 보안 취약점을 이용한다. 유다는 예수를 배반하지 않을 수 있었지만 배반한 것이 되고, 두 사람은 종말의 날을 앞당기지 않을 수 있었지만 그리 한 것이 된다. 그 선택의 책임은 그들의 몫이다. 그렇기에 이들이 받는 처벌 역시 순전히 자신의 몫이며, 세상에 슈퍼마리오 BGM이 울려퍼지게 한 것도 늦게나마 처벌받고 있다고 할 수 있을 테다. 이 부조리한 유머는 내 생각에는 키에르케고르스러운 실존적 공포라고 생각하지만, 소설 마지막에서 주인공이 또 다른 시뮬레이션의 신이 되듯 여기에는 공포가 아닌 감동이 있다. 혹은 작가는 그렇게 주장하는 듯하다.
내 생각에는 그렇지 않다.