보존 서버에서 보낸 정본 선택 요청은 오전 여섯 시에 자동 처리될 예정이었다. 누군가 누르지 않아도 가장 오래된 강변 경계가 실제 기준으로 반영된다는 내용이었다. 나는 알람을 다섯 개 맞춰 놓고도 새벽 네 시에 깼다. 퇴사한 지 얼마 되지도 않았는데 내 생활에는 더 이상 출근 알람이 필요하지 않았다. 대신 도시가 어제로 돌아가는 것을 막는 알람이 생겼다. 통장을 확인할 용기는 없었다. 괴물과 맞설 때보다 은행 잔액을 열어 볼 때 더 떨리는 사람이 나뿐일까.
문서윤과 오재현은 협의회의 보존 서버 변경 이력을 조사했다. 요청 파일은 한 사람이 이메일로 보낸 게 아니었다. `정본 자동 확정`이라는 예약 업무가 시설 관리 시스템에서 생성되고, 협의회 회계 시스템이 비용 항목을 붙인 뒤, 도원 인사 서버가 최종 승인자를 채우는 구조였다. 세 시스템은 각각 자기 일을 제대로 한다고 믿었다. 하지만 그 결과는 강변 난간을 과거의 것으로 바꾸는 명령이었다. 민재는 그런 구조를 보며 말했다. “형, 이거 진짜 우리 회사 시스템 같아요.” “진짜 우리 회사 시스템이니까 문제지.”
우리가 첫 번째로 한 일은 승인 버튼을 누르는 것이 아니었다. 승인 여부와 상관없이 실제 현장의 안전 상태가 유지되도록 보존 서버의 `실물 기준 전송` 기능을 공인 관리자 입회 아래 중지했다. 데이터 삭제가 아니었다. 과거 사진과 현재 사진, 누가 어떤 이유로 선택을 요청했는지 그대로 보존했다. 그와 별도로 구청은 임시 난간에 실제 안전 점검표를 부착했다. 화면 속 난간이 어떻든 현장의 난간을 시민이 믿을 수 있어야 했다. 작업을 마치고 나니 다섯 시 이십 분이었다.
그러나 복도의 중첩은 반응했다. 도원 0층에서 오래된 강변 자전거 보관대가 나타났고, 금융센터 폐쇄 통로의 벽에는 지워진 안내소 창구의 번호가 비쳤다. 보존 서버의 전송을 막은 뒤에도 움직임이 계속된 것이다. 서윤은 “이미 장치에 도착해 대기 중인 값이 따로 있습니다”라고 설명했다. 마치 예약한 물건 배송을 취소했지만 택배가 이미 문 앞에 도착한 셈이었다. 나는 그 비유에 고개를 끄덕였다. 다만 이번 택배는 사람이 다니는 복도였다.
새벽의 도원은 평소보다 조용했다. 강민재는 7년 동안 내가 쓰던 자리에서 잠깐 눈을 붙였다. 컴퓨터 화면에는 `복구 예정`이라는 노란 글씨가 떠 있었다. 그는 깨어나자마자 자신이 맡지 않은 업무가 출근부에 붙어 있는 걸 발견했다. `강변 난간 정본 승인 / 책임자 강민재`. 민재는 종이컵을 내려놓았다. “형, 저 아직 야근 끝나지도 않았는데 도시 전체 승인자가 됐어요.” 서윤은 그 문서를 인사 서버에서 차단하고 실제 권한이 없는 명령임을 기록했다. 도원 직원 한 명의 밤샘 기록이 강변 시설 전체의 책임자로 변하는 과정은 너무 익숙해서 오히려 소름 끼쳤다. 우리는 보존 서버를 통해 누가 어떤 권한을 받았는지와 실제 업무 협조를 구분했다. 민재는 다시 자기 자리로 돌아가면서 “평범한 장애 처리만 하고 싶다”고 말했다. 나는 퇴사 전에 매일 그 말을 했다는 사실을 떠올렸다.
오전에는 하림이 자기 의사로 회의에 참여했다. 그는 강변에 가지 않고 화면에 나타난 자전거 보관대를 바라보았다. “저 위치에는 예전에 도시락 받는 창구가 있었어요.” 그는 잠시 머뭇거리다가 말을 고쳤다. “아니요. 제가 본 영상에서 그랬어요. 직접 봤는지는 모르겠어요.” 우리가 구분해 기록하자 그의 표정이 조금 편해졌다. 두 도시락 가운데 하나가 안으로 건너갔고 다른 하나는 문밖에 남았다는 17:56의 수기와 맞아떨어졌지만, 그가 실제 시험자라는 증거는 되지 않았다.
아침 여덟 시가 가까워지자 건물 청소팀이 0층을 지나가다 옛 안내판 하나를 발견했다. 실제로 매달려 있는 표지판에는 ‘바깥으로 나가는 사람의 이름을 묻지 마십시오’라는 문구가 있었다. 청소팀은 그곳이 통제 구역임을 확인하고 손대지 않았다. 우리는 사진을 남겼지만, 안내판이 어느 날의 물건인지 확정하지 않았다. 오히려 사람이 걸어 나갈 수 있는 방향을 표시하면서 이름을 요구하지 않는다는 원칙이 더 중요했다. 문서윤은 “누구를 책임자로 적을지보다 무엇을 확인해야 하는지부터 적자”고 말했다.
서지완이 이 장면을 보고 새로운 질문을 했다. “그럼 왜 제 출근부는 내일을 보여 줬던 걸까요? 과거 장소만 재생한다면 미래 날짜는 이상하잖아요.” 아무도 바로 답하지 못했다. 나는 그가 실제로 미래에서 왔다고 믿지 않았지만, 그의 질문은 옳았다. 민재가 남은 데이터 가운데 `예상 경로` 항목을 찾았다. 공간 보존 장치는 과거 기준 사진뿐 아니라 비상구가 다음에 어디로 이어져야 하는지도 계산했다. 후대 인사 시스템은 그 예측을 `내일 출근할 사람`으로 번역했다. 사람의 미래를 본 것이 아니라 경로의 예상 시각이 사람 이름에 덮인 것일 수 있었다.
예약 실행을 중지한 뒤에도 화면의 버튼은 남아 있었다. `원래 상태로 되돌리기.` 거기에 마우스를 올리자 작은 미리 보기 창이 나타났다. 예전 강변 사진, 그 안에 없던 난간, 그 사진 안에 서 있는 사람 모양의 검은 점이 순서대로 보였다. 나는 민재에게 해당 창을 외부 네트워크와 분리된 기록 장치에 보존해 달라고 했다. 마지막 점은 실제 사람의 영상이 아니라 고정틀의 센서 마커일 수도 있었다. 그런데 버튼 설명에는 `원래 상태=사람 없는 위치`라고 적혀 있었다. 누가 어느 날짜를 선택했는지가 아니라, 사람이 없다는 가정을 원래 상태로 지정한 것이 핵심이었다. 서윤은 “이런 기능은 처음 설계자가 원했을 리 없어요”라고 말했다. 나는 대답하지 못했다. 처음 설계자의 직접 진술을 아직 듣지 못했기 때문이다.
여섯 시가 됐다. 정본 자동 확정 시각이었다. 협의회 서버에는 `승인 보류`가 남았고 강변의 임시 난간은 사라지지 않았다. 도원 0층의 자전거 보관대 역시 실제 통행 경로 밖에 머물렀다. 완전한 복구는 아니었다. 그러나 우리가 실제 사람의 안전과 전산 장부의 승인 시간을 분리한 결과였다. 서윤은 커피를 한 모금 마신 뒤 미간을 찌푸렸다. “이제 남은 문제는 누가 이 기능을 켰는지예요.” 그녀의 휴대전화에 새로운 알림이 떴다. `보존정본 이의 신청 접수: 최초 보존 책임자 확인 요청.`
안전선을 옮기러 나온 시설 직원들은 오래된 강변 안내판을 임시로 가렸다. 어떤 시민은 왜 길을 막느냐고 따졌고, 한 청년은 회사의 경고 문구가 자기 휴대전화에도 나타났다며 화면을 보여 줬다. `비상구 이용 시 자동 입사 동의.` 나는 그 화면을 보는 순간 내 첫 사직서가 떠올랐다. 사내 시스템이 외부 공공 통로를 근로계약의 일부로 오인한 결과였다. 김하린은 해당 메시지의 발신 경로를 따로 수집하고 시민에게 실제 안전한 우회로를 설명했다. 청년은 무슨 회사가 이렇게 직원 모집에 열심이냐며 웃었다. 그가 웃었기에 나도 웃었다. 하지만 실수로 승인 버튼을 누르면 어떤 일이 벌어질지 알 수 없었다. 우리는 화면의 확인 버튼 자체가 작동하지 않도록 공공 신고 쪽 연결을 끊고, 필수 경고는 별도의 회선에 남겼다. 사람들은 통로를 이용하기 위해 회사의 직원이 될 필요가 없었다.
그 이의 신청서에는 과거 도장도, 회사 대표의 서명도 없었다. 보안 시스템이 만든 단순한 접수번호 하나만 있었다. `019-UNMAPPED`. 첨부된 음성 파일은 겨우 다섯 초였다. “길은 저장해도 사람은 저장하지 마세요.” 낯익은 여성 목소리 같았지만, 정하경이나 아이의 어머니라고 단정할 수 없었다. 더 이상한 것은 파일의 기록 시간이 17:56보다 이른 `17:55:59`였다는 점이었다. 그동안 우리가 찾던 최초 사고보다 앞서 누군가 이미 경고를 남겼을 가능성이 생겼다.
제136화 댓글 0
댓글·공감·신고는 로그인 후 이용할 수 있습니다. 이전 익명 댓글은 그대로 표시됩니다.
댓글을 불러오는 중입니다.