02. 논리·정합성 점검

한런의 면도날 (Hanlon's razor)

어떤 나쁜 결과가 누군가의 악의 탓처럼 보일 때, 어리석음이나 부주의, 단순한 실수로 충분히 설명되는 일이라면 굳이 악의로 돌리지 말라는 사고의 원칙이다. '면도날'이라는 이름은, 불필요한 가정을 잘라 내라는 오컴의 면도날에서 따왔다. 똑같이 들어맞는 설명이 둘이라면, 음모보다 실수 쪽을 먼저 집으라는 경험칙이다.

너, 회사에서 이런 아침을 맞은 적 있을 거다. 어제 분명히 합의된 일이었는데, 오늘 와 보니 그 사람이 전혀 다르게 처리해 놨다. 머릿속에서 곧장 한 편의 드라마가 시작된다. '일부러 그런 거야. 나를 물 먹이려는 거지. 지난번 회의에서 내 안이 채택된 게 못마땅했던 거야.' 너는 그 사람의 표정, 말투, 지난 몇 주의 사소한 마찰을 전부 끌어모아 하나의 음모로 엮는다. 그런데 점심때 슬쩍 물어보니, 그는 메일을 못 봤다. 받은편지함 맨 아래로 밀려 안 읽힌 채였다. 악의는 애초에 없었다. 그냥 메일 하나가 묻혔을 뿐이다. 오늘 이야기는, 네 머릿속에서 이렇게 너무도 쉽게 피어오르는 그 음모의 드라마를, 단칼에 베어 버리는 면도날 한 자루에 관한 거다.

이 면도날을 쥐고 있던 사람의 정체부터가 이 이야기에 딱 어울린다. 거창한 철학자가 아니다. 1980년, 미국 펜실베이니아주 스크랜턴에 살던 로버트 J. 한런이라는 평범한 컴퓨터 프로그래머다. 그 무렵 '머피의 법칙' — 잘못될 수 있는 일은 기어이 잘못된다는 그 농담 — 을 모은 책이 인기를 끌자, 출판 쪽에서 속편을 내며 독자들에게 자기만의 '법칙'을 공모했다. 일종의 유머 모음 이벤트였다. 한런이 거기 한 줄을 보냈다. '어리석음으로 충분히 설명되는 일을 악의로 돌리지 마라.' 그 한 줄이 1980년 아서 블로크가 엮은 속편에 실렸고, 그게 전부였다. 그러니까 이건 학회에서 발표된 정리도, 두꺼운 논문의 결론도 아니다. 농담책 한 귀퉁이에 끼어든 독자 투고 한 줄이, 사람 이름을 단 '면도날'이 되어 살아남은 거다.

그런데 정작 한런 본인은 이 생각을 처음 떠올린 사람이 아니다. 비슷한 통찰은 그 전부터 여기저기 흩어져 있었다. 멀리는 18세기로 거슬러 올라가, 괴테가 1774년에 쓴 소설 '젊은 베르터의 슬픔'에 이런 문장이 있다. 오해와 게으름이 이 세상에 일으키는 혼란이, 차라리 악의나 간계가 일으키는 것보다 더 많다고. 게다가 악의나 간계는 그렇게 자주 일어나지도 않는다고. 두 세기 전의 괴테가 이미 같은 자리를 짚고 있었던 셈이다. 한런이 한 일은 새로 발명한 게 아니라, 떠다니던 이 생각에 가장 짧고 외우기 좋은 칼날을 벼려 이름을 박은 것이다. 좋은 사고법이 으레 그렇듯, 누가 '발견'했느냐보다 누가 잊히지 않게 '벼렸느냐'가 그것의 운명을 갈랐다.

여기서 이 이야기의 가장 얄궂은 대목이 나온다. 이 면도날 자체가, 자기를 증명하는 사건에 휘말린다. 한런의 그 문장은 오랫동안 엉뚱한 사람의 것으로 떠돌았다. 전해지기로는, 공상과학 작가 로버트 하인라인이 1941년 작품에 적은 비슷한 구절과 뒤섞이면서, 많은 이들이 출처를 하인라인으로 잘못 알고 인용해 온 것이다. 자, 생각해 봐라. 누군가 출처를 틀리게 적었을 때 너는 어떻게 의심하기 쉬운가. '이놈이 한런의 공을 가로채려고 일부러 하인라인 이름을 갖다 붙였구나.' 하지만 거의 모든 경우, 진실은 시시하다. 그냥 비슷한 두 문장을 헷갈렸을 뿐이다. 악의가 아니라 착각. 이 면도날의 출처를 둘러싼 혼란조차, 악의가 아니라 어리석음과 부주의로 설명된다는 것 — 이보다 더 완벽한 자기 증명이 있을까.

이 칼이 가장 날카롭게 쓰인 동네는 뜻밖에도 컴퓨터 앞이다. 한런의 한 줄은 1990년 무렵 프로그래머들의 은어 사전에 정식으로 올랐고, 그때부터 개발 현장의 일상어가 됐다. 왜 하필 거기서였을까. 코드를 짜다 보면 시스템이 도무지 말이 안 되는 짓을 한다. 멀쩡하던 데이터가 통째로 날아가고, 안 보내야 할 메일이 만 명에게 발송된다. 그 순간 사람의 본능은 음모를 향한다. '누가 해킹했나. 앙심 품은 내부자가 시한폭탄을 심었나.' 그런데 파 보면 거의 매번 범인은 시시한 실수다. 이를테면 사용자 이름이 비어 있을 때를 처리 못 한 청소 스크립트 한 줄이, 빈칸을 만나자 '해당하는 전부'를 지운다고 알아듣고 데이터베이스를 통째로 비워 버린 식이다. 악당이 아니라 괄호 하나, 조건문 하나의 허술함. 그래서 노련한 엔지니어들은 장애가 터지면 '누가 그랬나'를 먼저 묻지 않는다. '무엇이 어디서 어떻게 어긋났나'를 묻는다. 범인 색출은 시간을 잡아먹고 팀을 갈라놓지만, 어긋난 지점을 찾는 일은 문제를 고친다. 한런의 면도날이 디버깅 문화의 밑바닥 신조로 들어앉은 이유가 이것이다.

다만 면도날을 쥘 때 한 가지는 잊지 마라. 이건 악의가 세상에 없다는 순진한 믿음이 아니다. 악의는 분명히 있다. 다만 그것은 네 짐작보다 훨씬 드물고, 어리석음과 부주의는 네 짐작보다 훨씬 흔하다는, 확률에 관한 냉정한 경험칙이다. 그러니 너가 누군가의 행동에 모욕당하거나 뒤통수 맞았다고 느끼는 순간을 만나거든, 머릿속 드라마가 음모의 결말로 치닫기 전에 이 칼을 한 번 대어 봐라. 이 일이 그저 그 사람의 무지나 실수, 못 본 메일 한 통, 빠뜨린 단계 하나로도 충분히 설명되는가. 그렇다면 거기서 멈춰라. 가장 단순하고 가장 시시한 설명이, 대개 가장 진실에 가깝다.