[로컬 컨센서스] 1부
〈말아톤〉(2005)은 자폐를 가진 마라토너의 실화다. 초원이 달리는 이유, 앵커 키가 외부 현실과 충돌하는 순간, 세상의 프로토콜을 외운 채 정확한 타이밍에 배포되는 스크립트. 이 영화를 분산원장 패러다임으로 읽으면 다른 것이 보인다. 결함이 아니라 다른 실행 모델. 에러 메시지가 아니라 인터페이스 불일치. 그리고 완주의 의미. 로컬 컨센서스 시리즈 1부.
AI 정보
실화다. 2005년 개봉한 〈말아톤〉은 자폐를 가진 마라토너의 이야기를 바탕으로 한다.
스포일러가 있다.
같은 경로. 같은 리듬. 페이스가 흐트러지지 않는다. 외부에서 무슨 일이 일어나도 루프는 계속된다. 이것을 보고 어떤 사람은 단순하다고 말한다. 어떤 사람은 경이롭다고 말한다.
둘 다 초원을 보고 있지 않다.
마라톤은 결정론적인 실행 환경이다. 변수가 없다. 거리가 정해져 있고 경로가 정해져 있고 완주가 조건이다. 외부 상태를 참조할 필요가 없다. 날씨가 바뀌어도, 군중이 소리를 질러도, 누군가 옆에서 넘어져도 — 루프는 자신의 조건만으로 실행된다. 초원에게 마라톤이 가능한 이유는, 마라톤이 초원의 실행 방식과 일치하는 몇 안 되는 환경 중 하나이기 때문이다.
왜 얼룩말인지는 설명되지 않는다. 설명을 요구하면 초원은 당황한다. 이유가 없어서가 아니다. 이유가 내부 환경에 포착되어 있어서, 외부 언어로 꺼낼 인터페이스가 없기 때문이다. 어쩌면 짧은 답을 기대하는 상대의 입장이 쉽게 읽혀서라거나 장황하게 설명을 하자니 말이 중간에 잘리거나 자신이 전달하고자 하는 답이 제대로 전달될 가능성이 매우 낮다는 것을 경험했을 수도 있기 때문인지도 모른다.
렉시컬 환경[1] 안에 포착된 참조값은 그것이 포착될 당시의 맥락과 함께 존재한다. 맥락을 제거하고 값만 꺼낼 수 없다. "왜 얼룩말이야?"라는 질문을 한 사람에게는 맥락을 받을 인내심과 인터페이스가 없을 가능성이 높다. 초원의 대답은 값과 맥락이 분리되지 않는 형태로만 존재한다. 그래서 질문자에게 쉽게 도달하지 못한다.
그것이 단절이 아니라는 것을, 이 영화는 보여주는 데 상당한 시간을 쓴다.
[1] 렉시컬 환경
프로그래밍에서 렉시컬 환경이란 함수가 생성될 당시 주변에 존재했던 변수들의 집합이다. 그 환경은 함수 안에 포착된 채로 유지된다. 초원에게 얼룩말은 그런 방식으로 포착된 참조값이다.
초원이 얼룩말 무늬 치마를 입은 여자의 치마를 만진다.
지하철역은 시끄럽다. 사람이 많다. 신호가 많다. 초원의 실행 환경이 감당하기 어려운 조건들이 겹쳐있는 공간이다. 그 안에서 초원의 앵커 키와 일치하는 것이 나타났다. 얼룩말. 초원의 렉시컬 환경 안에 포착된 참조값이 무늬의 형태로 현실에 출현한 것이다. 초원의 실행 환경은 그것을 같은 키로 읽었다. 외부 스코프는 그 참조 방식을 공유하지 않는다.
소란이 일어난다.
초원이 말한다.
"우리 아이에게는 장애가 있어요."
초원이 학습한 스크립트다. 이런 상황에서 이 말이 작동한다는 것을, 살아오면서 포착했다. 의미를 내면화하지 않은 채로. 그런데 타이밍은 정확하다. 실행 조건이 충족됐고, 스크립트가 배포됐다.
멈추게 되는 것은 여기다.
그 스크립트 안의 언어는 자신을 가리키고 있다. 초원이 그것을 알면서 말하는지, 모르면서 말하는지 — 이 영화는 답하지 않는다. 카메라도 답하지 않는다. 초원의 얼굴이 그 질문을 통과하는 동안, 장면은 그냥 거기 있는다.
그 무게를 프레임 바깥의 사람들이 먼저 감당하지 못했다. 보조 출연자들이 첫 테이크에서 울었다. 재촬영해야 했다. 배우가 아닌 사람들이 배우가 아닌 방식으로 반응한 것이다. 초원이 세상의 언어로 자신을 번역하는 그 장면을, 세상 쪽에 있던 노드들이 처리하지 못했다.
연기 프로토콜이 작동을 멈춘 게 아니다. 신호가 프로토콜보다 먼저 도달한 것이다.
경순과 선생님은 같은 방향을 향하지만 다른 방식으로 초원에 닿는다.
경순은 브리지 노드다. 초원의 렉시컬 환경을 읽고, 세상과 초원 사이의 번역을 맡는다. 그녀가 지친 것은 초원 때문이 아니다. 양쪽의 프로토콜을 동시에 처리하는 일이 소진적이기 때문이다. 브리지 노드는 양방향 변환을 맡는다. 그 비용이 이 영화에서 가장 조용하게, 가장 무겁게 쌓인다.
선생님은 다른 전략을 쓴다. 번역하지 않는다. 초원의 루프 안으로 들어간다. 마라톤이라는 결정론적 환경 위에서 둘은 동일한 프로토콜로 실행된다. 언어가 아니라 리듬으로. 속도가 아니라 반복으로. 선생님이 초원을 이해한 것이 아니다. 이해가 필요하지 않은 실행 환경을 찾은 것이다.
두 인물이 다른 방식으로 같은 일을 한다. 어느 쪽이 더 옳은 방식인지의 문제가 아니다. 초원을 향한 두 접속 방식이 존재한다는 것 자체가 이 영화의 구조다.
세상이 초원을 읽지 못하는 것을 오독이라고 부르기 어렵다.
세상도 자신의 컨센서스 알고리즘으로 신호를 처리했을 뿐이다. 내부 변수를 외부에서 직접 참조하려 할 때 실패가 발생하는 것은 — 양쪽 중 하나에 결함이 있기 때문이 아니다. 접속 방식이 다른 것이다. 에러 메시지는 어느 쪽의 결함도 아니다. 인터페이스 명세가 일치하지 않았다는 기록이다.
초원의 실행 방식은 프로그래밍에서 Closure라 불리는 것과 닮아 있다.
함수가 생성될 당시의 환경을 포착하고, 그 환경 안에서 실행된다. 외부 스코프가 변해도, 내부가 포착한 환경은 유지된다. 외부에서 내부 변수를 직접 참조할 수 없다는 것은 결함이 아니다. 그것이 이 실행 모델의 설계다. 캡슐화가 정교할수록 내부의 일관성은 오히려 높다.
이 이야기는 다음 글에서 더 길게 다룬다.
결승선을 통과하는 순간, 무언가가 완성됐다는 감각이 있다. 그것은 외부의 인정이 아니다. 자신의 루프가 한 바퀴 완전히 실행된 것이다. 처음부터 끝까지, 자신의 실행 환경으로, 중단 없이.
그것이 완주다. 그리고 그것이 그에게 의미가 있는 이유다.
감독 | 정윤철
각본 | 정윤철·송예진·윤진호
출연 | 조승우 (윤초원), 김미숙 (경숙), 이기영 (코치 손정욱)
개봉 | 2005년 1월 27일
상영시간 | 117분
원작 | 박미경 수기 『달려라! 형진아』
이 글은 로컬 컨센서스 시리즈의 첫 편입니다. 다음 편 — Closure: 닫힌 스코프에 대하여 — 로 이어집니다.
본 게시글은 최초 발행 이후 언제든 수정될 수 있습니다.
전문이 AI 응답 그대로라 수 차례 다듬어질 수 있습니다.
AI를 사용해 얻어진 문단은 해당 결과가 나오는 데에 영향을 미친 저의 요청이 있었습니다. 필요한 경우 raw-chats 매거진에서처럼 요청도 함께 기재될 수 있습니다. 해당 응답 문단은 공개 이후 여러 번 다듬어질 수 있습니다.
AI 정보 중 하이라이팅 된 문단은 필자의 정리입니다.
https://pixabay.com/photos/runner-trail-running-mountain-10218681/