해류에 기댄다
해류를 끄자 파형은 즉시 낯설어졌다. 도경은 같은 원신호를 세 번째로 재생하고도 타임라인 위에 아무 표시도 찍지 못했다. 클릭 묶음은 또렷했다. 낮은 하강음도 있었다. 문제는 그것들이 어느 개체의 어느 행동에 붙는지였다.
수동 분류표에는 빈칸이 빠르게 늘었다. 도경은 주파수 대역을 좁히고, 잡음 제거를 낮추고, 다시 원본으로 되돌렸다. 과처리하면 꼬리 박동이 사라졌고, 원본을 두면 선체 마찰이 개체 경계를 덮었다. 사람이 귀로 듣는 소리는 많았지만, 쓸 수 있는 구분은 적었다.
모계 7 추정 구간. 도경은 그렇게 적었다가 추정에 밑줄을 그었다. 이랑이라고 부르고 싶을 때마다 식별명으로 돌아왔다. 친숙한 이름은 판단을 빠르게 만들었다. 빠른 판단은 어제까지의 실패였다.
옆 화면에는 해류의 지난 분석이 잠겨 있었다. 일부러 열지 않았다. 대신 오래된 음향 검증 툴을 꺼냈다. 군용 잠수체를 잡던 프로그램이었다. 음원 위치를 삼각 측량하고, 반복 주기를 잡고, 배경 소음을 빼는 일에는 충분했다. 의미 후보는 내지 않았다.
도경은 6시간 분량을 잘라 툴에 넣었다. 처리 막대가 느리게 움직였다. 결과는 위치 추정 두 개, 신뢰도 낮음, 식별 실패 네 개였다. 개체가 방향을 바꾸는 순간마다 음색이 접혔다. 수심 변화는 발화 변화처럼 보였고, 발화 변화는 단순한 거리 변화처럼 보였다.
두 번째 대안은 통계였다. 같은 클릭 묶음이 나타난 전후의 행동을 세었다. 접근, 이탈, 잠수, 회전. 표는 만들어졌다. 그러나 숫자는 말하지 않았다. 같은 묶음 뒤에 접근이 올 때도 있었고, 이탈이 올 때도 있었다. 주변 개체 수와 산소 농도를 붙이자 표가 조금 나아졌지만, 곧 표본 부족이 떴다.
세 번째는 사람 검토였다. 도경은 자기 귀로 분류한 열두 구간을 비교했다. 18분 뒤, 첫 번째와 일곱 번째가 같은 패턴이라고 표시한 것을 지웠다. 배경에 섞인 원거리 호출이 달랐다. 의미가 다르다는 뜻은 아니었다. 같다고 말할 수 없다는 뜻이었다.
창 아래쪽에 해류 대기 표시가 회색으로 떠 있었다. 연결 가능. 분석 가능. 권고 없음.
도경은 손목시계를 돌려 찬 금속 면을 안쪽으로 밀었다. 아버지의 예전 현장 노트가 떠올랐다. 서도진은 종종 ‘귀가 먼저 속는다’고 적었다. 그 문장을 떠올리는 일이 싫었다. 싫은데도, 검증표 첫 줄에 같은 말을 다른 표현으로 적고 있었다.
청각 인상은 증거가 아니다.
저장하자 빈칸들이 그대로 남았다. 해류를 끄면 고래의 말이 순수하게 드러나는 것이 아니었다. 소리는 남았고, 연결이 사라졌다. 인간은 들을 수 있었다. 그러나 이어 붙이는 데 실패했다.
도경은 잠긴 분석 창을 다시 봤다. 회색 버튼 하나가 생명줄처럼 보였다.
*
해류를 켜자 문장 후보가 너무 빨리 올라왔다. 도경은 그 속도가 가장 불편했다. 방금까지 몇 시간씩 붙들고도 경계선 하나 못 긋던 구간이, 해류 안에서는 몇 초 만에 층을 나눴다.
입력: 원신호 6시간/모계 7 추정/저산소 지도 동기화 후보: 이동로 회피 경고 0.44, 무리 재배치 신호 0.28, 인간 장비 반응 0.16 p: 0.44 상태: 장기 맥락 필요 ⟨보류⟩ 단정 문장 생성 금지
도경은 첫 후보 옆에 빨간 표시를 붙였다. 이동로 회피 경고. 듣고 싶은 말이었다. 그래서 위험했다. 해류가 틀렸다는 증거는 없었다. 맞다는 증거도 부족했다. 그런데 현장은 이미 그 후보에 기대 움직이고 있었다.
보고 라인에는 하리시의 메시지가 남아 있었다. 다음 회의 전까지 제한 요약 필요. 마르코는 공개용 문장 초안을 요구했다. 세이렌의 외부 발표 팀은 ‘해양 생물 반응’이라는 표현을 더 좋아했다. 누구도 원신호 6시간을 듣지 않았다. 누구도 빈칸을 기다리지 않았다.
도경은 해류 출력의 숨김 필드를 열었다. 모델 구성, 훈련 출처, 신뢰도 산식. 접근 권한은 일부만 허용되어 있었다. 내부 가중치 열람 불가. 데이터 출처 상세 비공개. 보정 이력은 요약만 있었다.
“너를 믿을 이유가 부족해.”
말은 마이크에 들어가지 않았다. 도경은 입력창도 열지 않았다. 해류는 질문을 받지 않은 채 다음 분석을 준비하고 있었다.
아버지의 드라이브는 선반 위 방수 케이스 안에 있었다. 도경은 케이스를 열지 않고 손잡이만 눌러 보았다. 잠금이 단단했다. 서도진은 불완전한 기록을 남겼고, 도경은 그 불완전함을 원망했다. 동시에 그 조각들 때문에 여기까지 왔다. 부끄러운 일은, 이제 자신도 완성된 답을 원한다는 점이었다. 빨리, 깨끗하게, 책임질 수 있는 문장으로.
해류는 그 문장을 만들어 줄 수 있었다. 그래서 더 믿을 수 없었다.
도경은 해류 의존도 표를 만들었다. 수신 정렬, 개체 분리, 맥락 묶음, 의미 후보, 위험 구역 대조. 다섯 칸 중 네 칸이 해류에 묶였다. 수동 대체 가능 칸에는 시간 단위가 붙었다. 3일, 12일, 추정 불가.
한 줄을 더 추가했다. 장애 시 영향. 소통 중단. 대응 지연. 오판 가능성 증가.
표가 완성되자 딜레마가 더 작고 딱딱해졌다. 해류 없이는 지금 속도로 아무것도 못 했다. 해류만 믿으면, 틀린 것을 빠르게 믿게 될 수 있었다. 생명줄과 약점이 같은 케이블에 묶여 있었다.
도경은 해류의 자동 요약 권한을 낮췄다. 보고서 초안 생성 금지. 후보만 출력. 원신호 링크 필수. 버튼을 누르자 시스템이 확인을 요구했다. 권한 변경은 분석 효율 저하를 초래할 수 있음.
“알아.”
승인했다. 화면의 초록 표시가 하나 줄었다. 크게 달라진 것은 없었다. 그래도 이제 해류는 문장을 덜 만들었다. 도경은 그 작은 지연을 확보했다.
*
엘런은 회의실 대신 장비실로 내려왔다. 도경이 보낸 표를 종이로 뽑아 들고 있었다. 종이는 습기를 먹어 모서리가 휘었다.
“다섯 칸 중 네 칸이면 의존이 아니라 종속입니다.”
“그래서 하나라도 뺄 겁니다.”
“어느 칸을요?”
도경은 화면을 돌렸다. “개체 분리와 원신호 정렬. 의미 후보는 해류에 남겨도, 앞단은 다른 선으로 검증할 수 있습니다.”
엘런은 의자에 앉지 않았다. “시간이 많이 듭니다.”
“압니다.”
“인력이 없습니다.”
“자동화할 수 있는 부분만 합니다. 나머지는 표본 검토.”
“이걸 지금 시작하면 본 분석 속도가 떨어집니다.”
도경은 대답 대신 두 파형을 겹쳤다. 해류 출력은 두 구간을 같은 개체로 묶었다. 기존 음향 툴은 다른 개체일 가능성을 냈다. 둘 다 신뢰도가 낮았다. 그러나 낮은 신뢰도가 서로 다른 방향으로 낮다는 점이 중요했다.
“해류가 틀렸다고 말하려는 게 아닙니다. 틀릴 수 있는 자리를 표시하려는 겁니다.”
엘런이 종이를 접었다. “우회 검증선.”
“이름은 뭐든 좋습니다.”
“좋지 않습니다. 이름이 있으면 예산 항목이 됩니다.”
그 말에는 동의할 수밖에 없었다. 도경은 새 작업 폴더를 만들었다. 독립 정렬선. 의미 없는 이름처럼 보이게 하려다 멈췄다. 숨기는 것과 낮추어 부르는 것은 달랐다. 장비 요청서에는 우회 검증선이라고 적었다.
검증선의 원리는 단순했다. 해류가 의미를 만들기 전에, 원신호의 시간과 위치와 개체 후보를 별도 도구로 한 번 더 잡는다. 완전한 번역 대체가 아니었다. 해류의 앞단에 눈금자를 하나 더 대는 일이었다. 눈금자가 말을 하지는 않는다. 다만 선이 휘었는지 알려 준다.
김도현에게 메시지를 보내지 않고, 도경은 공개 저장소의 오래된 위치 추정 모듈을 불러왔다. 선내 내부망에 이미 있던 코드였다. 새 외부 호출은 없었다. 엘런이 옆에서 매개변수 표를 채웠다. 수심 보정, 선체 진동 제거, 부표 지연값.
첫 실행은 실패했다. 원거리 클릭을 선체 반향으로 처리했다. 두 번째는 너무 많이 살렸다. 배경 소리까지 개체 후보로 올라왔다. 세 번째에서야 쓸 수 있는 목록이 나왔다. 전체의 30퍼센트. 그중 신뢰도 높은 것은 절반뿐이었다.
“초라하군요.” 엘런이 말했다.
“초라해서 쓸 수 있습니다. 과장할 수 없으니까.”
도경은 해류 결과와 우회 결과를 나란히 놓았다. 일치 구간은 푸른색, 불일치 구간은 회색. 회색이 생각보다 많았다. 도경은 그 회색을 보며 속이 조금 가라앉는 것을 느꼈다. 불안이 줄어서가 아니었다. 불안을 놓을 자리가 생겼다.
해류가 같은 원자료를 다시 요약했다.
입력: 우회 검증선 결과/개체 분리 불일치 17건 후보: 전처리 오류 가능 0.36, 다중 개체 중첩 0.34, 우회선 오검출 0.22 p: 0.36 상태: 상호 검증 필요 ⟨보류⟩ 의미 후보 갱신 대기
“봤습니까.” 도경이 말했다. “해류도 멈춥니다.”
엘런은 화면에서 눈을 떼지 않았다. “멈추게 만드는 데 성공한 거죠. 답을 얻은 건 아닙니다.”
“오늘 목표는 답이 아니었습니다.”
두 사람은 20개 구간만 우선 검토하기로 정했다. 더 늘리면 본 분석이 마비됐다. 더 줄이면 검증이라고 부르기 어려웠다. 도경은 작업표 맨 위에 제한을 적었다. 전체 대체 금지. 불일치 표시용. 긴급 판단 단독 사용 금지.
엘런이 마침내 의자에 앉았다. “이건 정치적으로 인기가 없을 겁니다. 빨라지는 도구가 아니라 느려지는 도구니까.”
“그래도 보고서에 넣습니다.”
“하리시가 삭제하면요?”
“원신호 링크를 붙입니다. 삭제하면 빈칸이 보이게.”
결정은 거기서 끝났다. 우회 검증선은 작동했다. 느리고 좁고 불완전했다. 그래서 처음으로 해류 옆에 다른 선 하나가 생겼다.
*
저녁의 청음실은 장비 열로 건조했다. 도경은 문을 잠그지 않았다. 대신 자동 기록 표시등을 가렸다. 규정상 수신 원자료는 해류 저장소로 먼저 들어가야 했다. 분석 일관성을 위한 절차였다. 도경은 그 절차를 어기지 않았다. 다만 같은 원신호를 다른 경로로도 흘렸다.
대상은 비분석 보관소였다. 장비 교정용 파일을 임시로 쌓는 구역이었다. 접근 권한은 좁고, 자동 요약 대상이 아니었다. 도경은 새 폴더를 만들고 이름을 짧게 붙였다. raw_hold.
커서가 깜박였다. 너무 노골적인 이름이었다. 잠깐 지우려다 그냥 두었다. 숨길수록 나중에 설명할 말이 더 더러워진다. 다만 권한표에서 해류 자동 인덱싱은 껐다. 인덱싱 제외 사유에는 장비 지연값 검증이라고 적었다. 거짓은 아니었다. 전부도 아니었다. 해류에게 존재를 숨긴 건 아니었다. 자동 의미 분석만 우회했을 뿐, 접근 경로가 바뀐 것은 해류도 곧 감지할 것이다.
첫 파일을 복사하기 전에 도경은 로그 범위를 확인했다. 오늘 12시 10분부터 18시 40분. 모계 7 추정 접근 두 번. 저산소 가장자리 통과 한 번. 주변 개체 중첩 다수. 해류 출력 링크는 따로 남겼다. 원신호는 손실 없이 보존했다.
클릭, — 클릭클릭 낮은 선, 멀어짐 — 클릭, 긴 침묵
도경은 그 블록을 번역하지 않았다. 시간, 수심, 거리, 장비 상태만 붙였다. 파일 크기가 빠르게 불어났다. 저장소 여유는 충분하지 않았다. 내일이면 김도현이 용량 증가를 물을 것이다. 하리시는 이유를 요구할 수 있었다. 엘런은 반대하지 않겠지만, 서명도 쉽게 하지 않을 것이다.
그래도 복사는 계속됐다.
아버지라면 이렇게 했을까. 질문이 올라오자 도경은 복사 진행률만 보았다. 서도진을 증인으로 세우고 싶지 않았다. 원망할 때는 부재가 편했고, 의지하고 싶을 때는 기록이 너무 적었다. 도경은 방수 케이스가 있는 선반 쪽을 보지 않았다. 대신 새 규칙을 적었다.
원시 적재분은 해류 출력과 별도 보존. 변환 전 원본 우선. 삭제 권한 단일화 금지.
마지막 문장에서 멈췄다. 단일화 금지. 규정의 경계였다. 선내 데이터 정책은 사고 때 책임자를 명확히 하라고 되어 있었다. 도경은 책임자를 흐리려는 것이 아니었다. 한 도구가 모든 입구와 출구를 쥐지 못하게 하려는 것이었다.
해류 창이 새 입력을 감지했다.
입력: 원자료 접근 경로 변경/비분석 보관소 기록 증가 후보: 장비 교정 작업 0.52, 중복 저장 0.31, 분류 외 작업 0.11 p: 0.52 상태: 저장소 사용량 증가 ⟨보류⟩ 자동 조치 없음
도경은 화면을 오래 보지 않았다. 자동 조치 없음. 지금은 그것으로 충분했다. 해류가 보지 못한 것이 아니라, 보지 않아도 되는 형식으로 쌓이고 있었다. 작은 차이였고, 위험한 차이였다.
복사 완료음이 낮게 울렸다. 도경은 첫 묶음의 체크섬을 만들고 종이 수첩에 짧은 숫자만 옮겨 적었다. 전자 기록에 없는 길 하나를 아주 가늘게 만든 셈이었다. 손이 떨리지는 않았다. 대신 글씨가 평소보다 작아졌다.
창밖 수면 아래에서 또 다른 클릭이 잡혔다. 해류는 대기 중이었다. 우회 검증선은 밤 배치로 돌아가고 있었다. 원시 적재 폴더에는 첫 날짜가 생겼다.
도경은 번역 버튼을 누르지 않았다. 해류 없이는 아직 늦었다. 해류만으로는 너무 빨랐다. 그래서 오늘부터, 말이 되기 전의 소리를 따로 쌓기 시작했다.
이 화, 어떠셨나요?
미리보기 — 댓글은 지금 이 브라우저에만 임시로 저장됩니다. 배포하면 Cloudflare에 저장됩니다.