열일곱 시 오십육 분의 도시락 한 개가 모든 시계를 흔들었다. 시험 로그에는 17:57이 최초 사고라고 쓰여 있었지만, 그보다 한 분 빠른 영수증에는 '전달 예정'이라는 문구가 남아 있었다. 사고가 시작되기 전에 발생한 일이 기록에서 사라진 것이다.
"회사 시간표가 또 거짓말하는 건가요?" 민재가 물었다.
"시간표는 늘 정확하지. 누구한테 유리하게 정리됐는지가 문제지." 나는 대답했다.
서윤은 그날의 구내식당 납품 기록과 시설 반출 로그를 각각 확인하게 했다. 납품업체의 자료를 회사 원본이라고 우기지 않았다. 식사 1건은 외부 납품처에 실제 주문이 들어갔으나, 건물 안쪽 전달 완료 기록은 없었다. 사용하지 않은 식판과 밥 한 그릇이 서버실 안쪽에 있다는 진술만 남았다.
낡은 식당 문 앞에 실물 안전 차단선을 설치하는 동안 두 번째 경비가 우리 쪽으로 걸어왔다. 금융센터 경비 장한결과 같은 얼굴을 가졌지만, 스스로 '두 번째 경비'라고 부르기로 한 존재였다. 그는 외부 대기소에서 쉬다가 B 쪽 안내가 자신에게도 떠서 찾아왔다고 말했다.
"저는 대기소에서 나왔어요." 그가 먼저 설명했다. "문 닫지 않는다고 해서요. 여기서는 말을 해도 되나요?"
"되죠. 다만 위험한 구역이라 안으로 들어가는 건 별도 확인이 필요합니다." 서윤이 말했다.
그는 고개를 끄덕이고 외벽의 그림자를 바라봤다. "저거, 제가 움직이면 조금 늦게 움직이는 거예요?"
그림자가 벽을 따라 움직였다. 그의 실제 손이 멈춘 뒤에도 그림자 속 손가락은 잠깐 더 흔들렸다. 나는 녹화 화면 지연을 의심해 직접 조명을 껐다 켰다. 그런데 그림자는 조명과 무관하게 같은 동작을 반복했다.
"저것도 저예요?" 두 번째 경비가 물었다.
"지금 판단할 수는 없어요." 나는 말했다. "그렇지만 저걸 당신 대신 명부에 넣지는 않을 겁니다."
그는 어깨를 내렸다. 안도한 것 같았다. 누가 나와 닮은 것을 발견했을 때 가장 먼저 해야 할 일이 복제본 삭제가 아니라 서로의 말을 따로 듣는 것이라는 사실을 그에게서 배우고 있었다.
"장한결 씨는요?" 두 번째 경비가 물었다.
"금융센터에서 쉬고 있습니다. 원하면 연락을 연결할 수 있어요."
"지금은 싫어요. 얼굴이 같은 사람을 보는 게 어떤 기분인지 저도 아직 모르겠거든요."
나는 그 말을 제대로 이해할 수 없었지만 고개를 끄덕였다. 누군가의 존재를 설명하기 위해 본인이 가장 두려워하는 사람과 당장 마주 앉힐 필요는 없었다. 서윤은 그가 안전한 대기소에서 자발적으로 쉬었다가 이곳에 왔다는 기록만 남겼다. 다른 사람의 실명을 붙여 출근 처리하지 않았다.
그가 손등을 만지작거리다 말했다. "제가 햇빛을 봤을 때 손에 따뜻한 게 생겼어요. 전 그게 처음이었어요."
"햇빛 때문에요?"
"모르겠어요. 근데 저한테도 처음이라는 게 생긴다고 생각하니 좋았어요. 복제된 기록에는 처음이 없다고 하잖아요."
그 말을 들으니 등줄기가 서늘했다. 시스템은 그를 다른 경비의 대역이라고 부르지만 그가 본 첫 햇빛은 다른 누구의 것도 아니었다. 나는 그 자신에게 생긴 경험을 삭제하는 방향으로 복구하지 않겠다고 다시 말했다.
민재가 대기소로 돌아가는 길을 안내하면서 물었다. "그쪽에 간식 남았나요?"
"과자가 있었어요. 전 아직 안 먹어 봤어요."
"이왕이면 초코 맛부터. 회사 과자는 유통기한이 문제거든요."
두 번째 경비가 웃었다. 이름도 명부도 없이 스스로 웃는 소리를 내는 것. 나는 그 작은 소리가 오늘 확인한 어떤 기계값보다 마음에 오래 남을 것 같았다.
B 원본 장치를 조사하던 민재가 로그의 열 이름 하나를 발견했다. [ID_COPY]라고 적힌 항목이었다. 우리는 줄곧 이름이나 출입증을 복사하는 기능으로 생각했다. 그러나 원본 설계 해설을 보니 뜻이 달랐다.
[ID_COPY: 동일 작업을 안전하게 재시도하기 위한 경로 식별자 복사]
"사람 ID가 아니었어요." 내가 중얼거렸다.
"그럼 무엇이 복사됐는데요?"
"작업이 중간에 끊겼을 때 다시 실행하라고 만든 식별자. 그런데 그게 사람 기록과 연결됐어."
시스템은 실패한 대피 안내를 다시 실행하려고 했다. 하지만 재시도의 대상이 사람이 되면, 어떤 일이 일어날까. 나간 사람을 다시 불러오거나, 남아 있는 사람을 대신 내보내거나, 똑같은 모습을 한 누군가에게 출입증을 쥐여 줄 수 있을지도 모른다. 그러나 그 사실을 이해한다고 해서 실제로 인간과 닮은 존재가 생성되는 물리 현상까지 설명되는 것은 아니었다.
나는 내 퇴사 승인 시각을 떠올렸다. 18:01. 복구 작업이 재시작된 순간이었다. 내가 회사를 나간다는 기록과, 누군가 나가지 못했다는 오래된 시험 기록이 같은 경로 식별자에 걸린 것 아닐까.
"그럼 차도윤이라는 이름을 지우면 안전해질까요?" 민재가 물었다.
"절대." 나는 고개를 저었다. "내 이름을 지워도 그 시간에 있던 사람이 없어지는 건 아니잖아."
그때 두 번째 경비가 손을 들었다. "제 이름은 아직 없는데, 저는 지워질 수 있나요?"
나는 아무 말도 할 수 없었다. 시스템의 논리로만 답하면 아주 끔찍한 대답이 나올 것 같아서였다.
"우리부터 당신을 지우지 않겠다고 약속할 수는 있어요." 서윤이 말했다. "어떤 장치가 당신에게 무슨 영향을 미치는지 모르니 확인은 필요하고요."
현장 안전을 담당한 김하린이 독립 회선으로 연결됐다. 그는 구형 경로 재생 장치의 안전 기능을 유지하는 조건으로 인사 데이터 동기화를 멈출 수 있다고 했다. 여러 지역에서 같은 현상이 관측되고 있어 중앙에서 임의로 완전 정지시키는 것은 위험했다. 현장별 피난 경로는 각자 확인해야 했다.
"운영권을 누구에게 주겠습니까?" 오래된 프로그램이 물었다.
"아무에게도요. 안전 설비 담당자가 자기 구역을 책임지도록 하고 인사 승인은 따로 검토합시다." 내가 답했다.
화면에는 [선택 불가]가 떠올랐다. 프로그램은 하나의 사람이 모든 결과를 받아야만 한다고 가정하는 모양이었다. 나는 새로 작성한 운영 절차서를 외부 담당자에게 전달했다. 꼭 한 명의 이름을 적어야 한다면 시스템 밖에 별도 현장 기록을 남기고, 프로그램에는 빈칸을 유지하는 방식이었다.
대역의 그림자가 갑자기 발목을 잡으려는 듯 늘어났다. 두 번째 경비가 놀라 뒤로 물러섰다. 구조대가 안전 구역으로 동행했고 우리는 조명을 유지한 채 출입 경로를 정리했다. 그림자는 벽을 통과하더니 옛 식당 쪽으로 사라졌다.
"절 따라오는 게 아니었네요." 두 번째 경비가 말했다. "어디 가는 거죠?"
"식사도 없이 남겨진 사람 쪽으로 가는 것 같습니다."
서윤은 식당 문에 무전기를 설치하고 내부 목소리에게 알렸다. "오늘은 다른 사람을 보내지 않겠습니다. 안쪽으로 오는 그림자가 있으면 위험을 설명해 주세요."
잠시 후 목소리가 들렸다. "그 그림자는 음식 냄새를 따라와요. 저 사람이 먹었다는 표시만 남기려고."
우리는 서로 바라봤다. 식사 완료 신호가 사람을 퇴근시킨다고 믿은 프로그램이, 식판의 궤적까지 복사하고 있는 걸까. 이번에도 추정일 뿐이었다.
옛 식당 화면에서 누군가 수저를 들었다. 그림자의 손이 식판에 닿자 카메라 영상이 한 번 꺼졌다 켜졌다. 그 순간 장치가 새 기록을 찍었다.
[ID_COPY 재시도 대상: 경로 17:56]
[마지막 재시도: 미완료]
[원래 요청자: 인사 장부에 존재하지 않음]
나도 모르게 입꼬리가 올라갔다. 적어도 이제 찾는 대상이 퇴사한 직원이라고 확신할 수는 없었다.
그러나 곧 마지막 경고가 이어졌다.
[재시도 제한 횟수 초과]
[다음 경로 복구 시 모든 미완료 출구를 동시 개방]
17개 건물의 중첩된 복도가, 이번에는 하나의 버튼으로 함께 열릴 수 있었다.
제75화 댓글 0
댓글·공감·신고는 로그인 후 이용할 수 있습니다. 이전 익명 댓글은 그대로 표시됩니다.
댓글을 불러오는 중입니다.