2월 15일 월요일, 나는 경찰서를 나서며 손바닥에 적힌 번호를 들여다봤다.
G-31-0825. 그 번호를 너무 오래 들여다본 탓에 의미가 있는 문장처럼 보이기 시작했다. 사실은 인간에게 읽기 쉬우라고 만든 구분표시일 뿐이었다. 하나의 번호가 서로 다른 저장소에서 반복될 수 있다는 사실을 인정하는 데 시간이 걸렸다.
오선영은 주말에 확보한 업무 흐름도를 펼쳤다. 9시 29분 접수 요청은 권다정이 번호를 등록한 구역에서 시작됐다. 9시 36분 무렵 조건 검토가 윤세한 명의 계정으로 표시됐다. 9시 43분 경고 수준 하향은 공용 실행 계정의 일괄 처리였다. 세 단계는 서로 연결돼 있었지만, 어느 한 사람에게 모든 행위를 묶어놓을 증거는 아직 없었다.
“그럼 실제로 변경을 결정한 사람은 어디에 있습니까?”
“그걸 찾고 있지.”
“중간에 조건 확인만 하는 사람은요?”
“명령을 받았는지, 내용을 읽었는지, 그 계정을 쓴 사람이 누군지부터.”
나는 빈칸이 세 개인 종이를 보았다. 요청 담당, 검토 담당, 실행 담당. 문서에는 모두 이름 대신 부서나 계정이 남아 있었다.
그때 정민규가 노트북을 가지고 들어왔다. 그는 자료를 열기 전에 내가 볼 수 있는 범위를 선영에게 확인했다. 요즘 그의 가장 큰 변화였다. 예전처럼 급한 마음에 모두에게 같은 화면을 보여주지 않았다.
“윤세한 씨 계정에 9시 36분 검토 흔적이 남아 있습니다. 그런데 당시 인증 오류 기록과 교차하면 접속 시작 시각이 겹칩니다.”
“겹친다는 게 무슨 뜻이죠?”
“개인 계정으로 로그인된 것으로 보이는 구간에 임시 인증 절차가 쓰였다고 나옵니다. 같은 사용자가 연속 작업했는지 특정하기 어렵습니다.”
“그럼 윤세한 씨가 했다고 확정할 수 없겠군요.”
민규가 고개를 끄덕였다.
“네. 그렇다고 윤세한 씨가 아니라는 뜻도 아닙니다.”
그는 자기 말을 덧붙이려다가 멈췄다. 내가 보기에 그는 이번 수사에서 배운 걸 자기 언어로 만들고 있었다. 그러나 잘못을 인정하는 습관이 언제나 안전한 것은 아니다. 누군가는 그의 신중함을 우유부단함으로 공격할 것이다.
점심 이후 백이준이 경찰에 제출한 설명자료에서 새로운 문제가 드러났다. 일괄 처리 프로그램은 경고를 참고로 낮추는 순간 영향받는 모든 문서에 별도 알림을 보내지 않았다. 표시등만 바뀌고 다음 검토 대기열로 넘어갔다. 당일 시스템을 쓰던 사람이라도 자신의 문서가 그 작업에 포함됐는지 알기 어려웠을 수 있다.
“이건 설계 문제입니까, 운영 문제입니까?” 내가 묻자 선영은 답했다.
“둘 다 검토해야 할 수 있어. 그러나 설계가 잘못됐다고 누군가의 악의가 없어지는 건 아니야.”
나는 임소율이 제출한 2025년 8월 22일 신고서를 떠올렸다. 신고는 철회되지 않았다. 다만 ‘이관 후 종결’이 ‘철회 포함 종결’로 옮겨 적혔다. 한 줄이 잘못 넘어간 뒤, 사람들은 그 다음 단계에서 그 줄을 진실처럼 다뤘다.
오후 네 시, 윤세한이 경찰에 임시 인증 당시 자신의 근무 동선을 설명했다. 그는 9시 36분에 마감표를 검토하러 다른 건물 층으로 이동했으며, 자리에 앉아 조건 승인 버튼을 누른 기억이 없다고 했다. 그 진술이 사실이라면 누군가 그의 계정을 썼을 수 있다. 그러나 건물 출입 기록에는 그가 같은 층을 오간 흔적이 있어 명확하지 않았다.
“어느 쪽이 더 그럴듯합니까?”
“진혁아. 그럴듯함으로 채우기 시작하면 두 사람의 기억을 비교하는 게 아니라 네가 만든 영화를 보게 돼.”
선영의 말에 나는 입을 다물었다. 나는 서류를 지나치게 오래 보면서도 사람을 보고 판단하고 싶어 했다. 표정, 말투, 침묵. 일곱 해 동안 익힌 조사 기술이 여기서는 독이 될 수도 있었다.
오후 여섯 시, 권다정은 경찰에 두 번째 진술을 제출했다. 그녀가 번호를 입력했던 당시 화면에는 신청 사유로 ‘검토 공백 재확인’이 표시돼 있었다고 했다. 원본 증빙이 남아 있는지는 불확실했지만, 적어도 그녀는 사후에 만들어진 익명 파일의 ‘즉시 해제’라는 문구를 기억하지 못했다.
“나중에 말을 바꾼 걸까요?” 내가 물었다.
“사람이 기억을 추가할 수도 있지. 그래서 일치하는 전자 기록이 필요한 거야.”
퇴근 무렵 한유리가 연락했다. 윤세한이 확정범인이라는 제목으로 온라인 생방송을 준비하는 계정이 있었다. 방송 예고 화면에는 경고 하향의 전체 흐름이 아니라 ‘윤세한 9시 36분’이라는 글자만 크게 적혀 있었다.
“반박 기사를 내도 될까?”
“개인정보나 미확인 동선까지 공개할 필요는 없습니다. 확인 가능한 문서의 단계 구분만 설명해 주세요.”
유리는 내게 물었다. “그러면 조회수는 누가 책임질까?”
“우리도 돈을 벌어야죠. 그런데 다른 사람을 죄인으로 만들면서 벌지는 맙시다.”
저녁을 먹기 전 정민규가 작은 파일 하나를 추가로 확인했다. 2025년 8월 25일 일괄 실행 프로그램의 도움말이었다. 거기에는 ‘검토 완료’와 ‘승인 완료’의 차이가 설명돼 있었다. 검토 완료는 필요한 항목을 검토 대상으로 넘길 수 있다는 뜻이고, 승인 완료는 결과를 확정했다는 뜻이었다. 프로그램을 처음 배우는 사람이 두 단어를 혼동하기 쉽게 되어 있었다.
“그럼 그날 사람들은 자기가 승인한 줄 모르고 검토했을 수도 있겠네요.”
“그럴 가능성은 있죠. 하지만 실제 경고 하향 버튼이 어떤 권한에서 실행됐는지는 아직 확인되지 않았습니다.” 민규가 대답했다.
나는 민규에게 칭찬을 건네려다 그만뒀다. 그는 지금 업무를 정확히 하고 있을 뿐이었다. 이전 실수에 대한 보상처럼 칭찬을 퍼붓는 것도 결국 그를 사건의 도구로 보는 일이었다.
오후 다섯 시 반에는 백이준의 설명자료 중 한 문장을 다시 읽었다. ‘준법 검토 요청이 접수된 사실은 최종 승인 의견을 뜻하지 않는다.’ 그는 법적 책임을 피하려고 이런 문장을 썼을 수도 있다. 하지만 문장 자체는 논리적으로 옳았다. 그래서 나는 그 문장을 숨기지 않았다.
“백이준도 좋은 사람일 수 있다는 겁니까?” 한유리가 물었다.
“지금은 사람의 선악을 평가하려는 게 아닙니다. 그 사람이 한 말 중 확인 가능한 게 무엇인지 보는 겁니다.”
유리는 몇 초간 침묵했다. “네가 그런 말을 하고 다닐 때마다 누군가 네가 회사 편이라고 하더라.”
나는 웃었다. “그렇겠죠. 배정우 편이라고 해도 이상하지 않을 겁니다. 한때는 제가 그 사람을 용의자로 보고 쫓았으니까요.”
일곱 시, 윤세한에게 직접 문의하는 대신 선영에게 부탁해 공식 진술 여부를 확인했다. 개인 연락처를 알아내 무턱대고 찾아가는 건 쉽다. 하지만 상대가 심리적으로 압박받은 상태에서 나에게 한 말은 나중에 경찰 진술과 뒤섞일 수 있다. 사건이 복잡해질수록 내가 할 수 있는 일보다 해서는 안 되는 일을 더 많이 알아가고 있었다.
밤 여덟 시, 내가 작성한 표에서 ‘실행자’ 칸을 세 갈래로 나눴다. 프로그램을 작동한 사용자, 권한을 부여한 관리자, 업무 진행을 요청한 사람. 같은 사람일 수도 있지만 다른 사람일 수도 있다. 이 구분을 하지 않으면 한 계정에 세 사람의 책임이 붙는다. 상대가 노리는 것은 바로 그런 혼동일 수 있었다.
나는 마지막으로 확인되지 않은 칸을 남겼다. ‘누가 이 모든 혼동에서 이득을 얻었는가.’ 거기에는 어떤 이름도 넣지 않았다. 당분간 비어 있는 것이 옳았다.
그날 밤, 익명 발신자는 방송을 예고한 계정에 다른 캡처를 보냈다. 이번에는 윤세한의 이름이 아니라 고태원 출력 기록이었다. 한유리는 그것을 보도하지 않았다. 새로운 캡처가 사실인지 확인되지 않아서였다.
나는 그때 한 가지 사실을 알았다. 상대는 우리가 누구를 주목하는지 보며 새 자료를 던졌다. 적어도 지금의 자료에는 모든 것을 알고 있는 사람의 여유가 아니라, 우리가 물길을 바꿀 때마다 둑을 막으려는 조급함이 있었다.
그렇다고 그 조급함이 익명 발신자를 특정하는 증거는 아니다. 하지만 다음번에는 우리가 먼저 물길을 정할 수 있다는 생각이 들었다.
제114화 댓글 0
댓글·공감·신고는 로그인 후 이용할 수 있습니다. 이전 익명 댓글은 그대로 표시됩니다.
댓글을 불러오는 중입니다.