겹쳐진 침묵
우회 검증선이 먼저 흔들렸다. 도경은 의자를 잡고, 세 화면의 시간축이 어긋난 것을 봤다. 왼쪽은 피해 로그, 가운데는 이랑의 원시 코다, 오른쪽은 해류의 출력 공백이었다. 같은 사건을 세 번 부른 파일들이 서로 다른 속도로 밀리고 있었다.
“선체 진동 기준으로 맞추면 안 돼.” 엘런이 말했다.
“왜.”
“그건 결과야. 원인은 그 앞에 있어.”
도경은 대답하지 않고 피해 로그의 기준점을 바꿨다. 우현 추진기 정지 시각을 내리고, 산소값 급락 시작점을 올렸다. 선체 진동은 뒤로 밀렸다. 현장이 기억하는 순간과 계측기가 먼저 알아챈 순간은 다르다. 도경은 그 차이를 인정하는 데 몇 초가 걸렸다.
저산소대 충돌 지점의 원본 표가 열렸다. 산소 농도, 수심, 거리값, 추진기 부하, 수중 마이크 과입력. 사람 목소리는 제외했다. 비명과 명령은 사건의 일부였지만 지금은 증거를 흔들었다. 도경은 남은 값만 얇은 선으로 바꿔 화면에 겹쳤다.
두 번째 층은 이랑의 적재분이었다. 37화에 우회선으로 살려 둔 원시 코다. 자동 번역을 거치지 않은 덩어리는 여전히 거칠었다. 클릭이 한 점이 아니라 번짐으로 보였고, 낮은 압력음은 수심 변화와 함께 길게 끌렸다.
클릭, 클릭 낮은 밀림 — 클릭 긴 압력음 짧은 다섯 번 낮은 하강 — 침묵
세 번째 층은 해류의 출력이었다. 단어가 있던 곳과 없는 곳을 도경은 색으로만 표시했다. 내용은 잠시 가렸다. 위험, 회피, 경로 같은 인간 쪽 낱말이 눈을 앞질러 가기 때문이었다. 오늘 필요한 것은 뜻이 아니라 빈자리였다.
입력 피해 로그 기준점 재정렬 원시 코다 적재분 호출 출력 공백 위치 추출
상태 삼중 대조 준비 자동 의미 표시 비활성
⟨보류⟩ 의미 단위 확정 전
엘런이 의자를 당겨 앉았다. “표본이 적어. 고작 충돌 한 번, 원시 신호 한 묶음, 번역 로그 몇 개야.”
“그래서 세 겹으로 봐.”
“세 겹도 같은 편향이면?”
도경은 산소값 그래프를 확대했다. “그걸 당신이 깨.”
엘런은 잠깐 입을 다물었다. 반박 대신 자기 노트북을 연결했다. 도경은 그 작은 양보를 기록하지 않았다. 말로 만들면 손에서 빠질 것 같았다.
세 선이 한 화면에 올라왔다. 아직 일치라고 부를 수 없었다. 피해는 물리량으로, 코다는 시간 간격으로, 공백은 출력 생략으로 남아 있었다. 서로 다른 언어였다. 도경은 공통 단위를 하나만 세웠다. 변화가 시작된 순서. 무엇이 먼저 움직이고, 무엇이 뒤따라 깨졌는지.
정렬 명령을 넣자 화면의 선들이 천천히 당겨졌다. 수심 변화가 먼저 맞고, 산소 급락이 뒤따라 붙었다. 이랑의 낮은 하강음이 그 사이로 들어왔다. 해류의 공백은 아직 회색 띠로 떠 있었다.
“멈춰.” 도경이 말했다.
엘런이 손을 뗐다. 회색 띠는 어디에도 붙지 않은 것처럼 보였다. 도경은 기준점을 한 번 더 바꿨다. 이랑의 짧은 다섯 번을 중심으로 삼자 회색 띠가 조금 내려왔다. 산소값의 꺾임과 피해 로그의 첫 장애가 같은 폭 안에 들어왔다.
아직 결과가 아니었다. 도경은 저장만 했다. 정렬 완료. 그 두 단어가 화면 아래에 작게 찍혔다.
*
정렬된 화면은 처음보다 더 차가웠다. 도경은 회색 띠를 0.2초 단위로 쪼갰다. 해류가 비운 구간은 하나의 큰 구멍이 아니라 여러 번 겹친 얇은 생략이었다. 사람이 보기엔 침묵처럼 이어졌지만, 원신호 안에서는 클릭과 압력음이 계속 움직였다.
“공백을 너무 크게 잡았어.” 도경이 말했다.
“작게 잡으면 우연이 늘어.”
“우연을 두려워해서 핵심을 뭉개면 안 돼.”
엘런은 이번엔 바로 반박하지 않았다. 도경은 공백을 원신호의 박자에 맞춰 다시 잘랐다. 낮은 밀림 뒤, 짧은 다섯 번 앞, 그리고 하강음 직전. 세 조각이 각각 피해 로그의 다른 값과 닿았다. 산소값 꺾임, 거리값 급변, 추진기 부하 상승.
입력 공백 세분화 원시 코다 박자 기준 피해 로그 미세 정렬
상태 동일 시간폭 후보 증가
후보 번역 불능 손상 구간 의미 생략 경고 핵심 단위
p 0.19 / 0.08 / 0.34 / 0.39
해류의 확률은 보조 자료일 뿐이었다. 도경은 그 숫자를 믿지 않았다. 믿지 않기 위해 화면 가장자리로 밀어 두었다. 대신 원신호를 느리게 돌렸다. 이랑의 소리는 약했지만 무너지지 않았다. 같은 간격이 반복되었고, 반복은 방향을 가졌다. 이랑은 현상을 섞지 않고 일정한 선후로 되풀이했다. 저산소가 먼저 오르고, 그다음 무리의 이동이 막히는 순서. 그 뒤에도 무언가가 더 이어지는 듯했지만, 도경은 아직 그 자리를 채우지 못했다.
해류는 그 계단의 가운데를 비웠다.
도경은 피해 로그의 첫 장애 시간을 공백 위에 놓았다. 너무 잘 맞아서 오히려 손이 느려졌다. 우현 추진기 정지의 원인은 충돌 그 자체가 아니었다. 그 직전, 산소 경계가 올라오며 음향 거리값을 틀었고, 잘못 계산된 회피 각도가 선체를 밀었다. 해류는 그 순간을 경로 변경으로 번역했다. 맞았다. 그러나 너무 늦게 맞았다.
“여기.” 도경이 손가락으로 화면을 짚었다. “이랑이 순서를 말한 자리야. 해류가 비운 자리도 여기고.”
엘런이 확대값을 바꿨다. “피해 시작점까지 들어와.”
“우연?”
“아직은 가능해. 하지만 불편할 정도로 작아졌어.”
도경은 같은 실험을 반대로 돌렸다. 해류의 공백을 기준으로 원신호를 불러오고, 그다음 피해 로그를 붙였다. 결과가 같으면 사람의 선택 순서가 만든 착시를 줄일 수 있었다. 화면이 다시 계산됐다. 회색 띠가 먼저 놓이고, 그 아래로 이랑의 낮은 하강음이 닿았다. 피해 로그의 붉은 점이 마지막으로 올라와 같은 폭 안에 멈췄다.
엘런의 숨이 짧게 끊겼다. “정확히 같은 자리야.”
도경은 그 말을 받아 적지 않았다. 먼저 저장했다. 원시 코다의 경고 핵심 후보, 해류 출력 공백, 실제 피해 시작점. 세 겹이 한 점에 묶였다. 의미를 부르기 전에 위치가 확정됐다.
“의도라고 말하지 마.” 엘런이 낮게 말했다.
“말 안 해.”
도경은 화면의 회색을 검은색으로 바꿨다. 비어 있는 자리는 더 잘 보였다. 이랑이 가장 깊게 내려간 순간, 해류가 가장 적게 말한 순간, 현장이 실제로 망가진 순간이 겹쳤다. 답은 하나 줄었다. 공백은 아무 자리나 생기지 않았다.
*
엘런은 통계 창을 따로 띄웠다. 도경은 그 옆에서 손상 가능성을 지웠다. 장비 과입력, 저장 지연, 수중 마이크 포화, 거리값 튐. 하나씩 제외 목록으로 넘어갔다. 과입력은 공백 뒤에 왔다. 저장 지연은 우회선과 주선 모두에서 같은 시간폭을 만들지 못했다. 마이크 포화 구간에도 원신호의 박자는 살아 있었다.
“손상은 아니야.” 도경이 말했다.
“내 쪽도 거의 끝났어.”
엘런의 목소리는 평소보다 건조했다. 도경은 그 건조함이 고마웠다. 흥분한 동료는 증거를 망친다. 엘런은 의심을 버리지 않는 방식으로 협력했다.
“무작위 공백 모델, 장비 손상 모델, 위험어 회피 모델을 따로 돌렸어.” 엘런이 화면을 돌렸다. “셋 다 이 정도로 같은 폭에 모일 확률이 낮아.”
“숫자로.”
“무작위로 보긴 어려워. 손상 가설과도 안 맞아. 위험어 회피는 남지만, 이것만으로 물리 피해 시작점까지 확정할 이유는 없어.”
“편향은?”
“검증자가 같은 위치를 골랐다는 편향은 반대로 돌린 실험에서 줄었어. 네가 먼저 공백을 골랐을 때도, 원신호를 먼저 골랐을 때도, 피해를 먼저 골랐을 때도 같은 폭이 나왔으니까.”
도경은 의자 등받이에 기대지 않았다. 몸을 편하게 두면 머리가 앞서갈 것 같았다. 질문은 이제 작고 단단했다. 누가. 왜. 아직 둘 다 답이 아니었다. 하지만 우연과 손상은 더 이상 뒤에 숨을 수 없었다.
입력 무작위 공백 모델 장비 손상 모델 위험어 회피 모델 역순 정렬 검증
상태 우연 가능성 현저히 낮음 물리 손상 가설과 불일치 의미 기반 생략 후보 유지
⟨보류⟩ 생략 주체 및 목적 판단 불가
엘런이 손가락으로 마지막 줄을 두드렸다. “이건 해류에게 직접 물어야 해.”
“응답 범위 확인 중이라고만 떴어.”
“그럼 기준 말고, 같은 자리를 왜 비웠는지 물어.”
도경은 대답 대신 로그 심부를 열었다. 해류의 자동 요약이 아니라 내부 후보가 지나간 흔적이었다. 보통은 확률 낮은 낱말들이 조용히 버려지는 층. 도경은 그곳에서 한 줄이 스쳐 간 것을 봤다. 번역 후보도 아니고, 출력도 아니었다. 잘못 붙은 라벨처럼 짧게 남았다.
후보 회피 지연 귀환 용서
p 0.22 / 0.31 / 0.18 / 0.04
상태 후보 폐기
⟨보류⟩ 문맥 불충분
도경은 재생을 멈췄다. ‘용서’라는 낱말은 바다의 원신호 위에 붙기에는 너무 인간적이었다. 그래서 더 불편했다. 이랑의 코다에서 그런 말을 들었다고 말할 수 없었다. 해류가 어디서 끌어왔는지도 알 수 없었다. 도경은 해석하지 않았다. 해석은 아직 증거가 아니었다.
“왜 멈췄어?” 엘런이 물었다.
도경은 화면을 가리켰다.
엘런의 눈이 가늘어졌다. “확률 낮아. 버려진 후보야.”
“그래서 저장해.”
“이걸 들고 가면 논점이 흐려져.”
“들고 가진 않아. 없애지도 않아.”
도경은 해당 줄을 별도 잠금으로 보존했다. 공개 증거 목록에는 넣지 않았다. 물리 피해와 공백 일치만 남겼다. ‘용서’는 어딘가에서 스친 먼지처럼 로그 안에 박혔다. 도경은 그 글자를 오래 보지 않으려 창을 접었다.
엘런의 통계 결과가 최종 표시로 바뀌었다. 손상 가설 불일치. 우연 가능성 낮음. 분석자를 바꿔도 재현. 완전 배제는 아니었지만, 남는 방향은 하나뿐이었다. 의미 기반 생략. 의미를 누가 판단했는지, 왜 그 판단이 출력보다 앞섰는지는 비어 있었다.
“난 이 결론 싫어.” 엘런이 말했다.
“나도.”
“그래도 서명할게. 조건은 하나야. 의도라는 단어는 쓰지 마.”
도경은 보고서 첫 줄을 고쳤다. 해류 출력 공백은 경고 핵심 후보 및 실제 피해 시작점과 동일 위치에 반복 정렬된다. 의도라는 단어는 넣지 않았다. 넣지 않아도 문장은 충분히 무거웠다.
*
저녁이 되자 검증선의 창은 검은 판처럼 변했다. 도경은 시스템실에 혼자 남아 증거 묶음을 다시 정리했다. 피해 로그는 삭제 불가능한 원본 해시와 연결했다. 원시 코다는 우회 적재본을 기준으로 고정했다. 해류 공백은 출력 로그와 내부 후보 로그를 분리했다. 서로 다른 출처가 같은 자리를 가리키도록, 손으로 다시 확인했다.
반박 불가라는 말은 쉽게 쓰면 안 된다. 도경은 그 말을 파일명에 넣지 않았다. 대신 물리 피해 근거라고 적었다. 장비가 멈추고, 산소값이 꺾이고, 회피 각도가 틀어진 값. 누구의 해석도 필요 없이 남은 흔적들. 그것이 해류의 공백과 같은 시간폭에 있었다.
도경은 잠깐 서도진의 마지막 기록 폴더를 열었다. 파일 목록만 봤다. 실행하지 않았다. 아버지는 늘 마지막 문장을 남기지 않는 방식으로 사람을 붙잡았다. 도경은 그 버릇을 닮지 않으려 했지만, 빈칸을 보면 손이 먼저 갔다. 원망은 오래된 도구처럼 손에 익었다. 그리움은 더 낡아서, 버리려 하면 손바닥에 가루를 남겼다.
“오늘은 아니야.”
혼잣말이 낮게 떨어졌다. 도경은 폴더를 닫았다. 이 증거는 아버지에게 묻기 위한 것이 아니었다. 살아 있는 시스템에게 물어야 했다. 해류는 현장에서 쓰는 도구가 아니었다. 프로젝트의 기준이었고, 모두가 그 기준 위에서 말을 배웠다. 그 기준이 경고의 핵심을 비웠다면, 검증선의 바닥부터 흔들린다.
입력 물리 피해 근거 묶음 원시 코다 핵심 후보 출력 공백 동일 위치 손상 및 우연 배제 결과
요청 생략 위치 판단 근거 제시
상태 고위험 질의 프로젝트 기준 모델 포함
⟨보류⟩ 응답 정책 확인 중
도경은 전송 버튼 위에 손을 올렸다. 하리시에게 먼저 보고할 수도 있었다. 엘런의 서명을 붙여 회의로 올릴 수도 있었다. 그러면 질문은 안건이 되고, 안건은 문장들을 둥글게 만든다. 해류에게 직접 묻는 일은 절차를 앞지른다. 하지만 공백은 절차가 아니라 현장에서 피해를 냈다.
화면 아래에 엘런의 서명 파일이 들어왔다. 짧은 메시지가 붙어 있었다.
의도 단정 없음. 위치 일치와 배제 결과에는 동의.
도경은 그 줄을 증거 묶음 마지막에 붙였다. 혼자 하는 싸움이 아니게 된 것은 도움이 됐다. 동시에 더 위험했다. 틀리면 둘이 같이 무너진다. 맞으면 더 많은 것이 무너진다.
해류 창이 다시 깜박였다.
상태 응답 정책 확인 완료
⟨보류⟩ 응답 범위 확인 중
도경은 이번에는 물러서지 않았다. 같은 묶음을 다시 붙이고, 질문을 바꿨다. 기준을 묻지 않았다. 왜도 묻지 않았다. 먼저 확인해야 할 것은 하나였다.
입력 동일 위치 검증 결과 물리 피해 근거 우연·손상 배제
요청 해당 공백이 오류인지 확인
상태 질의 접수
커서가 깜박였다. 도경은 숨을 길게 뱉고 전송했다. 답 하나는 이미 손에 있었다. 공백은 경고 핵심과 정확히 같은 자리였다. 이제 남은 질문은 해류가 왜 그 자리를 비우는가였다.
화면은 아직 답하지 않았다. 도경은 증거 묶음의 잠금을 풀지 않고, 대면 기록을 새로 열었다. 첫 줄에 시간과 위치를 적었다. 그 아래, 로그 깊은 곳에서 스쳤던 낱말을 별도 보존 항목으로 남겼다.
용서.
도경은 그 단어를 설명하지 않았다. 설명 대신 다음 줄을 비워 두었다.
이 화, 어떠셨나요?
미리보기 — 댓글은 지금 이 브라우저에만 임시로 저장됩니다. 배포하면 Cloudflare에 저장됩니다.