12월 20일 일요일 오전. 민석은 통장 거래 알림을 켜 놓고 서윤의 전화를 받았다.
“제가 당신한테 1만 7천 원 주는 걸 승인했다면서요?”
“제가 말하기도 전에 아셨어요?”
“성우데이터 쪽에서 확인 요청이 왔어요. 제 기사가 사건 정정에 기여했으니 홍보용 지급 성과로 묶고 싶다고요.”
“그런 명목으로 돈을 받을 생각이 있습니까?”
“없어요. 기자가 취재 대상의 지급 성과에 서명하는 게 더 이상하죠.”
민석은 창문을 열었다. 눈이 오지는 않았지만 바람이 창틀 틈으로 날카롭게 들어왔다.
“그러면 원장은 서윤 씨가 동의하지 않은 걸 또 동의했다고 쓰고 있는 거네요.”
“아직 그렇게 쓰진 않았죠. '승인자'라는 칸에 제 이름이 올라왔을 뿐이에요. 그래서 고치러 갑니다.”
세린은 먼저 실제 지급 주체가 존재하는지 확인하자고 했다. 1만 7천 원은 민석에게 지급될 이유가 없는 돈이었다. 다만 '이의 처리 보상'이라는 명목이 제도적으로 존재하는지도 불분명했다. 이름이 붙어 있다는 이유로 그것이 실제 비용이 될 수는 없었다.
오전 열 시, 고객사 담당자는 제출된 안건을 보여 줬다. 한서윤의 기사를 사례로 삼는 내부 교육 자료 제작비가 신청돼 있었다. 지급 대상은 민석이 아니라 외부 교육업체였다. 금액은 17만 원이었고, 시험 화면에서는 그 금액의 10분의 1이 '샘플 수취액'으로 표시됐다.
“왜 샘플 수취인을 저로 해 놨죠?” 민석이 물었다.
담당자는 난처한 표정으로 답했다.
“오래된 테스트 데이터를 복제해서 만든 화면이라 그런 것 같습니다.”
“실제 은행으로 나갈 수 있습니까?”
“해당 교육비 요청 자체는 아직 결재 중이고, 은행 이체는 생성되지 않았습니다.”
민석은 숨을 골랐다. 원장이 정확히 맞혔든 틀렸든 그것만으로 현실의 결론은 나오지 않았다. 다만 누군가 시험값을 그대로 둔 채 다음 절차에 넘기려 한다는 사실은 새로 확인됐다.
서윤은 자신과 관련된 자료를 교육 사례로 쓰는 데 동의하지 않았음을 정식 문서로 남겼다. 당사자 인용이나 자료 사용 여부는 별도로 검토하겠다고 했다. 민석도 시험 데이터에서 자기 실명과 계좌 식별값이 남아 있는지 점검해 달라고 요청했다.
서윤이 회사 밖으로 나오자 민석은 그녀에게 물었다.
“내일 무슨 돈이 들어온다는 걸 알 수 있다면 좋겠다고 생각한 적 없어요?”
“당연하죠. 기자 월급으로 적금 붓다가 남는 돈을 보면 내일 돈이 생길지 궁금할 때 많아요.”
“그런데 왜 전 그 화면만 보면 이제 겁부터 나죠?”
“그 화면이 보여 주는 건 돈이 아니라 누가 돈을 받을 사람이라고 적혀 있는지니까요.”
민석은 그 말을 곱씹었다. 자신의 계좌에 17,000원이 들어올지 여부만 문제가 아니었다. 자기 이름이 다른 회사의 연습 자료에 남아 있고, 언론인의 이름이 승인자 칸에 올라가 있다는 사실이 더 중요했다.
커피를 마시던 준성이 말했다. “우리 처음에는 100억을 벌 줄 알았는데.”
“안 벌었잖아.”
“그 대신 17,000원도 무섭게 됐네.”
민석은 웃었다. 그 웃음은 오래가지 않았지만 며칠 만에 처음으로 긴장을 풀게 해 주었다. 돈이 들어올 가능성은 여전히 흥미로웠다. 다만 그는 그 돈이 자기 것인지 모르면 손을 뻗지 않는 법을 배워 가고 있었다.
점심 무렵, 김예린이 새로운 자료를 가져왔다. 2016년 테스트 환경에서 출력된 '지급 확인서' 열일곱 장이었다. 실제 사람들의 서명이 아니라 입력값이 어떻게 양식에 들어가는지 보여 주는 시연용 샘플이었다. 그러나 열일곱 번째 장만은 달랐다.
“여긴 빈칸이네요.” 서윤이 말했다.
“그렇죠. 이 칸만 '미수령'과 '확인 거부'를 별도로 기록하도록 만들었어요.”
민석은 종이의 작은 글자를 읽었다.
'검증용 확인 17 — 당사자 미확인 상태를 결코 지급 완료로 대체하지 말 것.'
“이게 도현의 마지막 경고였습니까?”
“그렇게 부를 수도 있지만, 정확히는 프로그램의 시험 규칙입니다.” 예린이 답했다. “우리가 미래를 보려고 만든 게 아니었어요. 다른 프로그램이 완료라고 해도 이 규칙에 걸리면 경고가 나오도록 만든 겁니다.”
“그럼 왜 지금 제 휴대전화에만 검은 원장이 뜹니까?”
예린은 대답하지 못했다.
오후에 서문재가 사본을 보더니, 열일곱 번째 양식의 하단을 가리켰다.
“이 규칙 때문에 2018년에 프로그램을 교체하자는 말이 나왔습니다. 너무 많은 거래가 미확인으로 남는다고 했어요.”
“사람들이 돈을 못 받은 게 문제였던 거 아닌가요?” 민석이 물었다.
“그때는 확인이 늦어지는 게 사업에 손해라고만 들었습니다. 지금 생각하면 애초에 그 확인이 왜 늦어졌는지 보았어야 했습니다.”
세린은 서문재의 말을 기록했다. 그가 도덕적인 설명을 했다고 과거의 판단이 정당해지는 것은 아니었다. 다만 2018년 변경 과정에서 누구에게 어떤 경고가 전달됐는지 확인할 실마리가 생겼다.
해가 지자 민석의 원장에는 결과가 떴다.
[17,000원: 입금 실패]
[원인: 지급 요청 미생성]
[예측 적중 판정: 성공]
“또 성공이야?” 민석은 실소했다.
준성이 말했다. “성공의 기준이 통장 입금이 아니라, 화면에 계획했던 값이 한 번이라도 쓰였느냐인가 봐.”
그런데 화면이 한 번 더 바뀌었다.
[검증용 확인 17: 실행 실패]
[대체 검증 경로: 사용]
준성은 말을 멈췄다. 사라진 줄 알았던 열일곱 번째 안전 규칙을 누군가 실제 환경에서 우회하고 있었다.
제128화 댓글 0
댓글·공감·신고는 로그인 후 이용할 수 있습니다. 이전 익명 댓글은 그대로 표시됩니다.
댓글을 불러오는 중입니다.