오전 여섯 시까지 남은 시간은 일곱 시간이었다. 나는 그 사실을 확인하고 편의점에서 삼각김밥을 샀다. 문제를 해결하지 못해 밤을 새우는 엔지니어는 많다. 하지만 자기 이름을 빼앗기지 않기 위해 삼각김밥을 씹는 엔지니어는 드물 것이다.
도원솔루션의 0층에는 다시 두 개의 임시 통로가 나타났다. 하나는 강변 019 방향, 다른 하나는 세림병원 방향이었다. 두 통로 모두 관측면이 만들어 낸 중첩이어서 실제 안전한 길이라고 확인되지 않았다. 서윤은 출입 금지선 바깥에서 독립적인 인원 확인을 진행했다. 지금 이곳에 있는 사람은 모두 자기 목적과 이동 의사를 직접 말할 수 있었다. 누구도 자동 승인권자가 될 이유는 없었다.
“첫 번째 수신 확인자는 누구로 되어 있죠?” 문서윤이 물었다.
“공공 회선상으로는 제가 맞습니다.” 김하린이 대답했다. “하지만 그건 장치가 작동하는지 확인한 사람이란 뜻이지, 공간을 관리하겠다고 계약한 게 아닙니다.”
서버 쪽에는 `첫 확인자 = 최초 시설 승인권자`라는 변환식이 걸려 있었다. 오승필의 사업용 보증서가 연결되는 곳이었다. 우리는 원본 안전 기록을 삭제하지 않고, 회신 확인과 시설 운영 승인을 구분하는 독립 접수 기록을 남겼다. 이 단계는 단순한 전산 조치였지만, 실제로 누가 책임을 떠안게 될지는 그 한 줄에 달려 있었다.
오승필은 늦은 밤에도 새 서류를 보내 왔다. `공공 사고 복구 선지급 제안 3차`. 그는 우리가 제안을 거절하면 아침 이후 시설 봉쇄에 따른 피해가 커질 거라고 주장했다. 거절하더라도 책임은 우리에게 남는다는 경고였다. 상대의 타이밍이 절묘했다. 지금 당장 현장에서 문제가 터지면, 사람들은 그가 왜 비용을 제시했는지 따지기보다 누군가 돈을 내 주길 바랄 것이기 때문이다.
오재현은 법적 권한과 안전 조치를 분리해야 한다고 말했다. 실제 인명 위험에는 예비 복구 예산을 사용할 수 있었고, 상업 운영권을 넘기는 결정을 야간 현장에서 서둘러 내릴 필요는 없었다. 그는 오승필의 계약서에 붙은 자동 승계 조항을 원본과 함께 보존하고, 감사 범위를 사람 이름의 무단 기입까지 넓혔다.
새벽 두 시가 조금 넘었을 때 강민재에게 전화가 왔다. “형, 세림병원에서 복도가 또 움직입니다.”
“사람은?”
“환자 이동은 끝났어요. 그런데 겹친 천장이 뒤로 올라가는 대신, 가운데에 새로운 문이 생기고 있어요.”
그 문은 사람 통행을 위해 열린 게 아니었다. 병원 측 독립 카메라에는 허공에서 낡은 회의실 문틀이 자라나는 모습이 찍혔다. 동시에 도원 코일은 열이 오르기 시작했다. 사람을 기다리지 않는 빈자리를 억지로 유효한 출입구로 만들려는 반복이었다.
배만식 소장은 전원을 통째로 끊지 말라고 했다. 대신 우리는 안전 경보 회선과 관측면 렌더링을 구분하고, 사람의 실제 이동이 확인된 구역에 한해서만 공간 보정 요청을 중단했다. 전체 통로를 원상 복구한다고 선언하지 않았다. 그 순간 누군가 반대쪽에 남아 있을 가능성을 지워 버리고 싶지 않았기 때문이다.
세림병원 현장 책임자는 실제 출입 가능한 복도로 환자들을 이동시키고, 임시 문틀 앞에 보호벽을 설치했다. 구급차가 도착하는 동안 병원 전기팀은 별도 비상 조명 공급을 유지했다. 우리는 이 장면이 도원 기업 서버로 자동 전송되지 않도록 했다. 사람이 움직인 경로가 그 즉시 회사 인사 이력으로 바뀌지 않게 하기 위해서였다.
오전 네 시, 하진에게서 연락이 왔다. 그는 내 얼굴을 한 채 편의점 앞에 서 있었다. “저도 가겠습니다.”
“안 와도 돼.”
“그건 알죠. 그래서 제 의사로 가겠다는 겁니다. 제가 관련 기록에 이용당하고 있는데 확인할 권리는 있지 않습니까?”
나는 잠깐 말문이 막혔다. 하진은 결국 내가 했을 법한 말을 나보다 더 정확하게 하고 있었다. 우리는 현장 접근 가능한 안전 구역만 안내했다. 그는 구조 대원이나 원본 복구 책임자로 등록되지 않았다. 단지 관련 사고의 당사자로서 자신의 가짜 서명 기록을 확인했다.
오전 다섯 시 오십 분. 도원 0층의 화면이 바뀌었다.
`승인권자 후보 1: 김하린 / 최초 수신 확인자`.
`승인권자 후보 2: 차도윤 / 현장 정정 요청자`.
`승인권자 후보 3: 하진 / 경로 유사 인격`.
그 아래에는 작은 글자가 있었다.
`미선정 시 주변 보호 대상자로 자동 이관.`
나는 이를 보고 웃음도 나오지 않았다. 이름 없는 아이나 병원 환자 같은 사람을 다시 후보로 넣겠다는 뜻이었다. 이건 우연히 남은 구형 오류만으로 설명하기 어려웠다. 누군가 위험을 이해하고도 가장 약한 사람 쪽으로 책임이 흘러가도록 순서를 만들어 놓았다.
“인근 보호 대상자 명단은 건드리지 마세요.” 서윤이 말했다. “그 명단은 구조하려고 만든 거지 책임을 넘기려고 만든 게 아닙니다.”
오재현은 외부 감사 접수 시스템에 자동 이관 금지 신청을 제출했다. 김하린은 회신 장비의 실제 수신 확인과 별개로 해당 승인권자 지정에 명시적으로 동의하지 않는다고 확인했다. 하진도 자신의 원본 증빙을 다시 제출했다. 나는 더 이상 도원의 고용인이 아니며 임의 지정에 동의하지 않는다는 사실을 확인했다.
오전 여섯 시 정각. 서버가 세 번 짧은 경고음을 냈다. 나는 어떤 문이 열릴지 기다렸다.
`승인권자 지정 실패`.
잠깐 안도했다. 그러나 그 아래에 `계약 진행을 위해 공백 슬롯 복원`이 나타났다. 바로 그때 강변의 작은 네모가 다시 문틀처럼 솟아올랐다. 이번에는 크기가 어른 한 사람이 지나갈 수 있을 정도로 커지고 있었다.
“다들 물러나세요!” 최규식이 외쳤다.
실물 길을 통제한 뒤, 우리는 시스템의 마지막 비상 선택을 확인했다. 선택지는 둘이었다. `빈자리를 운영자로 등록`하거나 `전체 관측면 종료`. 첫 번째는 무단 승인이었고 두 번째는 안쪽의 미발신 신고까지 지워 버릴 수 있었다.
나는 둘 다 누르지 않았다. 대신 김하린이 오래된 공공 설계의 세 번째 절차를 찾아냈다. `신고 회신을 우선 유지하고, 관리 승인 없는 관측 재생만 격리`. 원본 공개면에서 확인된 기능이었다. 다만 실제 현장에 적용하기 전 안전 대원이 양쪽 경로의 통행 가능 여부를 확인했다.
세림병원 쪽에는 사람 없음. 강변 쪽도 통제선 안에는 구조 대상 없음. 도원 B-0에는 하림이 이미 밖으로 나온 상태였지만 별도 무전 확인을 받았다. 미확인 안쪽 신호는 그대로 유지했다.
“준비됐습니다.” 서윤이 말했다.
우리는 관측면 재생만 임시 격리했다. 문틀이 당장 사라지지는 않았다. 대신 더 커지는 동작이 멈췄다. 코일의 과열 수치는 천천히 내려갔다. 1758 공공 경보는 살아 있었고, IN-000이 있다는 기록도 지워지지 않았다.
오승필에게는 실행 정지 통지가 갔다. 그는 정식 이의를 제기하겠다고 답했다. 그럴 권리는 있었다. 하지만 그 이의가 구조 중인 사람의 이름을 자동으로 가져갈 권리는 아니었다.
현장 사람들이 차례로 숨을 골랐다. 서윤은 수첩을 덮기 전에 마지막 문장을 적었다. `강제 관리자 지정 중단. 신고 보존 유지. 실제 공간 중첩은 미해결.`
“마지막 한 줄이 제일 마음에 안 드네요.” 내가 말했다.
“해결되지 않았으니까요.”
나는 고개를 끄덕였다. 그건 우리가 지금 할 수 있는 가장 올바른 기록이었다. 다만 긴 밤의 끝에 잠깐 나타난 이상한 현상 하나가 있었다. 커지던 네모 문틀이 멈춘 뒤, 도원 반대편 복도에서 더 오래된 문이 하나 열렸다. 문 안에는 한 번도 보지 못한 색의 벽지가 있었다.
벽에 붙은 종이에는 이렇게 적혀 있었다.
`최초 발신 위치: 019-B 외부 아님.`
`관측이 시작되기 전, 비어 있는 쪽에서 먼저 소리가 났습니다.`
나는 그것을 읽고 한동안 움직이지 못했다. 우리가 지킨 것은 미발신 신고의 내용만이 아니었다. **신고가 시작된 장소에 대한 가장 오래된 거짓말**을 이제야 발견한 것일지도 몰랐다.
제159화 댓글 0
댓글·공감·신고는 로그인 후 이용할 수 있습니다. 이전 익명 댓글은 그대로 표시됩니다.
댓글을 불러오는 중입니다.