배송 플랫폼은 오전 일곱 시가 되어서야 바디캠 원본을 보냈다
증거분석관은 빠진 말을 듣는다 · 2026. 9. 29.
조회수 0
배송 플랫폼은 오전 일곱 시가 되어서야 바디캠 원본을 보냈다. 파일은 재생됐지만, 03:50부터 04:12까지 음성이 비어 있었다. 영상에는 박현우가 냉장 약품 상자를 들고 빈집 현관으로 걸어가는 모습, 상자를 내려놓고 사진을 찍는 모습, 뒤로 물러나는 모습이 남아 있었다. 목소리만 없었다.
완료 알림 원본도 같은 구간에서 앱이 새로 만든 미리보기였다. 서버 이벤트에는 토큰 두 개가 있었지만, 두 번째 토큰의 생성 주체는 해시로만 표시됐다. 누가 취소했는지 알 수 없고, 박현우는 버튼을 누른 기억이 없다고 했다.
서진은 원본과 사본의 해시를 비교한 뒤에야 파일을 재생했다. 민우는 창고에서 확보한 냉장 구역 영상도 함께 띄웠다. 두 영상의 시각은 1.8초 어긋나 있었다. 서진은 시계를 맞추지 않고, 어긋남 자체를 기록했다.
“원음이 없다는 사실만으로 누군가 지웠다고 할 수 없습니다.”
“그럼 능력으로 확인하면 되잖아요.” 민우가 말했다.
서진은 그 말을 듣고도 대답하지 않았다. 빈 음성 파일에는 아무것도 들리지 않는 것처럼 보였지만, 그녀의 능력은 소리보다 비어 있는 감각의 방향을 읽을 수 있었다. 한 단어만 얻을 수 있을지도 몰랐다. 그러나 단어가 누구의 것이고 언제 말한 것인지는 알 수 없었다.
송주혁은 바디캠 원음의 관리 책임을 회사 보안팀으로 넘겼다. 보안팀 담당자는 원음이 없는 것이 카메라의 자동 잡음 제거 기능 때문이라고 했다. 박현우는 배송 중 누군가 문을 열어 달라고 말한 기억이 없었다. 같은 파일을 두고 사람들의 설명이 달랐다.
서진은 능력 사용 전 절차를 적었다. 원본 해시, 재생 시각, 관찰자, 비용 예상, 독립 검증 계획. 민우가 그 양식을 보고 말했다.
“이걸 다 쓰고 나면 파일이 없어질 수도 있습니다.”
“그래서 보존을 먼저 했습니다.”
“그래도 답이 늦어지잖아요.”
“빠른 답이 틀리면, 나중에는 질문도 잃습니다.”
서진은 비어 있는 음성 구간을 다시 들었다. 화면에는 박현우의 입이 움직이는 순간이 한 번 있었다. 그는 현관 앞에서 고개를 돌렸고, 입 모양이 짧게 변했다. 음성은 없었다. 그녀는 손바닥을 파일 위에 올렸다.
공기가 얇아졌다. 빈집이라는 단어가 입안에서 먼저 떠올랐다. 누군가 말했는지, 화면의 입 모양이 그 단어였는지, 배송기사의 기억에 섞인 단어인지 구분되지 않았다. 서진은 손을 떼고 눈을 감았다.
“빈집.”
그 한 단어가 전부였다. 동시에 머릿속에서 평범한 단어 하나가 빠져나갔다. 그녀는 책상 위 물건을 가리키려다 손을 멈췄다. 그 물건의 이름이 떠오르지 않았다. 아는 모양이었고, 손잡이가 있었고, 뜨거운 음료를 담는 데 쓰는 것이었다. 하지만 이름이 없었다.
민우가 물었다. “뭐를 잃었습니까?”
서진은 대답하려다 멈췄다. 단어를 찾을 수 없다는 사실을 설명하기도 어려웠다. 그녀는 수첩을 펼쳐 ‘일상어, 뜨거운 음료 용기, 현재 미회복’이라고 적었다. 능력의 비용을 단어로 설명할 수 없어서, 설명 주변을 기록했다.
여름이 원음 사용 기록을 보았다. “출력은 빈집. 주어 없음, 시점 없음, 진위 없음.”
“네.”
“그럼 송주혁이 빈집을 범행 장소로 골랐다는 뜻은 아닙니다.”
“아닙니다.”
그러나 민우는 이미 송주혁의 이름 옆에 물음표를 적었다. 누군가의 말에서 ‘빈집’이라는 단어가 나왔다면, 창고 관리자와 배송지의 연결을 먼저 의심하는 것이 자연스러웠다. 서진은 그 물음표를 지우지 않았다. 대신 그 옆에 두 번째 가설을 적었다. 배송기사가 빈집이라는 말을 한 것일 수도 있고, 앱의 주소 설명에서 들은 단어가 감각에 섞였을 수도 있었다.
송주혁은 회색실의 기록을 보고 화를 냈다.
“제가 빈집을 고른 적이 있다는 겁니까?”
“그런 뜻으로 쓰지 않았습니다.”
“그럼 왜 제 이름 옆에 물음표가 있죠?”
민우가 대답하려 하자 서진이 먼저 막았다. 그녀는 능력 결과를 공개하지 않기로 했지만, 이미 생긴 오독을 정정할 책임은 있었다.
“제가 파일에서 한 단어를 들었습니다. 그런데 그 단어는 누가 말했는지, 언제 말했는지, 사실인지 확인되지 않았습니다. 송주혁 씨를 가리키는 증거로 사용할 수 없습니다.”
송주혁은 잠시 입을 다물었다. 그는 자신의 이름이 수사표에 들어간 사실보다, 근거가 불명확한 정보가 사람을 움직이는 방식에 더 화가 난 듯했다.
“그럼 그 단어도 빼세요.”
“출력 사실은 남겨야 합니다. 대신 증거 칸이 아니라 능력 기록과 오독 위험 칸에 둡니다.”
서진은 자신의 정정문을 읽어 주었다. ‘빈집’은 관찰된 발화가 아니라 능력 출력이며, 주어·시점·진위가 확인되지 않았다. 송주혁과 배송기사에 대한 용의선은 이 출력만으로 유지하지 않는다. 문장을 쓰는 동안 그녀는 잃어버린 단어를 떠올리려 했다. 모양은 기억났지만 이름은 돌아오지 않았다.
박현우는 바디캠 영상을 다시 보며 현관 앞의 입 모양을 설명했다. 그는 그때 집 안을 보려고 한 것이 아니라, 현관 옆 주소판을 확인했다고 말했다. ‘비어 있다’는 말을 했을 가능성은 부인하지 않았지만, 그 말이 녹음됐는지는 알 수 없었다. 앱에 입력된 배송 메모에는 ‘부재 시 문 앞’이 적혀 있었다.
서진의 단어는 배송기사의 기억과 겹쳤지만, 여전히 범행 장소를 특정하지 못했다. 오히려 단어의 출처가 여러 곳으로 갈라졌다.
오후에 팀은 두 가설을 나눠 검증했다. 첫째, 누군가 실제 빈집을 이용해 배송 완료 사진을 만들고 약품을 가져갔다는 가설. 둘째, 배송기사가 부재한 주소에 약품을 놓았고, 취소 토큰은 앱 오류로 생겼다는 가설. 두 가설 모두 창고의 사망과 약품 상자의 이동을 설명해야 했다.
송주혁은 주문관리팀의 원본 입력 기록을 제출하지 않았다. 그는 회사 법무가 검토 중이라고만 말했다. 그 침묵은 수상했지만, 보호해야 할 회사 자료가 있을 수도 있었다. 서진은 ‘정보 통제의 이유 확인 필요’라고 적었다. 사람의 태도를 범행 증거로 바꾸지 않기 위해서였다.
민우는 취소 토큰의 생성 시각을 배송기사의 GPS와 비교했다. 토큰은 박현우가 현관에서 네 걸음 물러난 뒤에 생성됐고, 기기 위치는 배송지와 일치했다. 하지만 토큰 생성 요청이 박현우의 기기에서 직접 발생했는지 플랫폼은 아직 답하지 않았다.
서진은 다시 능력을 쓰고 싶어졌다. 한 단어가 더 나오면 토큰을 만든 사람이 누구인지 알 수 있을 것 같았다. 그러나 첫 단어가 주어와 시점을 주지 못했다. 같은 감각을 반복하면 정보보다 오독과 단어 상실만 늘어날 가능성이 컸다.
그녀는 능력 사용 중단을 기록했다. 민우는 그 문서를 읽고 눈썹을 올렸다.
“이번에는 안 쓰는군요.”
“첫 사용의 결과가 충분하지 않았고, 독립 검증 전에는 반복 사용의 이익보다 비용이 큽니다.”
“당신이 그렇게 판단했다는 걸 우리가 믿어야 합니까?”
“믿지 않아도 됩니다. 그래서 검증 가능한 자료를 따로 남기는 겁니다.”
밤이 되자 플랫폼에서 첫 번째 기기 식별자 회신이 왔다. 정상 완료 토큰은 박현우의 배송기기에서 발급됐고, 취소 토큰은 서버 중계 요청으로 생성됐다. 중계 요청의 최초 출처는 아직 비어 있었다. 빈칸은 오히려 새 질문을 만들었다.
서진은 수첩에 잃은 단어의 회복 시간을 적었다. 뜨거운 음료를 담는 물건의 이름은 아직 돌아오지 않았다. 민우가 책상 위의 물건을 가리키며 일부러 묻지 않았다. 그가 대신 이름을 말하면 회복 여부를 확인할 수 없을지도 모른다는 것을 알고 있었다.
서진은 그 물건을 다른 종이로 가렸다. 단어를 잃었다는 사실이 수사팀의 추측으로 변하지 않게 하기 위해서였다.
그날의 최종 기록에는 ‘빈집’이 범행 장소로 들어가지 않았다. 능력 출력으로는 남았고, 오독 위험과 비용으로 남았다. 사건표에는 여전히 배송 완료 사진, 중복 토큰, 냉장 구역의 시신, 바디캠 원음 결손만 있었다.
송주혁은 퇴근 전 한 장의 문서를 회색실에 두고 갔다. 주문관리팀이 약품 배송지를 입력한 시각과 담당자 이름은 가려져 있었지만, 입력 장치의 식별자는 남아 있었다. 서진은 그 자료를 보고도 안심하지 않았다. 침묵이 범행을 뜻하지 않는다면, 자료를 조금 건넨 것도 협조를 뜻하지 않았다.
그녀는 문서 봉인번호를 적었다. 능력으로 얻은 한 단어는 다음 질문을 만들었고, 잃은 단어 하나는 그 질문을 서두르지 않게 했다. 송주혁은 문서 봉인 뒤에도 회색실에 남았다. 그는 서진의 수첩을 보지 않으려 했지만, 그녀가 단어를 잃었다는 사실은 이미 팀 안에 퍼져 있었다.
“그 단어가 제 쪽으로 오면, 저도 설명할 기회를 달라고 하겠습니다.”
“당연합니다.”
“그런데 설명하지 않을 수도 있습니다.”
민우가 그를 보자 송주혁은 한 발 물러섰다. “말하지 않는 것과 거짓말하는 것은 다르죠.”
“네. 하지만 말하지 않아서 다른 사람이 손해를 보면, 그 비용은 따로 기록해야 합니다.” 서진이 답했다.
송주혁은 잠시 생각하다가 주문관리팀의 입력 장치가 자신의 승인 계정과 연결돼 있다고 말했다. 그는 담당자 이름을 공개하지 않은 대신, 자신이 승인 시각을 책임지겠다는 문서를 남겼다. 누군가를 숨기는 행동인지, 보호하는 행동인지 아직 판단할 수 없었다. 서진은 그 구분을 다음 회차의 질문으로 넘겼다.
밤 열한 시, 잃었던 단어가 부분적으로 돌아왔다. 서진은 책상 위 물건의 이름을 떠올렸지만, 회복 시각만 기록하고 그 사실을 반가움으로 쓰지 않았다. 능력은 답을 주는 대신 사람의 문장을 흔들었고, 그 흔들림이 기록에 남아야 했다. 서진은 회복한 단어를 바로 말하지 않고, 수첩의 빈칸 옆에 작은 점을 찍었다. 능력의 비용은 사라진 뒤 돌아오는 순간에도 시간과 순서를 요구했다. 그 점 하나가 다음 검증 전에 지켜야 할 선이 되었다. 민우는 그 점을 보고도 의미를 묻지 않았다. 그는 대신 플랫폼에 두 토큰의 원본 요청을 재전송했다. 답이 오기 전까지 사건표의 빈칸은 빈칸으로 남아야 했다.
이번 화가 재미있었나요?
좋아요와 평점은 언제든 변경할 수 있습니다.
독자 평점 아직 없음