10. 체계·구조

계층적 사고 (hierarchy / levels)

하나의 평면 위에서 모든 것을 한꺼번에 다루지 않고, 대상을 추상화의 층(레벨)으로 나눈 뒤 각 층의 논리를 따로 분리해 다루는 사고법. 아래층의 사정과 위층의 규칙을 섞지 않고, 어떤 층은 자기 자신을 말하지 못하고 오직 한 단 위의 층만이 그것을 내려다볼 수 있다는 위계를 세워, 한 평면에 다 욱여넣었을 때 터지는 모순과 혼란을 미리 갈라놓는 것이 핵심이다.

너, 이발사 이야기 한번 들어 봐라. 어느 마을에 이발사가 하나 있는데, 그는 '스스로 면도하지 않는 사람만' 면도해 주기로 정했다. 딱 그 사람들만. 자, 그럼 이 이발사 자신은 누가 면도하나. 그가 스스로 면도한다고 치면, 그는 '스스로 면도하는 사람'이 되니까 자기 규칙상 면도해 주면 안 된다. 그럼 안 한다고 치면, 그는 '스스로 면도하지 않는 사람'이 되니까 규칙상 반드시 면도해 줘야 한다. 한다고 해도 틀리고 안 한다고 해도 틀린다. 머리가 어지럽지. 우습게 들리는 이 말장난이, 사실은 한 위대한 사람의 삼십 년 평생 작업을 단 한 장의 편지로 무너뜨린 폭탄과 똑같은 모양이다. 오늘 이야기는, 이 자기 자신을 삼키는 고리를 어떻게 풀었는가에 관한 거다. 그리고 그 해법은 의외로 단순했다. 층을 나누는 것.

20세기 문턱의 독일에 고틀로프 프레게라는 논리학자가 있었다. 평생 한 가지 꿈에 매달린 사람이다. 산수 전체를, 그러니까 1 더하기 1이 2라는 그 모든 것을, 순수한 논리의 몇 가지 법칙 위에 빈틈없이 다시 세우는 일. 그는 이걸 위해 '산술의 근본 법칙'이라는 거대한 저작을 짓고 있었다. 그 토대 중 하나가, 어떤 성질을 말하면 그 성질을 가진 것들이 모조리 모여 하나의 모임을 이룬다는 믿음이었다. 너무 당연해 보이는 이야기지. 그런데 1902년 6월, 영국의 젊은 버트런드 러셀이 그에게 편지 한 통을 보낸다. 깍듯한 존경을 표한 뒤, 러셀은 아주 부드럽게 폭탄을 내려놓는다. 자기 자신을 원소로 갖지 않는 모든 모임을, 다 모아 하나의 모임으로 묶어 보자. 그럼 이 새 모임은 자기 자신을 원소로 가지나, 안 가지나. 가진다 하면 안 가지는 것들의 모임이라는 정의에 어긋나고, 안 가진다 하면 바로 그 조건 때문에 자기를 가져야 한다. 이발사와 똑같은 고리다. 프레게의 그 '당연한' 토대 위에서, 있어선 안 될 모순이 정면으로 솟아오른 것이다.

이 순간이 얼마나 잔인했냐면, 러셀의 편지가 도착했을 때 프레게의 저작은 이미 2권이 인쇄에 들어가 있었다. 평생의 집이 거의 다 지어진 그 자리에서, 주춧돌 하나가 통째로 무너진 거다. 프레게는 도망치지 않았다. 그는 곧장 책 끝에 부록을 붙여, 이 모순이 자기 체계에서 어떻게 솟는지를 손수 적어 세상에 알렸다. 전해지기로 그의 답신에는, 학자에게 자기 건축물의 토대 하나가 다 짓고 난 뒤에 흔들리는 것보다 더 달갑지 않은 일은 거의 없다는 취지의 말이 담겨 있었다. 그는 황급히 토대를 수선해 보려 했지만, 그 임시방편은 훗날 세상에 단 하나의 사물만 존재한다는 터무니없는 결론을 낳는 것으로 드러나 폐기됐다. 한 사람의 가장 정교한 꿈이, 자기 자신을 가리키는 한 줄의 고리 앞에서 그렇게 주저앉았다.

그 폭탄을 던진 러셀 본인이, 동시에 해체반이 됐다. 그가 찾아낸 길이 바로 층을 나누는 것이었다. 그는 모든 것을 한 평면에 뒤섞어 두니까 모순이 터진다고 봤다. 그래서 위계를 세웠다. 가장 아래에는 그냥 개별 사물들이 있다. 그 한 단 위에는 사물들에 관한 모임이 있다. 또 한 단 위에는 모임들에 관한 모임이 있다. 그리고 철칙 하나를 박는다. 어떤 층의 것은 오직 자기보다 한 단 아래의 것만 원소로 삼을 수 있다. 같은 층이나 자기 자신을 원소로 삼는 말은 아예 문법에 어긋난 헛소리로 금지된다. 그러면 '자기 자신을 원소로 갖지 않는 모든 모임'이라는 말 자체가 처음부터 성립하지 못한다. 자기를 자기 안에 넣는 그 고리를, 문법 차원에서 금지해 버린 거다. 러셀은 이걸 논리적 유형 이론이라 불렀다. 1902년 러셀의 원리 부록에서 그 씨앗을 처음 내비쳤고, 1908년에 더 정교한 형태로 다듬었으며, 화이트헤드와 함께 쓴 거대한 수학 원리 안에서 본격적인 무기로 벼려 냈다. 흥미롭게도 층으로 나눈다는 발상의 싹은 프레게에게도 있었다. 그는 사물을 받는 개념과 그 개념을 받는 더 높은 개념을 구분해 두고 있었으니까. 다만 러셀이 그것을 모임과 명제 전체에까지 밀어붙여, 모순을 막는 일반 장치로 세운 것이다.

이 층 나누기를 가장 맑고 멀리까지 밀고 간 사람은 폴란드의 알프레트 타르스키였다. 그가 1930년대 초에 붙든 건 더 오래된 골칫거리, 거짓말쟁이의 역설이었다. '이 문장은 거짓이다.' 이게 참이면 거짓이고 거짓이면 참인, 또 하나의 자기를 삼키는 고리다. 타르스키의 해법도 결국 층이었다. 그는 어떤 언어가 자기 문장이 참인지 거짓인지를 자기 안에서 말하려 들면 반드시 모순이 터진다는 걸 증명했다. 그래서 그는 두 층을 갈랐다. 이야기되는 대상의 언어가 아래에 있고, 그 언어의 문장이 참인지를 판정하는 말은 반드시 그것을 품은 한 단 위의 메타언어에서만 할 수 있다. 그 위의 참을 말하려면 다시 그 위의 언어가 필요하고, 그렇게 사다리가 무한히 올라간다. 어떤 층도 자기 자신의 참을 말하지 못하고, 오직 위층만이 아래층을 내려다보며 참을 정한다. 거짓말쟁이의 고리는, 한 층 안에 가두려 했기에 터졌던 것이다. 층을 갈라 세우자 고리는 풀렸다.

이 위계의 발상이 오늘날 가장 빽빽하게 살아 숨 쉬는 곳은 컴퓨터다. 네가 다루는 모든 소프트웨어 안에는 자료의 유형이라는 층층의 위계가 박혀 있다. 어떤 자리에는 숫자만, 어떤 자리에는 글자만 들어가도록 정해 두고, 글자를 숫자처럼 더하려 들면 기계가 그 자리에서 손사래를 친다. 잘못된 층의 것을 엉뚱한 층에 욱여넣는 짓을, 프로그램이 돌기도 전에 막아 주는 것이다. 러셀이 헛소리를 문법에서 금지했던 그 동작이, 형태만 바꿔 매일 수억 번 돌아가고 있는 셈이다. 여기서 네가 정말 눈여겨봐야 할 대목이 있다. 기계가 이걸 해내려면 생각의 가장 윗단추부터 갈아 끼워야 했다. 처음엔 프로그램이란 그저 기계에게 시키는 명령의 나열일 뿐이었다. 그런데 사람들은 곧 한 단 위로 올라섰다. 프로그램 자체를, 또 다른 프로그램이 들여다보고 다루는 한낱 자료로 취급하기 시작한 것이다. 코드를 받아 그것이 옳게 짜였는지 따지고 번역해 내는 도구는, 그 코드를 실제로 돌리지 않으면서 한 층 위에서 코드를 대상으로 사유한다. 대상의 언어와 그것을 말하는 메타의 언어를 가른 타르스키의 사다리가, 코드와 그 코드를 다루는 코드라는 형태로 컴퓨터의 심장에 들어앉은 거다. 한 평면에서 명령을 읊던 생각이, 층과 메타라는 윗단추를 새로 끼우고 나서야 비로소 거대한 체계를 감당하게 되었다.

그러니 너가 어떤 논의 앞에서 말이 자기 꼬리를 물고 빙빙 돌며 도무지 결판이 안 나거든 — 규칙을 정하는 이야기와 그 규칙 안에서 벌어지는 이야기가 한데 뒤엉켜 서로를 삼키거든 — 멈추고 물어라. 지금 이 말들은 같은 층에 있는가. 사물을 말하는 층과 그 말을 다시 말하는 층을, 게임의 규칙과 게임 안의 수를, 또렷이 갈라 세워라. 자기 자신을 삼키려는 고리는 한 층 안에 가두려 할 때 터진다. 층을 나누고, 아래는 아래대로 위는 위대로 따로 말하게 하라. 그게 한 젊은이가 스승의 무너진 집 앞에서 건져 올린, 혼란을 가르는 칼이다.