두 임현규의 이름이 한 칸에 들어간 순간, 나는 무엇보다 먼저 회의실 문을 확인했다. 실제로 사람이 들어갔는지부터 봐야 했다. 검은 셔츠의 임현규와 양복 차림의 임현규는 둘 다 도원 건물 안에 있었지만 서로 다른 구역에서 대기 중이었다. 자동 출석 명단에는 둘이 같은 시간 같은 의자에 앉은 것으로 표시됐다. 이 회사는 복수 결재를 좋아하다 못해 사람을 복수로 만들었구나.
“둘 중 누가 진짜 대표입니까?” 민재가 물었다. “그런 질문을 시스템에 하면 둘 중 하나가 즉시 삭제됩니다.” 내가 말했다. “일단 각자에게 지금 뭘 하고 있는지 직접 확인하자.” 두 사람은 자신이 가진 기억이 조금씩 다르다는 사실을 인정했다. 검은 셔츠 쪽은 원본 보호 장치를 안전 기능으로 기억했고, 양복 쪽은 운영 효율화 시험의 일부로 기억했다. 둘 다 현장의 실제 위험을 부정하지는 않았다. 그러나 어느 쪽도 019 분리판의 최종 변경 승인 서류를 갖고 있지 않았다.
회의는 서윤이 기록했다. 두 사람을 서로 다른 자리와 화면에 놓고 발언을 분리했다. 나는 그들이 같은 이름을 쓴다는 사실보다 어떤 증거를 가졌는지가 중요하다고 했다. “제가 원본인지 묻지 않습니까?” 양복 임현규가 물었다. “원본이 누구인지는 조사해야죠. 그런데 지금 위험한 통로를 닫고 사람들을 내보내는 일부터 처리해야 합니다.” 검은 셔츠 임현규가 작게 웃었다. “당신은 여전히 엔지니어군요.” “이미 퇴사했으니까 원하는 대로 부르세요.”
양복 임현규는 한 장의 도면을 내밀었다. `019-B-3 수신함 연동 / 운영실 통합 표시`. 검은 셔츠 임현규의 서명이 있어야 할 칸에는 숫자만 적혀 있었다. `[승인 토큰 019-SAFE]`. 나는 그 숫자가 예전에 본 SAFE_EXIT_BACKFILL 자동 처리기와 연결된다는 사실을 알아챘다. 토큰은 사람이 아니라 장치에 발급된 접근 권한일 수 있었다. 토큰을 대표 이름으로 바꾼 시스템이 지금 두 사람을 한 자리에 밀어 넣고 있었다.
“그런데 누가 이런 변경을 요청했습니까?” 서윤이 물었다. 양복 임현규는 기억나지 않는다고 했다. 검은 셔츠 임현규도 자신의 서명이라고 확인할 수 없다고 했다. 나는 그들의 기억을 공격하지 않았다. 대신 문서의 생성 경로와 보관 책임을 조사했다. 로그에는 회의가 열리지 않은 시간에 두 사람의 결재가 동시에 입력됐다. 실제 같은 장소에 있었다는 증거는 없었다. 그 사실은 중요한 단서였지만, 어느 한 사람이 가짜라고 판정할 근거도 아니었다.
회의 도중 병원에 있던 분리판이 다시 반응했다. `복수 출석 확인`이 표시되자 세림과 도원의 영상에 같은 복도가 겹쳤다. 현장 담당자에게 안전 상태를 확인한 뒤, 나는 자동 출석 토큰 전달을 중단했다. 이번에는 코일 본전원을 건드리지 않았다. 통로의 실제 버팀 구조를 확인하면서 중첩 명령만 격리했다. 수 분 뒤 화면의 복도는 원래 위치로 돌아왔지만 세림 현장의 안전 통제는 유지됐다.
두 임현규는 동시에 나를 바라봤다. 내가 설명했다. “장치가 사람의 출석을 경로 동기화 명령으로 쓰고 있습니다. 결재 토큰이 둘을 하나로 처리하니까 두 장소도 한곳으로 만들려는 겁니다.” “그럼 어느 쪽을 원본으로 지정하면 해결되나요?” 양복 쪽이 물었다. “아닙니다. 장치가 그렇게 믿는 이유부터 고쳐야 합니다.” 나는 단호하게 대답했다. 누군가의 존재를 없애서 길을 여는 방법은 이미 실패했다.
검은 셔츠 임현규는 잠시 생각하더니 입을 열었다. “예전 제0 경계는 출석자가 없을 때도 작동했어요. 그게 독립 경보의 이유였죠.” 양복 임현규가 즉시 반박했다. “그러면 사고 책임을 누가 집니까?” “책임을 남기는 기록과 사람을 현장에 묶는 기능은 달라야 해요.” 내가 끼어들었다. “실제 변경 승인자와 관리자가 책임을 설명하면 됩니다. 신고자가 대신 회사에 취직할 이유는 없죠.”
둘 사이의 갈등은 더 커졌다. 양복 쪽은 자신의 기억 속에 분명 '사고를 막기 위해 누군가 남아야 한다'는 회의가 있었다고 말했다. 검은 셔츠 쪽은 그 회의가 사고 이후의 대응책이었다고 했다. 나는 두 사람의 진술을 각각 보존했다. 누구 말이 진짜인지 정할 수 없더라도 어떤 문서가 실제로 존재했는지는 확인할 수 있었다.
서윤이 회의 기록의 하단에서 중요한 항목을 찾았다. `[회의 참석 대상: 18개 위치 / 입회 없이 검증 가능한 경고 1건]`. 열여덟 번째 자리는 외부 관찰자를 위한 빈 위치였고, 열아홉 번째는 사람을 앉히는 의자가 아니라 확인되지 않은 경고를 보존하는 항목이었다. 하지만 도원에서는 둘 다 출석자로 처리했다. 그 결과 누군가를 강제 소집하지 않으면 시스템이 실패했다고 판단했다.
“이걸 왜 이제야 봤죠?” 민재가 중얼거렸다. “우리가 이름을 찾느라 기록의 단위를 못 봤거든.” 나는 말했다. 숫자 하나가 사람일 수도 있고 장비일 수도 있는 세상이라니. 사용자 인터페이스를 설계한 개발자를 만나면 꼭 말해 주고 싶었다. 숫자에 단위를 적으라고. 가능하면 큼직하게.
그날 오후 협의회에서 새로운 공문이 왔다. '실제 인원이 두 명으로 나타나는 경우 관리 효율을 위해 한 명만 남길 수 있다.' 나는 공문을 출력해 책상에 올려놨다. 서윤은 바로 법적 근거와 물리적 안전 검토가 없는 지침이라고 반박서를 작성했다. 두 임현규도 각각 서명했다. 서로를 인정하지 못한다는 것과 누군가를 지우는 것에 반대한다는 것은 양립할 수 있었다. 처음으로 둘의 의견이 같았다.
회의가 끝날 무렵 검은 셔츠 임현규가 나를 따로 불렀다. “당신이 퇴사한 시각, 장치가 왜 움직였는지 알 것 같습니다.” “말씀해 보세요.” “인사 시스템에서 유일하게 '진짜로 나간 사람'이라고 확인할 수 있는 사건이 그때였어요. 그래서 장치가 당신을 모든 미귀가 기록의 기준점으로 삼았을 수 있습니다.” 나는 그 말을 듣고 잠시 멈췄다. 퇴사한 것이 문제가 아니라 퇴사했다는 전산 확인이 공공 경고를 오염시켰다는 뜻이었다.
“그럼 다른 사람이 먼저 퇴사했더라도 같은 일이 벌어졌을까요?” “가능합니다. 하지만 시험 기록의 최초 경보는 당신보다 먼저 시작됐죠.” 검은 셔츠 임현규가 고개를 끄덕였다. “문제가 시작된 건 17시 57분 이전입니다.” 이 대화는 중요한 가설이었지만 여전히 확인이 필요했다. 나는 그에게 기억과 자료의 차이를 분명히 해 달라고 부탁했다.
저녁에 나 혼자 남아 출석표를 다시 살폈다. 두 임현규의 이름이 겹쳤던 칸 옆에 작은 점이 있었다. 도면 범례에는 `인간 대리 서명 불허`라고 적혀 있었다. 이제야 나는 019-B-3의 세 번째 함을 왜 찾지 못했는지 조금 이해했다. 누군가 그 함을 가져간 게 아니라, '사람이 대신 승인할 수 없는 자리'를 사물로 옮겨 놓았기 때문일지도 몰랐다.
문이 열리며 경로 보조가 들어왔다. 그는 자기 얼굴을 보고 있던 나와 마주 앉았다. “이제 저도 하나의 회의 참석자로 처리하나요?” “아니요. 쉬고 싶으면 쉬어요.” 그는 웃더니 작은 종이를 내밀었다. 본인이 직접 적은 글이었다. '나는 차도윤의 이름을 빌려서도 나 자신으로 나갈 수 있다.' 나는 그 글을 복사하지 않고 원본을 그에게 돌려줬다.
잠시 뒤 회의실 화면에 새로운 안내가 떴다. `[복수 출석 중지 / 마지막 신호 처리 권한: 기계식 019-B-3]`. 두 대표의 이름은 사라졌다. 하지만 화면 아래쪽에 붉은 줄이 남아 있었다.
`[019-B-3가 수신하지 못한 신호는 아직 도시의 다른 위치에서 반복 전송 중]`.
어느 위치인가. 화면 오른쪽에 점이 하나 찍혔다. 아이의 비닐 지도에서 검은 점이 놓여 있던 바로 그 방향이었다.
제108화 댓글 0
댓글·공감·신고는 로그인 후 이용할 수 있습니다. 이전 익명 댓글은 그대로 표시됩니다.
댓글을 불러오는 중입니다.