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

기억은 파일이 아니다

검증실 스피커가 세 번 짧게 튀었다. 도경은 재생을 멈추고 파형을 뒤로 밀었다. 서도진의 마지막 항해 항목은 여전히 열리지 않았다. 대신 조건만 늘어났다. 좌표, 수심, 저주파 배경치, 동시 발화 개체 수. 파일이라면 있어야 할 크기와 해시값은 없었다.

도경은 목록을 다른 방식으로 정렬했다. 생성일, 기록자, 저장 노드. 아무것도 맞지 않았다. 손상 파일들은 보통 같은 실패를 남긴다. 깨진 헤더, 빠진 프레임, 중복된 블록. 이 구간은 달랐다. 빈칸이 아니라 잠긴 문처럼 행동했다. 누락된 데이터가 아니라 아직 일어나지 않은 조건을 기다렸다.

해류에 질의문을 넣었다.

입력: 서도진 마지막 항해 구간 복원 가능성 후보: 완전 저장본 없음 p: 0.71 상태: 조건 의존 ⟨보류⟩

도경은 턱을 낮췄다. 완전 저장본 없음. 단어가 너무 건조해서 처음엔 지나쳤다. 다시 읽자 손끝이 느려졌다. 파일이 아주 없는 건 아니었다. 55화에서 걸린 수신 로그도, 해류의 번역 캐시도 각자 크기와 해시를 지닌 채 남아 있었다. 없는 것은 그것들을 하나로 꿰는 본체였다. 해류가 꺼내 주지 않는 것이 아니었다. 그 로그들은 어떤 완성된 기억을 가리키는 인덱스일 뿐, 애초에 꺼낼 상자 자체가 파일로 존재하지 않았다.

“저장된 게 아니야.”

작게 말하자 검증실 벽이 대답 없이 소리를 삼켰다. 도경은 아버지의 이름을 검색창에 다시 넣지 않았다. 스무 해 동안 찾던 것은 파일의 위치였다. 누가 닫았고, 누가 지웠고, 어느 서버가 숨겼는지. 그런데 고래 아카이브의 이 구간은 소유권 이전에 형식부터 달랐다.

도경은 파형을 확대한 뒤, 유사 구간을 겹쳤다. 모계 7의 낮은 클릭 뒤에 같은 길이의 비어 있음이 붙었다. 침묵은 삭제 흔적이 아니라 자리 표시처럼 반복됐다. 특정 수심에서만 나타나는 배경압 변동과 붙어 있었다. 음향은 장소를 가리켰고, 장소는 시간을 끌고 왔다.

아버지의 마지막 기록은 문서가 아니었다. 해류가 파일함에서 꺼낼 수 없는 이유가 거기에 있었다. 도경은 오래된 습관대로 결론란을 만들었다가 지웠다. 아직 결론이라고 부르기엔 빠르다. 대신 검증 질문을 바꿨다.

무엇이 저장되었나가 아니라, 무엇이 다시 일어나야 하는가.

*

도경은 남쪽 해역의 단면도를 띄웠다. 푸른 격자에 수심선이 내려갔고, 스무 해 전 항적이 얇은 회색으로 겹쳤다. 이랑 씨족의 최근 이동로를 올리자 두 선은 한 지점에서 벌어졌다가 다시 붙었다. 우연처럼 보였지만, 반복 횟수가 많았다.

도경은 소리의 높낮이 대신 발화 위치를 기준으로 정렬했다. 같은 코다가 다른 해역에서는 깨졌고, 같은 해역에서도 수심이 어긋나면 중간이 비었다. 반대로 좌표와 수심이 맞을 때는 오래된 침묵 뒤에 짧은 잔향이 붙었다. 기록 장치의 잔류음이 아니었다. 세 개의 관측망에서 같은 지연이 나왔다. 도경은 좌표와 수심 표지를 지운 맹검본으로 한 번 더 돌렸다. 위치를 모르는 상태에서도 같은 조건 묶음이 다시 상위로 올라왔다.

장소 기억. 도경은 임시 이름을 적었다. 고래가 장소에 파일을 심었다는 뜻은 아니었다. 특정 씨족이 특정 수심에서 같은 순서의 코다를 되풀이할 때만, 오래된 흔적이 현재의 울림 위로 떠오르는 현상. 바다는 저장장치가 아니라 조건을 가진 매질이었다.

해류에 재검증을 걸었다.

입력: 좌표-수심-코다 반복 조건 충족 시 미복원 구간 반응 후보: 부분 복원 p: 0.64 상태: 관측 부족 ⟨보류⟩

도경은 보류 표시를 닫지 않고 옆에 두었다. 관측 부족이라는 말은 핑계처럼 보였지만, 이번에는 맞았다. 완전한 형태가 필요했다. 단일 개체의 답신으로는 빈칸 가장자리만 흔들렸다. 모계 7과 주변 성체들이 같은 자리에서 긴 코다를 이어야 했다. 한 번도 충분하지 않았다. 같은 수심, 같은 순서, 같은 간격. 살아 있는 개체들이 장소를 다시 연주해야 했다.

도경은 재연이라는 단어를 입력했다. 손이 잠시 멈췄다. 실험실에서 쓰기엔 너무 무대 같은 말이었다. 그러나 다른 말이 더 틀렸다. 복구도 아니고 다운로드도 아니었다. 바다의 오래된 조건을 현재의 몸들이 다시 세우는 일.

스피커에 원신호를 아주 낮게 틀었다.

클릭, 클릭, 클릭— 낮은 맥동. 긴 끊김. 클릭, — 클릭, 클릭.

끊김 뒤에 붙은 잔향이 도경의 모니터에 얇은 선을 만들었다. 서도진 항적의 마지막 수심과 같은 층이었다. 도경은 의자 등받이에 기대지 않았다. 아버지가 남긴 흔적을 찾는 일이, 아버지가 지나간 장소를 다시 지나게 하는 일로 바뀌고 있었다.

책상 위에 둔 낡은 방수시계가 눈에 들어왔다. 서도진의 유품 중 가장 쓸모없어서 가장 오래 남은 물건. 도경은 시계를 뒤집어 긁힌 뒷면을 보았다. 손가락이 글자 없는 홈을 한 번 훑고 멈췄다. 그 물건을 증거라고 부를 수 없듯, 지금 열린 선도 아직 증거가 아니었다.

하지만 조건은 보였다. 아버지의 마지막 항적이 걸린 자리는 장소 기억층 가설로 가장 잘 설명됐다. 세 관측망과 맹검본에서 같은 조건이 반복됐으니 우연은 아니었다. 그래도 확정은 아니었다. 살아 있는 고래가 그 자리에서 다시 코다를 반복해야만 형태가 잡힐 가설. 도경은 그 문장을 검증 노트에 적었다가, ‘기억’ 앞에도 ‘장소’ 앞에도 작은 물음표를 붙였다.

*

보류 사유를 다시 묻자 해류는 한동안 아무것도 내놓지 않았다. 검증실 환기음만 들렸다. 도경은 질의를 좁혔다. 복원 가능성이 아니라 복원 요청의 위험. 개체 식별이 아니라 집결 패턴. 이번에는 출력이 느리게 열렸다.

입력: 장소 기억층 재연 요청 시 위험 항목 후보: 씨족 집결 노출 p: 0.82 상태: 제한 표시 ⟨보류⟩

도경은 화면을 고정했다. 씨족 집결 노출. 문장 하나가 앞선 보류들을 다시 배열했다. 해류가 감춘 것은 단순한 정보가 아니었다. 복원 방법을 공개하면, 그 방법 자체가 고래들을 한 장소로 부르는 절차가 된다. 좌표, 수심, 시간, 필요한 개체 수. 적대적 선박이나 세이렌의 감시장비가 원하는 모든 값이었다.

도경은 지도 위에 반경을 그렸다. 장시간 코다가 필요한 범위, 수면 부표가 포착할 수 있는 대역, 군용 수중청음망의 추정 감도. 원이 겹치자 남쪽 해역의 한 점이 밝게 탔다. 그곳에 모이면 들킨다. 오래 머물면 더 잘 들킨다. 반복하면 패턴이 된다.

해류의 보류는 가족의 질문을 막은 벽이었다. 동시에 씨족을 노출시키지 않기 위한 벽이기도 했다. 도경은 그 문장을 마음에 들이지 않았다. 마음에 들지 않는다고 해서 틀리지는 않았다.

“그럼 왜 나한테 조건 목록은 열었지.”

질문은 허공에 걸렸다. 해류는 답하지 않았다. 도경은 로그를 확인했다. 완전 좌표는 흐려져 있었고, 수심값도 범위로만 남아 있었다. 필요한 개체 수 역시 추정치였다. 해류가 준 것은 문이 아니라 문이 있다는 사실에 가까웠다.

입력: 보류 해제 기준 후보: 요청 주체 불충분 p: 0.58 상태: 권한 판단 불가 ⟨보류⟩

도경은 마른 입술을 혀끝으로 눌렀다. 요청 주체. 누가 부를 권리가 있는가. 아버지의 딸이라는 사실은 충분하지 않았다. 검증 책임자라는 직함도 충분하지 않았다. 모계 7의 기억을 움직이는 일이라면, 인간 쪽의 결핍만으로 열 수 없었다.

아버지의 마지막을 알고 싶다는 욕망이, 한 씨족의 위치를 적에게 알려 줄 수 있었다. 도경은 그 사실을 노트에 적지 못하고 커서를 오래 두었다. 수치스러움이 먼저 올라왔지만, 손은 계산을 계속했다. 노출 시간을 줄이는 방법. 더미 신호 가능성. 수동 관측선만 쓰는 방식. 어떤 것도 위험을 지우지는 못했다.

해류가 보류한 이유를 전부 이해한 것은 아니었다. 왜 어떤 구간은 닫고 어떤 조건은 남겼는지, 판단선은 어디에 있는지 알 수 없었다. 그러나 한 가지는 분명했다. 보류는 오류가 아니었다. 적어도 이 구간에서 보류는 살아 있는 개체들의 집결을 숨기고 있었다.

도경은 모니터 밝기를 낮췄다. 반사된 얼굴이 희미해졌다. 아버지를 찾기 위해 누군가를 미끼처럼 세울 수는 없었다. 그렇다고 다시 닫아 두면 스무 해 전 문장이 계속 살아남는다. 사고. 손상. 권한 없음. 견딜 수 있는 분량.

도경은 커서를 움직여 새 파일을 열었다. 제목은 쓰지 않았다. 첫 줄에만 적었다. 재연 요청은 증거 수집이 아니라 협상이다.

*

저녁의 검증실은 창보다 모니터가 밝았다. 도경은 남은 사람들을 모두 내보낸 뒤, 관측망 권한을 읽기 전용으로 묶었다. 자동 공유도 끊었다. 누가 보아도 실험 준비가 아니라 위험 차단으로 보이게 로그를 남겼다. 빅터가 말한 문은 필요했다. 다만 문고리를 세이렌이 쥐게 둘 수는 없었다.

도경은 세 개의 문서를 나란히 열었다. 장소 기억층 조건표. 씨족 집결 노출 위험표. 서도진 마지막 항해 재구성 항목. 세 문서는 서로 다른 이름을 달고 있었지만 같은 좌표를 가리켰다. 개인의 질문과 공적 전쟁이 한 지점에서 만났다.

아버지를 찾는 일은 더 이상 가족 기록 열람이 아니었다. 고래의 살아 있는 기억을 인간 법정과 위원회 앞에 어떻게 세울지 묻는 일이었다. 재연된 코다는 증거인가. 당사자의 진술인가. 아니면 누군가 탐낼 자원인가. 이름을 잘못 붙이면, 다음 싸움은 이미 진다.

도경은 어머니에게 보낼 메시지 창을 열었다. ‘아버지 기록에 단서가 있어요’까지 썼다가 지웠다. 윤서란은 단서라는 말에 기대지 않는 법을 너무 오래 배웠다. 기대를 보내기 전에 보호해야 할 것이 있었다. 도경은 빈 창을 닫고 방수시계를 서랍에 넣었다. 잠그지는 않았다.

새 계획서에는 세 단계만 남겼다. 첫째, 장소 조건은 부분값으로만 공유한다. 둘째, 재연 가능성은 모계 7의 동의 없이는 실험하지 않는다. 셋째, 인간 기관에는 소유권이 아니라 절차권만 요구한다. 문장이 빈약했다. 그래도 출발점은 됐다.

해류에 마지막 질의를 보냈다.

입력: 장소 기억층 재연 계획 초안 후보: 위험 감소 가능 p: 0.49 상태: 불충분 ⟨보류⟩

도경은 낮게 웃지 않았다. 불충분. 정확했다. 그러나 처음으로 보류가 벽만은 아니었다. 더 필요한 조건이 있다는 표시였다. 도경은 초안 옆에 빈칸을 만들었다. ‘동의 주체’, ‘기록 권리’, ‘노출 책임’. 법무팀이 싫어할 말들이었다. 그래서 필요했다.

검증실 문밖에서 야간 근무자의 발소리가 지나갔다. 도경은 남쪽 해역 지도를 축소했다. 밝은 점은 작아졌지만 사라지지 않았다. 그곳에 가야 했다. 다만 혼자 부르는 방식은 아니어야 했다. 아버지의 마지막을 듣기 위해, 살아 있는 씨족을 인간의 증거 창고로 끌어낼 수는 없었다.

도경은 저장 버튼을 눌렀다. 파일명은 ‘재연 요청 초안’으로 했다. 모순이 눈에 보였다. 파일이 아닌 기억을 다루기 위해 또 파일을 만들고 있었다. 도경은 그 모순을 지우지 않았다. 인간 쪽의 도구는 아직 이것뿐이었다.

남은 건 한 문장이었다. 기억은 파일이 아니라 살아 있는 재연이다. 그리고 질문도 하나 남았다. 그 살아 있는 기억은 법적으로 무엇인가.

도경은 검증실 불을 끄지 않고 문 앞에 섰다. 지도 위의 좌표와 아버지의 빈칸, 모계 7의 위험이 같은 선에 놓였다. 다음에 움직일 곳은 화면 안이 아니었다. 개인의 진실과 공적 전쟁이 만나는 그 지점이었다.

← 이전목차다음 →

이 화, 어떠셨나요?

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