역방향 작업 (working backwards)
풀어야 할 목표 상태를 이미 이루어진 것으로 가정하고, 거기서부터 한 단계씩 거꾸로 되짚어 내려와 이미 아는 것이나 출발점과 만나는 지점을 찾아내는 문제해결법. 앞에서 더듬어 나가는 대신 도착점에 먼저 서서 길을 역산한다는 것이 핵심이다.
너, 부엌에 항아리 두 개만 놓고 서 있다고 해보자. 하나는 가득 채우면 딱 9리터, 다른 하나는 딱 4리터. 눈금은 없다. 수도는 콸콸 나온다. 너에게 필요한 건 정확히 6리터다. 자, 어디서부터 손을 댈 거냐. 보통은 큰 항아리에 물을 받고, 작은 데로 옮겨 붓고, 비웠다 다시 채우고… 이리저리 부어 보며 6이 나오기를 기다린다. 운이 좋으면 맞고, 대개는 한참을 헤맨다. 그런데 이 막막함을 단숨에 걷어 내는 방법이 하나 있다. 출발점이 아니라 도착점에서 생각을 시작하는 거다. 오늘 이야기는, 이천 년도 더 된 이 거꾸로 걷는 재주에 관한 거다.
자, 6리터가 손에 들려 있는 마지막 장면부터 그려 보자. 9리터 항아리에 정확히 6리터가 담겨 있으려면, 바로 직전에 무슨 일이 있었어야 하나. 9에서 3을 덜어내면 6이다. 그러니까 직전 순간에는 9리터 항아리가 가득 차 있었고, 거기서 4리터 항아리 쪽으로 3리터만 옮겨 부어 비워 줬어야 한다. 그런데 4리터 항아리로 3리터만 정확히 받으려면, 그 항아리에는 이미 1리터가 들어 있어 빈자리가 3리터뿐이었어야 한다. 그럼 또 묻는다. 4리터짜리에 어떻게 딱 1리터를 만들지. 9리터를 가득 채워 4리터 항아리에 두 번 퍼내면 9 빼기 4 빼기 4, 9리터 항아리에 1리터가 남는다. 그걸 작은 항아리로 옮기면 거기 1리터가 선다. 봐라. 도착점에서 거꾸로 한 칸씩 디뎌 내려오니, 어느새 '물을 받는다'는 맨 처음 동작과 만났다. 이제 이 사슬을 뒤집어 앞에서부터 실행하면 끝이다. 앞으로 더듬을 땐 갈림길이 수백 개라 길을 잃지만, 도착점에 서면 직전 한 수가 거의 정해져 있어 길이 저절로 좁혀진다.
이 재주의 뿌리는 고대 그리스 기하학으로 거슬러 올라간다. 그들에게는 '분석(analysis)'이라 불린 방법이 있었다. 풀어야 할 도형 문제를 만나면, 일단 그게 이미 풀린 것으로 치고 시작한다. 그 다음 묻는다. 이게 성립하려면 그 앞에 무엇이 참이어야 하나, 또 그 앞엔 무엇이. 그렇게 한 단계씩 뒤로 물러나다 보면 결국 이미 증명된 정리나 자명한 출발점에 닿는다. 그러고 나서 그 길을 그대로 뒤집어 앞에서부터 다시 쌓아 올리는 걸 '종합(synthesis)'이라 불렀다. 이 둘이 한 쌍이었다. 흥미로운 건 '분석'이라는 말 자체가 본래 '뒤로 풀어 내려감'이라는 뜻을 품고 있었다는 점이다. 유클리드와 아폴로니오스 같은 이들이 이 방법으로 도형의 비밀을 풀었고, 그 솜씨를 한참 뒤인 대략 4세기에 알렉산드리아의 파포스라는 수학자가 글로 또렷이 정리해 남겼다. 그러니 이건 누가 발명한 게 아니라, 기하학자들이 오래 써 오던 손버릇에 그리스인들이 이름을 붙여 준 것에 가깝다.
그런데 여기 묘한 함정이 있다. 사람은 이 거꾸로 가는 걸 본능적으로 싫어한다. 이 점을 정면으로 짚은 사람이 20세기 헝가리 출신 수학자 죄르지 포여다. 그는 1945년 '어떻게 문제를 풀 것인가'라는 얇은 책 한 권을 내놓는데, 이 책이 문제 푸는 법 자체를 학문으로 끌어올린 고전이 된다. 포여는 옛 기하학자들의 그 '분석'을 끄집어내, 수학뿐 아니라 모든 문제에 통하는 일반 도구로 다시 벼리고 거기에 또렷한 이름을 붙였다. 거꾸로 일하기, 역방향 작업이다. 그가 날카롭게 관찰한 대목이 바로 이거다. 능력 있는 사람이라도 갈림길이 많은 상황에서 앞으로만 길을 더듬으며 시간을 허비하는데, 정작 뛰어난 이들은 거기서 몸을 돌려 도착점에서부터 거꾸로 일을 시작한다고. 그러면서 덧붙였다. 이 역순에는 사람을 본능적으로 거북하게 만드는 무언가가 있어서, 조심스레 가르치지 않으면 꽤 영리한 학생조차 이 방법을 끝내 이해하지 못한다고. 막막한 항아리 앞에서 너도 모르게 일단 물부터 받고 보는 그 충동, 도착점이 아니라 출발점부터 만지작거리는 그 본능 — 포여는 바로 그걸 의식적으로 거스르라고 가르친 것이다.
포여의 손에서 이 사고법은 수학 교실의 표준이 됐고, 거기서 멈추지 않고 기계로까지 옮겨 갔다. 인공지능이 어떤 목표에 닿는 행동의 순서를 짤 때, 한 갈래는 거꾸로 푼다. 증명하거나 이루고 싶은 '결론'을 먼저 세워 놓고, 그 결론이 성립하려면 바로 직전에 무엇이 참이어야 하는지를 따져 한 칸씩 뒤로 물러나며 출발 사실과 만날 때까지 내려온다. 이걸 후방 연쇄라 부른다. 자동으로 정리를 증명하는 프로그램이나 목표를 향해 행동 계획을 짜는 시스템이 이 방식으로 돌아간다. 앞에서부터 가능한 모든 수를 펼치면 경우의 수가 폭발하지만, 목표에서 거꾸로 내려오면 그 목표와 상관없는 가지들은 아예 쳐다보지 않아도 되니 훨씬 효율적이다. 다만 여기서 네가 눈여겨볼 대목이 있다. 기계가 거꾸로 걸으려면, 먼저 '도착점'이 무엇인지를 사람이 한 치 흐림 없이 형식으로 못 박아 줘야 한다. 어렴풋한 바람으로는 안 된다. 목표 상태를 기계가 알아볼 만큼 또렷하게 정의하는 일 — 그 윗단추를 먼저 끼우고 나서야 비로소 역산이 시작된다. 풀이를 거꾸로 돌리기에 앞서, 도착점을 먼저 명료하게 세우는 생각의 순서 자체가 바뀌어야 했던 것이다.
그리고 이 오래된 재주는 뜻밖에도 오늘날 사업 현장에서 가장 잘 팔리는 도구가 됐다. 아마존이 그렇다. 그들은 새 제품을 만들 때, 코드 한 줄 짜기 전에 그 제품이 다 완성돼 세상에 나온 날의 보도자료부터 먼저 쓴다. 아직 존재하지도 않는 물건을 두고, 고객에게 이게 왜 좋은지를 다 끝난 일처럼 적는다. 그 도착점의 그림이 또렷해진 다음에야, 거기서 거꾸로 되짚어 그걸 진짜로 만들려면 무엇이 필요한지를 채워 나간다. 제프 베이조스가 대략 2000년대 초부터 다듬어 정착시킨 이 방식의 이름이 바로 '워킹 백워즈', 역방향 작업이다. 부엌의 항아리에서 그리스의 도형으로, 다시 기계의 증명을 거쳐 신제품 기획서까지 — 도착점에 먼저 서서 길을 역산한다는 한 가지 생각이 이천 년을 건너온 셈이다.
그러니 너가 어디서부터 손대야 할지 막막한 문제를 만나거든, 출발점을 만지작거리며 헤매지 마라. 먼저 끝난 장면으로 건너가 서라. 다 이루어졌다면 그 직전엔 무엇이 참이어야 했나, 또 그 앞엔. 그렇게 도착점에서 한 칸씩 거꾸로 디뎌 이미 손에 쥔 것과 만나는 자리까지 내려오면, 그때 그 길을 뒤집기만 하면 된다. 그게 그리스의 기하학자들이 도형 앞에서, 베이조스가 빈 보도자료 앞에서 똑같이 부린, 거꾸로 걷는 생각의 전부다.