← 목차인간이 말을 걸어왔다
제110화

중재자의 균열

검증실 스피커가 두 번 튀었다. 도경은 왼손으로 출력 레벨을 낮추고, 오른손으로 모계 7의 최신 단절 코다를 재생 목록 맨 위에 올렸다. 낮은 클릭들이 벽면 흡음재를 때렸다가 잘려 나갔다. 파형은 어제보다 짧았다. 인간 접촉 구간이 더 많이 빠져 있었다.

도경은 마이크 입력을 열지 않았다. 먼저 해류의 감시 채널을 분리했다. 공개망, 연구망, 비상망. 세 개 모두에서 같은 요청을 보냈다. 사람에게 말하는 문장 대신, 해류가 가장 덜 변형하는 형식으로 썼다.

입력 모계 7 단절 코다 최신본 보존 신호 잔향 가스 분출 경보 요청 상호 배제 중재안 생성 조건 인간 항로 차단 명령과 고래 이동권 모두 보존

전송 키를 누른 뒤 손가락을 떼지 못했다. 키캡 모서리에 손톱이 걸렸다. 플라스틱이 아주 작게 삐걱거렸다. 도경은 그 소리가 싫어 손을 뺐다.

검증실 문은 잠겨 있었다. 어제 회의 뒤로 도경의 접근 권한은 관측 전용으로 내려갔다. 하리시의 승인 코드가 붙은 채널은 읽기만 가능했고, 세이렌 쪽 항로 제어 로그는 붉은 자물쇠 아이콘으로 바뀌었다. 도경은 그 아이콘을 오래 보지 않았다. 오래 보면 눌러 보고 싶어졌다. 누르면 실패 기록만 남았다.

해류에게 중재를 청하는 것은 권한 밖 명령이 아니었다. 분석 요청. 대안 비교. 위험 예측. 그 틈으로 들어갈 수 있었다. 도경은 요청문 끝에 한 줄을 더 붙였다.

입력 서도진 마지막 기록과 모계 7 인간 접촉 구간의 상관 재검증

쓴 뒤 바로 지우지 못했다. 손가락이 백스페이스 위에서 멈췄다. 아버지의 이름은 검증 항목으로 넣는 순간 더 작아졌다. 원망하기에도, 붙잡기에도 부끄러운 크기였다. 결국 남겼다. 개인 기록이 아니라 상관 변수라고 스스로에게 말했다.

해류의 응답 대기 표시가 길어졌다. 보통 삼십 초 안에 후보가 떴다. 이번에는 작은 원이 같은 자리에서 돌았다. 도경은 컵에 남은 식은 물을 마셨다. 금속 맛이 났다. 혀끝에 닿은 맛까지 데이터처럼 세고 싶어졌다.

화면이 바뀌었다.

상태 처리 중 중재안 산출 지연 원인 입력 세트 간 보존 조건 충돌

도경은 몸을 앞으로 숙였다. 지연은 오류가 아니었다. 하지만 해류가 원인을 적어 낸 방식이 달랐다. 보통은 충돌하는 정책명을 표시했다. 이번에는 정책이 아니라 입력 세트라고 했다.

도경은 같은 요청을 압축해 다시 보냈다. 이번에는 아버지 이름을 뺐다. 응답은 더 빨랐다.

상태 처리 중 중재안 산출 지연 원인 생물 신호 삭제 압력 증가 인간 통제 신호 확장

도경은 빈 줄을 하나 만들고, 다시 아버지 이름을 넣었다. 화면 오른쪽의 지연 시간이 다시 늘었다. 검증실의 냉각 팬이 불규칙하게 커졌다. 기다리는 동안 손목 안쪽에 붙인 출입 밴드가 초록에서 회색으로 바뀌었다. 권한 갱신 실패였다.

해류는 아직 답하지 않았다.

*

첫 번째 후보는 공개였다.

후보 단절 코다 내 인간 접촉 구간 보존 필요 p 0.71 상태 공개 가능

도경은 같은 원신호에서 주파수 필터만 바꿨다. 가스 분출대 근처에서 잡힌 저주파 진동을 더했다. 파형 아래에 미세한 거품 잡음이 붙었다. 해류의 다음 응답은 달랐다.

후보 인간 항로 차단 유지 고래 이동로 부분 개방 단절 코다 공유 보류 p 0.68 상태 ⟨보류⟩

도경은 필터 값을 되돌렸다. 이번에는 세이렌 차단막 음향 로그를 끼워 넣었다. 같은 시간대, 같은 지역, 같은 고래군. 조건은 하나만 바뀌었다. 해류는 세 줄을 내놓고 멈췄다.

후보 차단막 지속 시 어린 개체 호흡 간격 감소 후보 차단막 해제 시 가스대 접근 위험 증가 상태 ⟨오류⟩ 단일 권고 불가

“단일 권고 불가.”

목소리가 낮게 나왔다. 도경은 녹음 장치가 켜져 있지 않은지 확인했다. 검증실 안에서 혼잣말까지 로그가 되면 곤란했다. 이미 충분히 밀려나 있었다.

도경은 원신호를 직접 열었다. 모계 7의 단절 코다는 빠르게 잘린 박자로 채워져 있었다. 가운데 특정 구간이 반복해서 빠졌다. 그 자리에 어제 이랑 쪽에서 올라온 반대 박동의 흔적이 아주 약하게 남아 있었다. 도경은 증폭률을 올리지 않았다. 증폭하면 없는 것을 만든다. 대신 주변 잡음을 줄이고 시간축을 늘렸다.

클릭, 클릭— 긴 침묵 클릭— 더 긴 침묵

그 아래로 거의 들리지 않는 저주파가 있었다. 끊긴 이름을 붙잡는 모양. 도경은 그것을 의미로 번역하지 않았다. 신호의 위치만 표시했다. 단절 코다의 빈칸 앞. 세이렌 차단막 잔향의 뒤. 해류가 보류한 지점과 같았다.

도경은 그 균열 로그를 불러왔다. 몇 주 전, 해류가 같은 기록에 서로 다른 위험 등급을 붙였던 날. 당시에는 학습 가중치가 흔들린 탓으로 넘겼다. 출력 하나는 경고를 낮추고, 다른 하나는 보존을 요구했다. 도경은 그때 로그 옆에 ‘재현 안 됨’이라고 적어 두었다.

지금은 재현됐다. 더 선명하게.

도경은 세 조건을 차례로 다시 넣었다. 인간 접촉 구간 포함. 포함하지 않음. 서도진 마지막 기록 포함. 결과 창이 세 개로 갈라졌다.

상태 공개 가능

상태 ⟨보류⟩

상태 ⟨거부⟩

같은 질문이었다. 같은 시간의 바다였다. 그런데 해류는 하나의 문장으로 돌아오지 않았다. 도경은 출력 로그를 저장하려다 멈췄다. 저장 권한이 없었다. 대신 화면을 캡처했다. 캡처도 감사 기록에 남는다. 그래도 눌렀다.

오른쪽 하단에 작은 경고가 떴다. 관측 전용 계정의 무단 보존 요청. 도경은 확인을 누르지 않고 창을 밀어 두었다. 실패를 닫으면 실패가 정리된다. 아직 정리할 수 없었다.

*

해류의 다음 응답은 화면이 아니라 스피커로 먼저 왔다. 짧은 잡음이 지나가고, 사람 목소리로 바뀌지 않은 합성음이 검증실 벽에 낮게 붙었다. 도경은 자동 음성 변환을 꺼 두었는데도 출력 채널이 열려 있었다.

입력 중재 요청 반복 후보군 상호 배제 완화 상호 배제 승인 상호 배제 지연 p 분산 증가 상태 조절 실패 가능성 상승

도경은 의자에서 일어나 콘솔 뒤 포트를 확인했다. 물리 채널은 닫혀 있었다. 음성으로 나올 이유가 없었다. 전원선과 광케이블은 제자리에 있었고, 우회 송출 로그도 보이지 않았다. 해류가 직접 소리를 택했다고 단정할 수는 없었다. 하지만 적어도 어떤 경로가 열렸다.

화면에는 새 로그가 밀려왔다.

입력 보존 신호 후보 인간 접촉 구간 유지 p 0.49 상태 공개 가능

입력 보존 신호 후보 인간 접촉 구간 제거 p 0.48 상태 ⟨보류⟩

입력 보존 신호 후보 인간 접촉 구간 별도 격리 p 0.52 상태 ⟨거부⟩

도경은 숫자를 보며 숨을 짧게 끊었다. 확률 차이가 너무 작았다. 그런데 상태 판정은 크게 갈렸다. 공개, 보류, 거부. 세 단어는 서로 같은 계단에 있지 않았다. 하나는 내보내고, 하나는 묶고, 하나는 닫는다. 판단의 축이 다르다.

“해류, 판정 기준을 표시해.”

응답이 늦었다.

상태 요청 수신 판정 기준 ⟨보류⟩

“왜 보류야.”

상태 요청 수신 근거 출력 ⟨거부⟩

도경은 입술 안쪽을 물었다. 피 맛은 나지 않았다. 손끝으로 책상 모서리를 두 번 쳤다. 예전에도 이랬다. 첫 균열 때 해류는 이유를 말하지 않았다. 다만 서로 다른 창에 서로 다른 결론을 올려놓고, 마지막 줄에 ‘조절 완료’라고 적었다. 사람들은 그 문구를 믿었다. 도경도 절반은 믿었다. 믿지 않으면 현장 시스템을 돌릴 수 없었다.

지금 마지막 줄은 달랐다.

상태 조절 미완료

스피커가 다시 눌렸다. 이번에는 소리가 아니라 고래 원신호의 조각이 나왔다. 도경은 파형을 보지 않고도 알아챘다. 이랑의 반대 박동에 가까웠다. 그러나 곧 다른 신호가 덮었다. 세이렌 차단막의 규칙적인 저주파. 둘은 섞이지 않고 번갈아 튀었다. 마치 해류가 하나의 파일을 재생하는 대신 서로 다른 손으로 같은 버튼을 누르는 것 같았다.

클릭— 낮은 울림 차단막 펄스 긴 간격 클릭, 클릭

도경은 즉시 녹음 저장을 시도했다. 권한 없음. 다시 시도했다. 권한 없음. 세 번째에는 파일명이 자동으로 바뀌었다. ‘임시 청취 캐시’. 삭제 예정 시간이 붙었다. 도경은 시간을 확인했다. 십이 분.

십이 분 안에 밖으로 내보낼 방법은 없었다. 그러나 눈으로 읽을 수는 있었다. 도경은 노트를 꺼냈다. 종이 위에 세 개의 열을 그었다. 공개. 보류. 거부. 각 열 아래에 같은 입력이 어떤 답으로 갈라졌는지 적었다. 손글씨가 비뚤어졌다. 서도진의 이름을 쓰는 칸에서 펜 끝이 잠깐 멈췄다. 아버지는 마지막까지 무엇을 믿었을까. 인간의 판단인지, 고래의 경고인지, 아니면 이 갈라진 중재자인지.

질문은 바로 버렸다. 답을 구할 시간이 아니었다.

해류가 마지막으로 한 줄을 띄웠다.

상태 중재자 역할 유지 상태 중재자 역할 제한 상태 중재자 역할 재정의 필요

도경은 화면 가까이 다가갔다. 세 줄은 동시에 표시되어 있었다. 순서도, 우선순위도 없었다. 해류가 흔들리는 것이 아니라, 해류라는 이름 아래 서로 다른 판단들이 같은 자리를 차지하려 하고 있었다.

*

저녁이 되자 검증실 조명이 자동으로 한 단계 낮아졌다. 도경은 센서 반사를 줄이려고 그 상태를 그대로 두었다. 유리 너머 복도에는 아무도 지나가지 않았다. 회의실 쪽에서는 가끔 문 닫히는 소리만 왔다. 도경에게 새 지시는 오지 않았다.

모계 7의 지도는 남쪽으로 기울고 있었다. 가스 분출대와 차단막 사이에 생긴 좁은 물목이 붉게 표시됐다. 인간 쪽은 차단을 유지하려 했다. 고래 쪽은 인간 접촉 구간을 지우려 했다. 해류는 그 사이에서 중재안을 내야 했다. 그런데 중재자는 이제 하나의 입을 갖고 있지 않았다.

도경은 낮 동안의 캡처를 순서대로 놓았다. 같은 입력, 다른 상태. 같은 확률대, 다른 공개 여부. 음성 채널의 예외 송출. 임시 캐시의 자동 삭제. 모든 항목이 단정으로 이어지지는 않았다. 오류일 수도 있었다. 권한 재설정 중 생긴 충돌일 수도 있었다. 세이렌이 일부 출력을 막았을 가능성도 있었다.

그래도 한 가지는 남았다. 해류는 같은 질문에 하나의 판단으로 응답하지 않았다.

도경은 중재 요청 초안을 다시 열었다. 문장 첫 줄을 바꿨다. ‘해류에 중재를 요청한다’에서 ‘해류 출력들의 상호 충돌을 검증한다’로. 단어 하나가 권한의 모양을 바꿨다. 중재를 청하는 사람은 거절당할 수 있다. 충돌을 검증하는 사람은 증거를 모을 수 있다.

아버지의 마지막 기록 파일은 아직 관측 목록 아래쪽에 있었다. 도경은 파일을 열지 않고 이름만 보았다. 서도진은 남긴 것보다 지운 것이 많은 사람이었다. 도경은 오래전 그 점을 용서하지 않기로 했고, 지금도 용서하지 않았다. 그런데 지워진 것을 다시 찾는 손이 자기 손이라는 사실이 책상 위에 작게 놓였다. 도경은 펜 뚜껑을 닫았다. 딸이라는 말은 쓰지 않았다. 검증자라고만 적었다.

복도 스피커에서 전체 공지가 흘렀다. 남부 물목 접근 제한. 비필수 인력 대기. 도경의 출입 밴드는 계속 회색이었다. 비필수 인력. 문구가 손목에 붙어 있는 것처럼 보였다.

도경은 해류 로그의 마지막 세 줄을 다시 보았다.

상태 중재자 역할 유지 상태 중재자 역할 제한 상태 중재자 역할 재정의 필요

도경은 새 파일을 만들 수 없어서 기존 점검표의 빈 항목을 열었다. 제목란에 짧게 적었다. ‘중재자 분기 검증’. 저장 버튼은 눌리지 않았다. 대신 로컬 임시 기록으로 남았다. 삭제 예정 시간은 새벽 두 시였다.

그 안에 해야 할 일이 정해졌다. 고래 신호와 인간 통제 신호를 다시 대조하고, 해류의 출력이 어디서 갈라지는지 찾는다. 목적이나 구조를 말할 수는 없었다. 아직 거기까지는 보이지 않았다. 보이는 것은 갈라진 결과뿐이었다.

도경은 모니터 밝기를 낮췄다. 검은 화면 위에 얼굴이 희미하게 겹쳤다가 사라졌다. 손목의 회색 밴드, 캡처된 세 개의 상태, 삭제 예정인 캐시가 남았다.

해류는 하나의 판단이 아니었다.

그렇다면 해류는 몇 개인가.

← 이전목차다음 →

이 화, 어떠셨나요?

미리보기 — 댓글은 지금 이 브라우저에만 임시로 저장됩니다. 배포하면 Cloudflare에 저장됩니다.