저승에서 버그 리포트가 왔습니다
von 버질
도현은 사백십칠 번을 열었다.
순서 같은 건 생각나지 않았다. 손이 먼저 움직였다. 편지 테이블에서 발신자 윤미숙을 찾았다. 한 통. 작성일은 삼 년 전 삼월, 어머니가 죽기 삼 주 전이었다.
발송 상태: 대기
실패 횟수: 0
실패가 없었다. 사백팔십일곱 번 돌아온 정말심의 편지와는 달랐다. 이 편지는 한 번도 나간 적이 없었다. 삼 년 동안 스케줄러는 매일 새벽 이 줄 앞에 왔다가 아무것도 하지 않고 지나갔다.
전달 방식 칸을 봤다. 문자도 메일도 아니었다. ‘앱 안에서 전달’. 받는 사람을 번호가 아니라 회원으로 지정하는 방식이었다. 번호가 바뀌어도, 메일을 안 써도, 그 사람이 앱에 들어오기만 하면 전해진다. 가장 확실한 방식이었다.
수신 회원 번호 20391.
회원 테이블에서 20391을 찾았다.
결과 없음.
“……없어?”
지워진 행이었다. 그는 탈퇴 기록을 뒤졌다. 기록은 남아 있었다. 개인정보는 지우되 탈퇴했다는 사실만 남기는, 교과서대로 만든 테이블이었다.
회원 20391. 가입 삼 년 전 삼월. 탈퇴 삼 년 전 오월. 탈퇴 사유: 서비스가 필요 없음.
도현은 그 사유를 고른 사람을 알고 있었다.
병실이었다. 어머니는 그의 휴대폰을 달라고 했다. 비밀번호를 물어서 직접 풀더니, 돋보기를 쓰고 한참을 꾹꾹 눌렀다. 뭐 하시냐니까 앱을 하나 깔았다고 했다.
‘이거 지우지 마라. 나중에 필요할 거다.’
화면에는 처음 보는 아이콘이 있었다. 국화 한 송이. 부고 알림 앱이었다. 그는 웃지도 화내지도 못하고 휴대폰을 주머니에 넣었다. 환자가 자기 아들 전화기에 부고 앱을 깔아 주는 건 무슨 농담인가 싶었다.
그날 그는 병실에 이십 분 있었다. 무릎에 노트북을 올려놓은 채였다. 어머니는 그가 자판 두드리는 소리를 듣다가 가끔 ‘바쁘면 가 봐라’고 했다. 그는 정말로 갔다. 납품이 사흘 뒤였다. 어머니가 그의 전화기를 만진 건 그게 마지막이었다.
장례를 치르고 달포쯤 지나 알림이 왔다. ‘윤미숙 님의 사십구재가 지났습니다. 추모 공간을 열어 보시겠어요?’
그는 그 알림을 삼 초쯤 보다가 앱을 열어 설정 맨 아래까지 내렸다. 회원 탈퇴. 사유 선택. 서비스가 필요 없음. 그러고는 국화 아이콘을 길게 눌러 지웠다.
이음. 어디서 들어 본 이름이라고 생각했었다.
들어 본 게 아니라 지운 거였다.
* * *
“새 계정을 만들어서 편지를 그쪽으로 돌리면 되잖아요.”
도현은 말하면서 이미 가입 화면을 열고 있었다. 문지방의 무영은 대답하지 않았다. 대답은 코드가 했다.
번호로 보내는 편지와는 달랐다. 회원을 지정한 편지는 본문이 받는 사람의 열쇠로 잠겨 있었다. 가입할 때 만들어지는 열쇠였다. 그리고 탈퇴 처리 함수 한가운데에 주석이 있었다.
// 탈퇴하면 열쇠도 지운다.
// 떠난 사람 앞으로 온 편지를 우리가 열 수 있으면 안 된다.
옳은 설계였다. 도현이 만들었어도 그렇게 만들었을 것이다. 운영자가 마음먹어도 남의 편지를 못 여는 구조. 그 구조가 지금 그를 막고 있었다. 열쇠는 삼 년 전 오월에 지워졌다. 지운 사람은 그였다.
“그래서 원인 미상입니까.”
“원인은 명부에도 적혀 있었습니다.” 무영이 말했다. “수신인 이탈. 다만 저희 분류로는 그게 원인이 아니라 사정입니다. 고칠 방법이 없는 건은 미상으로 적습니다.”
“방법이 없다고 누가 정했어요.”
“이관 담당자가 정했습니다. 저입니다.”
도현은 의자를 밀치고 일어났다.
“이것부터 합니다. 내 건이에요. 받는 사람이 여기 있잖아요. 내가 읽겠다는데.”
“순서는 바꿀 수 없습니다.”
“왜요.”
“사백십칠 번이 맨 뒤에 있는 건 늦게 접수되어서가 아닙니다. 풀 길이 안 보이는 건을 뒤로 보낸 겁니다. 계약자님이 이 건에 사십칠 일을 다 쓰시면 앞의 사백십오 분은 기한을 넘깁니다. 그분들에게도 받는 사람이 있습니다.”
무영의 목소리는 높아지지 않았다. 민원 창구의 말투 그대로였다.
“그리고 이건 규정이 아니라 제 소견입니다만, 방법을 모르는 채로 급한 건부터 붙들면 대개 둘 다 잃습니다.”
도현은 대꾸하려다 말았다. 그 문장을 그는 알고 있었다. 장애 사백 건이 쏟아지던 주에, 제일 큰 고객사 건 하나만 붙들고 사흘을 썼다. 그 사흘 동안 나머지가 무너졌고 회사가 따라 무너졌다.
그는 다시 앉았다. 사백십칠 번 창을 닫지는 못하고 옆으로 밀어 두었다.
“……앞에서부터 치웁니다. 대신 빨리 치울 겁니다.”
* * *
사흘 동안 도현은 사연을 읽지 않고 원인만 읽었다.
신고자 이름을 가리고 발송 기록만 뽑았다. 중계 업체가 돌려준 응답, 알림 서버의 거절 사유, 스케줄러가 남긴 흔적. 같은 것끼리 묶었다. 사백십칠 번을 뺀 사백십오 건의 사연이 일곱 줄로 줄었다.
사라진 01X 번호, 111건.
만료된 알림 인증서, 97건.
예약 시각 계산 오류, 12건.
사망 확인이 가족 승인 대기에서 멈춘 것, 81건.
없어진 메일 주소, 41건.
수신 거부, 23건.
원인 미상, 50건.
“일곱 가지입니까.”
무영이 화면을 들여다봤다. 문지방에서 책상까지는 두 걸음인데 그는 목만 뺐다.
“저희는 사백십칠 가지인 줄 알았습니다.”
“사연은 사백십칠 가지 맞아요. 고장은 일곱 가지고요.”
위의 넷은 코드로 풀리는 것들이었다. 번호는 0001번에서 쓴 방법을 전체에 적용하면 됐다. 인증서는 갱신하면 되고, 그래도 안 닿는 사람은 문자로 돌린다.
예약 시각은 서버 시계와 한국 시각이 아홉 시간 어긋난 채 구 년을 돌았고, 이월 이십구일로 잡힌 편지 세 통은 사 년에 한 번만 시도되고 있었다.
가족 승인 건은 유족 중 한 사람만 사망 처리를 눌러도 되는 것을, 등록된 유족 전원이 눌러야 넘어가게 짜여 있었다. 형제가 다투는 집의 편지가 거기 걸려 있었다.
정말심의 집이 떠올랐다. 그 집 편지가 번호가 아니라 가족 승인에 걸렸더라면, 형들이 눌러 주지 않아 막내는 끝내 받지 못했을 것이다. 사람 사이가 틀어지면 시스템은 그 틈을 그대로 물려받는다.
“앱을 고쳐서 새로 올리려면 심사를 받아야 하지 않습니까.”
“그런 것도 교육받아요?”
“이승의 절차 중에 저승보다 느린 것이 몇 있다고 배웠습니다.”
“심사는 안 받습니다. 전부 서버 쪽이에요.”
둘째 날 밤에 수정이 끝났다. 시험 서버에서 세 번 돌렸다. 셋째 날 새벽 네 시, 그는 발송 단추 위에 손을 올렸다가 내렸다.
// 부고는 새벽에 보내지 않는다. 받는 사람도 자야 한다.
편지도 마찬가지일 것이다. 그는 예약을 아침 일곱 시로 걸었다.
그리고 문자 첫 줄을 고쳤다. 모르는 번호의 링크로 보이지 않도록. ‘[이음] ○○○ 님이 생전에 남기신 편지가 있습니다. 앱에서 확인하실 수 있습니다.’ 링크는 뺐다. 앱을 직접 열게 했다.
일곱 시 정각에 삼백한 통이 나갔다.
일곱 시 사 분에 첫 번째가 닫혔다.
무영의 단말기에서 종이 넘어가는 소리가 났다. 전자 기기에서 날 소리가 아니었다. 한 장. 조금 있다가 또 한 장. 출근길이었다. 사람들이 지하철에서, 버스에서, 회사 화장실에서 편지를 열고 있었다.
무영은 옥상으로 나가 섰다. 종이 소리가 날 때마다 그는 허공의 어느 쪽을 향해 허리를 숙였다. 방향은 매번 달랐다.
도현은 발송 현황 그래프를 띄워 놓고도 보지 않았다. 그래프보다 옥상 쪽이 정확했다. 그는 컵라면을 든 채 문가에서 그걸 봤다. 아침 해가 물탱크 위로 올라오는 동안 검은 정장의 등이 스무 번, 서른 번 숙여졌다.
점심때 백사십 건이 닫혔다. 밤까지 이백십 건. 다음 날 저녁에는 종이 소리가 드문드문해졌고, 사흘째 밤에 숫자가 멈췄다.
삼백한 통 가운데 끝내 안 열린 편지는 없었다. 죽은 사람의 이름이 적힌 문자를 받고 사흘 넘게 모른 척한 사람은 없었다.
미결: 115
“첫 건까지 쳐서 삼백두 건입니다.”
무영이 돌아와 문지방에 앉았다. 허리를 삼백한 번 숙인 사람치고는 흐트러진 데가 없었다.
“전임 계약자께서는 한 해에 서너 건을 닫으셨습니다.”
“그분은 원인을 몰라서가 아니라 혼자서 서비스 전체를 돌리느라 그랬을 겁니다.”
도현은 그렇게 말하고 조금 놀랐다. 얼굴도 모르는 죽은 개발자를 편들고 있었다.
남은 백십오 건은 코드로 안 풀리는 것들이었다. 없어진 메일, 수신 거부, 미상. 그중 하나가 옆으로 밀어 둔 창이었다. 기한은 사십삼 일이 남았다. 계산해 보면 빠듯하지만 불가능한 숫자는 아니었다.
그때 메일이 왔다.
발신인은 클라우드 업체였다. 제목을 읽는 데 일 초가 걸렸고, 뜻을 받아들이는 데는 좀 더 걸렸다.
[최종 안내] 이용 요금 3개월 연체에 따른 서비스 정지 예정
귀사의 계정은 14일 뒤 정지되며, 정지 30일 뒤 모든 데이터가 삭제됩니다.
전화기가 울렸다. 소윤이었다.
“서 선생님, 방금 메일 받으셨어요? 저한테도 왔어요.” 그녀의 목소리는 평소처럼 낮았는데 끝이 조금 떨렸다. “아버지 통장을 확인해 봤는데요. 사만 이천 원 남아 있어요.”
도현은 문지방을 봤다.
무영은 단말기를 내려다보고 있었다. 처음으로, 그 얼굴이 계산을 하는 얼굴이었다.
“서버가 내려가면 예약도 같이 죽습니다.”
“그럼 미결이 닫히는 겁니까.”
“아닙니다.” 무영이 고개를 들었다. “닫을 수 없게 되는 겁니다. 영원히.”