두 장소가 같은 자리를 차지하려는 위험은 화면보다 먼저 사람의 몸으로 전해졌다. 강변 산책로의 순찰 직원이 난간에 손을 댔다가 손끝의 차가움이 갑자기 사라졌다고 신고했다. 동시에 도원솔루션 지하 배수 통로에서는 강바람이 불었다. 강변에는 도원 지하의 바닥 타일이, 도원에는 강변의 난간 그림자가 나타나고 있었다. 어느 쪽도 사람이 들어가 확인하면 안 되는 상황이었다.
문서윤은 두 현장에 같은 지시를 내리지 않았다. 강변에서는 시민을 강 쪽으로 유도하지 않도록 반대 방향의 기존 산책길을 열었다. 도원에서는 지하 배수 통로를 막고 사람이 이미 있는지부터 확인했다. 두 장소의 상황이 달랐기 때문이다. 표준 절차도 현장에 맞게 적용하지 않으면 무책임한 명령이 될 수 있었다.
태형공간자산은 `긴급 재현 차단용 중앙 관리권`을 신청했다. 오승필은 평소보다 빠른 속도로 움직였다. 두 장소를 하나의 계정에서 관리하면 동시에 움직이는 공간을 중지시킬 수 있다는 주장이었다. 그는 준비해 둔 도면에 019-2 화단과 도원 지하를 연결한 직선을 그어 놓았다. 실제로는 안전한 통로가 아닌데, 문서에는 `가상 대체 피난로`라고 적혀 있었다.
“저 직선 따라가면 강물입니다.” 배만식이 말했다. “가상으로 걷는 사람은 물에 빠져도 가상으로 구조되나요?”
웃을 때가 아니었지만 나는 잠깐 웃었다. 소장이 비꼬는 것은 사람을 안전한 숫자로 바꾸는 모든 설계를 향한 것이었다.
우리는 두 곳의 수동 관측을 연결했다. 김하린은 공공 신고 회선이 유지되는지 확인했고, 이선경은 강변 현장의 실제 보도를 확인했다. 나는 도원에서 기존 분리판 후보의 공개 도면을 펼쳤다. 원래 장치에는 S-LEFT와 S-RIGHT 두 장의 판뿐 아니라 그 사이에 좁은 완충 틈이 있었다. 그 틈은 관측 사진이 서로 맞지 않는 동안 두 방향을 합치지 말라는 물리적 표시였다.
“그 완충 틈이 지금은 어디 있습니까?” 내가 물었다.
배만식이 오래된 사진을 확대했다. “이전하면서 절연재로 메웠네요. 보관 코일을 쉽게 고정하려고.”
도원에서 원본 코일이 과열될 때 두 경로가 서로 붙던 이유가 조금 보였다. 틈을 없앤 뒤 신호 처리도 두 장소를 하나로 고치도록 변경됐다는 것이다. 그렇다고 절연재 하나를 떼어 내면 공간 중첩이 끝난다고 말할 수는 없었다. 애초에 두 공간이 왜 실제로 이어지는지 검증된 설명이 없었다.
장혜원은 공개 통화에 참여해 자신이 기억하는 시설 서약의 문구를 읽었다. `두 관측 결과가 같지 않으면 보관하되 합치지 않는다.` 실험 당시부터 서로 다른 경계가 동시에 존재할 수 있다는 경고를 남긴 셈이었다. 나는 즉시 중앙 관리권을 쥐는 것보다 두 장소를 별도 안전 구역으로 유지하는 방법을 선택했다.
그런데 도원 지하에 새로운 문이 나타났다. 강변의 옛 철제 안내문과 똑같은 무늬였다. 문 너머에서는 물이 흐르는 소리가 났다. 시설팀이 문 쪽으로 다가가려는 순간 손잡이가 한 번 움직였다. 스피커에서는 오래된 안내 방송이 재생됐다. `현재 위치 확인 완료.`
“누가 확인했는데?” 민재가 낮게 물었다.
그 말이 정답이었다. 확인자가 없다면 완료가 아니다. 우리는 실제 건물의 안전문을 이용해 남은 작업자를 밖으로 내보냈다. 새로 생긴 철제 문은 접근하지 않았다.
오승필의 기술 담당자는 내 선택을 비웃었다. “공간을 합쳐야 없앨 수 있습니다. 따로 두면 영원히 유지될 수도 있어요.”
“그럴 수도 있겠죠.” 내가 말했다. “그래도 지금 안에 있는 사람을 모르는 문으로 밀어 넣을 수는 없습니다.”
그는 경멸하듯 웃었다. 나는 겁을 먹고 있음을 인정했다. 모르는 문을 여는 것은 영웅적인 행동처럼 보일 수 있지만, 그 문 앞에서 구조되는 사람에게는 도박일 뿐이었다.
밤이 되자 하진에게서 연락이 왔다. 그는 내가 다른 사람의 이름을 대신 쓰지 않으려고 애쓰는 이유를 이제 조금 알겠다고 했다. 그런데 나에게도 쉬라고 했다. “도윤 씨가 쉬지 않으면, 결국 누군가 도윤 씨 대신 일하게 될 테니까요.” 나는 반박하려다 멈췄다. 그 말은 내가 일곱 해 동안 회사에서 가장 듣고 싶었던 말과 닮았다.
교대 후에도 위험은 끝나지 않았다. 강변 산책로의 녹색 난간이 일부분 사라졌고, 도원 지하의 낡은 물계량기가 강변 안내판 모양으로 바뀌었다. 두 현장의 물건이 서로 오가듯 출현했지만, 그때마다 현장의 시계는 같은 시간이 아니었다. 실제 사건을 옛 사진의 시각으로 되돌릴 수 있다는 믿음은 더 위험해졌다.
우리는 경고등 앞에서 서둘러 임시 교대 시간을 정했다. 배만식은 도원 지하에서 두 시간 이상 연속 근무하는 인원을 없애고, 강변 담당자는 야간 순찰자의 시야가 떨어지는 구간에 조명을 추가했다. 나는 사고 보고서의 마지막 줄에 '응답이 없다는 이유만으로 당직을 연장하지 말 것'이라고 적었다. 원본 회신을 받지 못한 채 사람을 계속 붙들어 두는 것이 바로 0층의 오래된 병이었다.
하진도 한 차례 관측 보고서에 참여할 수 있느냐고 물었지만, 안전 담당자는 아직 그가 현장 위험 구역에 들어갈 수 없다고 설명했다. 하진은 아쉬워했으나 서류 작성과 안전 장치 외부 점검은 자발적으로 도울 수 있었다. 나는 그가 뭘 할지 대신 정하지 않았다. 그는 결국 오늘은 외부 대기소의 방문자 안내문을 읽고 이해하기 쉬운 문장으로 바꾸는 일을 택했다. “이렇게 어려운 문구 쓰면 처음 보는 사람은 어떻게 나오라는 거예요?” 그 말에 우리는 조금 웃었다. 위험 관리가 전문가만 읽는 보고서로 끝나면 안 됐다.
강변 쪽에서 휠체어를 탄 시민 한 명이 지나는 것을 보고 나는 마음이 불편해졌다. 우리가 만든 임시 우회로에는 한 구간 경사가 가팔랐다. 그 길을 이용하는 사람의 요구를 듣지 않고 안전하다고 보고했던 것이다. 현장 담당자는 당사자에게 선택 가능한 다른 경로를 설명하고, 경사를 줄일 수 있는 임시 판을 설치했다. 실제로 누구에게 안전한 길인가를 묻는 일에는 끝이 없었다. 그 질문이 귀찮아서 자동으로 사람의 길을 결정하기 시작하면, 다시 도원의 0층이 탄생할 것이었다.
그날 밤 오재현은 감사 자료를 들고 와 대역을 자동 병합하지 않는다는 방침을 다시 확인해 주었다. 위험 구역에서 실제 사람의 구조가 필요할 수 있어도, 비슷한 얼굴이 나타났다는 사실은 책임을 다른 사람에게 떠넘기는 근거가 될 수 없었다. 우리는 서로 다른 길에서 도착한 두 사람을 같은 주소로 바꾸는 행위를 멈추는 중이었다. 지금 필요한 것은 속도가 아니라 구분이었다.
자정이 가까워질 무렵 두 장소의 경고등이 동시에 켜졌다. `실물 경계 미일치 / 원본 관측자 확인 필요`. 서윤은 작업자들을 모두 안전 구획으로 이동시켰다. 민재는 원본 기록의 두 개 필드를 찾아냈다. 하나는 `OBSERVER=1`, 다른 하나는 `POSITION=UNKNOWN`. 후대 서식은 둘을 한 줄로 합쳐 `미확인 관측자 한 명`이라고 적고 있었다.
“한 사람의 기록이 아닐 수도 있겠네요.” 민재가 말했다.
“이제야 처음부터 문서를 다시 읽는구나.”
나는 화면에 뜬 `관측자 1명`을 보며, 그동안 우리가 쫓아다닌 사람이 처음부터 존재했는지 다시 묻기 시작했다. 그러나 이 질문이 B-0 안쪽에서 들렸던 진짜 목소리까지 지워서는 안 됐다. 문서상의 한 명과 실제로 구조가 필요한 사람은 서로 다른 문제였다.
그때 도원 지하의 새 문 아래에서 물 한 방울이 흘러나왔다. 무전기를 든 소장이 몸을 낮췄다. 물은 강물 냄새가 아니었다. 오래된 서버실 냉각수 냄새였다. 도원 안쪽에서 흘러나온 물일 수도 있었다.
바로 이어 경보가 바뀌었다.
`관측 좌표 생성 실패`.
`실제 사람의 현재 위치 신호: 별도 접수`.
우리는 처음으로 빈 좌표와 사람의 신호가 다른 창에 표시되는 것을 보았다. 그 신호는 도원도 강변도 아닌, 그 둘 사이의 검은 공란을 가리켰다.
제169화 댓글 0
댓글·공감·신고는 로그인 후 이용할 수 있습니다. 이전 익명 댓글은 그대로 표시됩니다.
댓글을 불러오는 중입니다.