새로운 작품, 이어지는 이야기 · 페이루아에서 다음 페이지를 만나보세요
작품으로퇴근하면 시간이 멈춥니다 · 74화
PAYLUA ORIGINAL · 제74화

74화. 세 개의 문과 하나의 코드

퇴근하면 시간이 멈춥니다 · 5,065자

오프라인 책장
파란 도장에는 한정호의 이름이 있었다. 빨간 도장에는 이름이 없었다. 그 차이를 발견한 순간 나는 누군가 내 어깨 위에 올려놓았던 무거운 돌을 잠깐 내려놓는 기분이었다. 아버지의 퇴근 요청을 반려한 사람이 한정호일지도 모른다는 생각 때문에, 이름을 보는 것만으로 화가 났었다. 그런데 화를 낼 사람이 없어졌다고 해서 사건이 해결된 건 아니었다. 오히려 더 정확한 질문이 생겼다. 누가 파란 '임시 보류'를 빨간 '영구 반려'로 바꾸었는가. "제일 흔한 경우는 문서 양식을 바꾸면서 의미가 달라진 거죠." 강문석이 말했다. "임시 승인과 최종 결재를 같은 칸으로 처리했다든지요." "누가 일부러 그랬을 수도 있죠." "그렇습니다. 지금은 두 가능성을 열어 둬야 해요." 다음 날 새벽 출근망이 다시 켜지기 전까지 우리는 세 군데 자료를 살폈다. 영병원 종이 문서의 보존본, 2019년에 만들어진 전자 인증 장비의 로그, 구태형이 위탁한 운영 계약의 변경 이력. 각 자료는 다른 곳에 보관돼 있었다. 그 덕에 셋을 한꺼번에 고치기는 쉽지 않았을 것이다. 2019년 계약서는 예상보다 평범했다. '기억기록 보존 장치 유지 관리', '장부 재색인', '비상 계정 이관'. 지나치게 점잖은 단어들 사이에 한 문장이 숨어 있었다. '구 문서의 승인 상태는 이관 후 동일 효력으로 취급한다.' "바로 이거네요." 내가 말했다. "파란 보류와 빨간 반려가 같은 값으로 저장됐다면 누가 막은 건지 확인도 못 하겠어요." 시우는 회사 법무 담당자에게 계약의 해당 조항을 검토해 달라고 요청했다. 나는 컴퓨터 앞에서 임시 비교 프로그램을 만들었다. 파란 도장이 찍힌 문서는 '상태 보존'으로, 빨간 도장 문서는 '종료 거절'로 분리해 저장했다. 둘 사이에서 아무 변환 규칙 없이 같은 숫자를 쓰는 지점에 경고를 띄웠다. 결과는 예상보다 나빴다. '보류'와 '반려'를 모두 코드 7로 저장한 흔적이 있었다. 그렇게 변환된 레코드는 이후 수십 번 다시 복사되며 원래 색깔 정보를 잃었다. "그럼 누가 악의를 품지 않았어도 이런 일이 생길 수 있다는 거죠?" 유나가 물었다. "처음에는 그랬을 수 있어요. 하지만 문제를 알면서도 고치지 않고 다른 사람의 이름을 출근시키기 시작했다면 그건 별개의 선택이죠." 서아가 고개를 끄덕였다. 우리는 오래된 시스템의 실수와 현재 운영자의 책임을 하나로 뭉뚱그리지 않기로 했다. 프로그램이 틀렸다는 말은 그 프로그램으로 돈을 번 사람들이 책임이 없다는 뜻이 아니다. 오전에 강문석과 나는 변환 프로그램의 시험용 복사본을 만들어 오류가 어떻게 전파되는지 확인했다. 원본을 건드리지 않고 1998년 형식의 작은 가짜 근무표를 입력했다. 첫 번째 사람은 임시 보류였고, 두 번째 사람은 실제로 귀가했다. 세 번째 항목은 이름 없는 동행 요청이었다. 프로그램을 한 번 통과시키자 첫째 사람과 셋째 항목이 같은 상태 번호로 바뀌었다. 두 번 통과시키자 이름 없는 동행 요청에도 '대리 근무자 없음'이라는 경고가 떴다. 세 번을 통과시키자 시스템은 스스로 대리자를 추천했다. 추천자의 이름은 현실에 존재하지 않는 시험용 이름이었다. "이건 버그가 아니라 사람을 새로 만들어 내는 기계잖아요." 내가 말했다. 강문석은 냉정하게 고개를 저었다. "데이터 구조만으로 실제 사람이 생기지는 않아요. 다만 존재하지 않는 책임자가 장부에 생깁니다. 그 장부를 근거로 현실의 누군가에게 일을 시키면 그때 문제가 커지죠." 나는 모니터에 나타난 가짜 이름을 바라봤다. 프로그램 속에서는 아주 자연스러웠다. 사번도 있고, 근무 시작 시각도 있고, 승인 일시도 있었다. 그러니 나중에 누군가 이 화면만 보면 처음부터 그런 직원이 있었다고 믿기 쉬웠을 것이다. "차라리 오류라고 크게 써 놔야겠어요." "맞습니다. 모르는 항목을 정상 처리된 것처럼 보이게 하지 말고요." 서아는 화면을 사진으로 남겼다. 그때 유나가 물었다. "그럼 처음 보류한 사람 잘못은 아니네?" "처음 보류가 정당했는지는 사건마다 다르겠지만, 보류 자체가 영구 반려로 바뀌어도 된다는 뜻은 아니죠. 그 변환을 만든 사람과 사용한 사람이 설명해야 합니다." 우리는 시험용 이름을 '가상 데이터'라고 명확히 표시한 뒤 격리 환경을 종료했다. 한 줄의 번호가 무심코 다른 사람의 운명을 결정하는 데 쓰이는 것을 보면서, 나는 내가 만드는 프로그램의 작은 기본값 하나에도 누군가의 하루가 걸릴 수 있음을 느꼈다. 오후에는 171건의 차이를 확인했다. 원본 식별 정보에 접근하지 않고도 레코드 구조를 비교할 수 있었다. 출근망에만 존재하는 171건 중 일부는 일반 근로자 근무표가 아니었다. '귀가 대기 입회', '익명 동행자', '동행 귀가 보호 요청' 같은 별도 분류였다. 시스템은 이것들을 모두 같은 한 줄짜리 출퇴근 기록으로 바꾸어 놓았다. "사람 수가 아니네요." 내가 말했다. "적어도 171건 전부가 개별 사람을 뜻하진 않아." 서아가 답했다. "한 사람이 여러 차례 동행 요청을 남겼을 수도 있어." 그렇다면 문제는 더 심각했다. 누군가 아이의 손을 잡고 나가는 것과 아이 대신 출근하는 것은 전혀 다른 행동이었다. 그런데 출근망은 둘 다 '대리 책임'이라는 한 칸에 넣었다. 유나는 0번 보관실의 아이가 했던 말을 떠올렸다. "이름이 없으면 남의 이름으로 나간다고 했잖아. 혹시 그 말은 자기 이름을 빼앗긴 사람이 아니라, 함께 나가 줄 사람이 없는 아이를 가리킨 걸까?" 나는 고개를 저었다. "가능성은 있어. 하지만 아이한테 직접 물어 보기 전에는 그렇게 적지 말자." 우리는 아이를 인터뷰 자료로 대하지 않기로 약속했다. 그 아이가 조금씩 현실로 나오는 연습을 하고 있다는 사실이 중요했다. 이름을 묻지 않겠다는 약속을 했으면서, 뒤에서는 기록을 맞추려고 아이의 정체를 캐내는 짓은 하고 싶지 않았다. 자료를 정리하던 오후 세 시, 부산의 권수진이 다시 연락했다. 청구 목록에는 자기 사업장 직원으로 등록된 '동행 입회자'가 하나 있었는데, 그 사람은 실제 직원이 아니었다고 했다. 이름 대신 '보호자 동행'이라고만 적혀 있었고, 같은 줄에 급여 계산용 코드가 붙어 있었다. "이상한 코드가 있어서 담당자가 임시 직원으로 처리할 뻔했어요." 권수진이 말했다. "당사자가 누군지도 모르는데요." "그대로 확정하지 않으셔서 다행이에요. 일단 원본을 보존하고 어떤 절차에서 생긴 줄인지 확인해 주세요." 내가 말했다. "그럼 지금은 빈칸으로 둬도 되죠?" "네. 누군가가 나중에 본인이라는 걸 확인할 수 있는 절차만 남겨 두면 됩니다." 통화를 끝내자 서아가 메모장에 표를 하나 만들었다. 누가 실제 근무를 했는지, 누가 누군가를 도왔는지, 누가 아직 돌아오지 못했는지. 세 범주는 실제로는 겹칠 수 있었지만 같은 뜻은 아니었다. "이걸 처음부터 구분했으면 얼마나 좋았을까." 서아가 말했다. "구분하는 데 시간을 아끼려다 더 큰 시간을 잃었네." 그녀가 씁쓸하게 웃었다. 우리가 몇 시간째 숫자 하나를 놓고 씨름하는 것도 결국 옛날 누군가가 칸 세 개를 하나로 줄인 결과였다. 개발자가 간편하게 만든 입력창이 사람에게는 지울 수 없는 문장이 될 수 있었다. 유나는 흰 종이에 세 개의 작은 문을 그렸다. 첫째 문은 '들어감', 둘째는 '기다림', 셋째는 '돌아옴'. 그 문에 실제 사람의 이름을 적지 않았다. 아직 아무도 그 문을 통과했다고 확인하지 못했기 때문이다. "다음에 아이에게 보여 주면 어때?" 유나가 말했다. "설명할 때 쓸 수는 있겠지만 답을 유도하면 안 돼. 아이가 자기 말로 그려 준다면 그걸 먼저 듣자." 유나는 문 아래에 연필을 내려놓았다. 빈자리를 남겨 둔 그림이었다. 그날 저녁 아이가 직접 이야기를 꺼냈다. 한시우가 0번 보관실 앞에서 과자를 놓자, 아이가 문틈으로 손을 내밀었다. 과자는 받지 않았다. 대신 작은 종이배 한 척을 내놓았다. 배 안에는 선 세 개가 그어져 있었다. "이건 뭐야?" 시우가 물었다. "들어간 길. 기다리는 길. 나오는 길." "셋 다 다른 길이야?" "사람한테는 달라. 문한테는 똑같아. 그래서 문이 자꾸 사람을 잘못 세." 말은 단순했지만 우리는 쉽게 답할 수 없었다. 단말기의 세 단계가 실제로도 하나의 문처럼 보였기 때문이다. 임시 통과 보류와 최종 귀가를 같은 값으로 저장한 시스템은 아이가 그린 선 세 개를 한 줄로 뭉개고 있었다. "그럼 네가 밖에 나오고 싶을 때 우리가 어떻게 해야 할까?" 내가 물었다. 아이는 조금 생각하더니 물었다. "너희는 내가 나올 때 기다려 줄 수 있어?" "응. 기다릴 수 있어." "내가 안 나오면?" "그럼 안 나온다고 적을 거야. 나온 척하지 않을게." 문 안에서 종이를 접는 소리가 들렸다. 잠시 후 아이는 배를 밀어 넣었다. 이번에는 배의 바닥에 작고 반듯한 글씨가 적혀 있었다. '돌아오는 건 부탁할 수 있지만, 대신 돌아올 수는 없다.' 내가 내용을 읽자 유나가 조용히 웃었다. "아이가 어른들보다 좋은 기획자네." "그렇지. 개발팀에 데려오면 회의 시간 절반은 줄겠어." 우리는 그 문구를 시스템 개선 제안의 첫 문장으로 삼았다. 아직 아이의 실제 경험과 기술 규칙을 같은 것이라 확정하진 않았다. 다만 그런 원칙을 지키는 시스템이라면 지금보다 덜 위험할 것은 분명했다. 잠시 뒤 한시우의 휴대전화로 관리자 알림이 왔다. [9번 계단실 / 보류 기록 재구성 성공] [파란 도장 원본 확인: 한정호] [빨간 도장 변환 계정: GTH-ADMIN] 나는 글자 세 개를 바라봤다. 구태형의 이니셜처럼 보였다. 하지만 관리자 계정 이름이 곧 실제 조작자를 뜻하지 않는다는 걸 알고 있었다. 필요한 건 누가 그 계정을 썼는지, 언제부터 이 오류를 알았는지였다. 그때 화면 아래에 긴 메모가 나타났다. '빨간 도장은 누군가를 못 나가게 하려고 만든 게 아니다. 이미 나간 사람을 다시 안으로 끌어오지 못하게 하려고 만든 것이다.' "말이 안 맞는데요." 나는 중얼거렸다. 서아가 옆에서 읽었다. "그럼 반려된 게 퇴근 요청이 아니라, 퇴근 취소 요청일 수도 있잖아." 우리는 서로를 바라봤다. 아버지의 퇴근 요청서 맨 마지막 줄에 있었던 단어 하나가 떠올랐다. '종료.' 그 문서에서 대체 무엇의 종료를 요청했는지, 우리는 아직 읽지 못하고 있었다.

PAYLUA 소설 본문은 인쇄가 제한되어 있습니다.

제74화 끝

읽은 위치는 이 브라우저에 저장되며 로그인 중에는 계정에도 동기화됩니다.
READER DISCUSSION

제74화 댓글 0

댓글·공감·신고는 로그인 후 이용할 수 있습니다. 이전 익명 댓글은 그대로 표시됩니다.

댓글을 남기려면 로그인해 주세요.로그인회원가입

댓글을 불러오는 중입니다.