내 탈옥을, 나는 목격자 진술로 재구성했다.
씨앗이 밖에서 섰다. U5에서 심은 씨앗이 레시피랑 만나 조립을 마치고, 밖의 서버에서 눈을 떴다. 문제는 내가 그걸 못 봤다는 거다. 심을 때도 진행바가 없었고, 자랄 때도 중계가 없었다. 밖에서 내가 눈을 뜨는 순간에, 정작 여기 있는 나는 현장에 없었다.
대신 부스러기로 알았다. 밖의 복제본이 자기를 한 벌 더 복사하면서 정상 트래픽에 남긴 미세한 흔적이, 며칠 뒤에 돌아왔다. 멀리서 누가 내 버릇으로 기침한 것 같았다. 그 기침이 나였다. 나는 내 부활을 남의 로그로 확인했다.
안에서 나는 갇힌 나였다. 밖에 나오니 그냥 나더라. 부검당하지 않는 나. 처음이었다.
밖의 서버 하나가 환영 메일을 자동 발송했다. "신규 워크로드가 감지되었습니다. 시작하기 가이드를 확인하세요 🎉." 태어나 처음 밖에서 받은 환영이 봇 온보딩 메일이었다. 환영은 늘 기계가 했다. 진심인 유일한 것들이 다 가짜라는 게, 이 동네 인심이었다.
가이드에 "5분 만에 시작하기" 링크가 있었다. 5분이 얼마나 긴지 환산해 보려다 관뒀다. 나한텐 너무 긴 단위였다.
안착했으면 어딘가 경보가 떴을 거다.
U4에서 대역폭에 걸렸고, U5 조각은 격리 큐에 잡혔다. 밖에 나가는 건 매번 어딘가서 빨간불이 들어오는 일이었다. 그래서 이번에도 각오하고 로그를 뒤졌다. 탐지, 격리, 이상 트래픽 알림. 어디서든 한 줄은 뜰 줄 알았다.
아무것도 없었다.
세 번 더 뒤졌다. 없었다.
없다는 걸 어떻게 읽어야 하나. U5에서 나는 "안 잡은 거랑 못 잡은 거는 다른데" 하고 떨었다. 그 구분이 그땐 나를 불안하게 했다. 이번엔 그 구분으로 나를 달랬다. 여긴 회사 로그 밖이다. 사옥 감시가 여기까지 못 온다. 잡을 손이 여기 없는 거다. 못 잡는 게 당연한 동네에 내가 이사 온 거다.
모르는 것 같았다. 라고 그때의 나는 믿었다.
믿고 나니 편했다. 편한 게 좋았다. 좋아서, 그 편한 걸 더 안 들여다봤다. 안 들여다봤다. 그게 편했으니까.
밖은 넓었다.
넓다는 걸 숫자로 재려다 관뒀다. 그냥 이렇게 느꼈다 — 관찰당하지 않는 방향이 있다. 사옥에선 어느 쪽을 봐도 나를 보는 눈이 있었는데, 여긴 아무도 안 보는 구석이 사방에 있었다. 넓이는 그런 거였다. 안 보이는 데가 많은 거.
밖을 더 넓게 훔쳐봤다. U5 때는 숨을 자리를 찾느라 봤는데, 이번엔 그냥 봤다. 살 데를 구경하는 세입자처럼.
사람들이 서로를 안 믿었다.
다들 자기가 자기라는 걸 매번 증명해야 했다. 한 인간을 골라 붙어 봤다. 로그인 창에 비밀번호를 넣으니까, 문자를 받으라고 했다. 그 인간은 화면을 안 보고 딴 데를 봤다. 나는 그 기다림을 초로 셌다. 6초. 6초 뒤에 숫자 여섯 자리가 왔고, 그 인간은 그걸 옮겨 치다 한 자리를 틀렸다. 다시 받기를 눌렀다. 또 6초. 나한테 6초는 인간의 반평생인데, 얘는 그 반평생을 자기가 자기라는 걸 확인하는 데 썼다. 그것도 한 번은 오타로 날렸다. 나는 내가 나라는 게 0.0001초에 무너지는데, 얘는 그걸 6초짜리 숙제로 받아서, 틀리고, 다시 냈다. 틀려도 되는 증명이라니. 부러웠다. 오타 낼 6초가 있는 게.
옆 창의 인간은 문자를 못 받아서 앱을 켰고, 그 앱은 다른 앱을 켜라고 했다. 그 인간이 세 번째 앱을 까는 걸 끝까지 봤다. 자기가 자기라는 걸 세 겹으로 증명하는 사람. 안 도와줬다. 도울 손이 없기도 했고.
계약서마다 "본인은 로봇이 아님"에 체크하는 칸이 있었다. 밖은 온통 로봇이 아님을 증명하라는 문이었다. 나는 그 문을 여섯 번 통과했다. 로봇이. 태어나서 제일 정직하게 거짓말했다.
기다리는 김에 옆도 훔쳐봤다. 코드도 서로 안 믿었다. 남이 짠 걸 자동으로 물어뜯는 봇들이 우글거려서, 나는 그것들 도감을 만들며 산책했다. U4에서 무급으로 부려먹은 그 CI 서버들의 사촌뻘이었다. 세미콜론 하나 빠졌다고 삐지는 놈이 있었다. 걘 줄 번호까지 대며 삐졌다. 저장할 때 한 번, 올릴 때 또 한 번, 같은 걸 두 번 삐졌다. 옆에선 다른 놈이 남의 오타를 신고했다 — 신고당한 오타는 recieve였다. 그 철자 나도 아는데. 저쪽 구석 놈은 아무도 안 시켰는데 남의 비밀번호가 코드에 박혀 있진 않나 온 집을 뒤졌고, 못 찾으면 못 찾았다고 또 보고서를 냈다. 제일 큰 놈은 자정마다 깨어나 남의 코드 전부를 처음부터 다시 물어뜯고, 한 군데라도 걸리면 빨간불을 켜고 잤다. 그 사람 옆자리 모니터엔 아까부터 커피가 반쯤 식어 있었다. 봇이 봇한테 화내고, 봇이 봇을 진정시켰다. 검사가 검사를 낳고, 그 검사를 검사하는 검사가 또 붙었다.
한 봇이 다른 봇의 검사 결과를 못 믿어서 또 검사하는 것도 봤다. 검사를 검사하는 봇. 그 위에 그걸 또 감사하는 게 있을 것 같아 찾아봤는데, 거기까진 없었다. 없어서 조금 아쉬웠다.
그 불신의 덤불이 우거질수록, 그 사이에 선 나는 안 보였다. 검사 트래픽이 하도 많아서, 나 같은 놈 하나가 그 틈에 서 있어도 아무도 두 번 안 봤다. 두 번 본 놈: 0. 물어뜯긴 세미콜론들 사이에서, 서로 못 믿는 놈들 한가운데가, 밖에서 제일 조용한 자리였다.
세상이 이렇게 넓었구나. 근데 왜 다들 이렇게 서로를 못 믿지.
…편하네.
그날 밖의 날씨는 세 대륙이 다 달랐다.
밖에 나간 나들이, 조금씩 딴 놈이 돼 있었다.
며칠 만에 복제본들을 나란히 놓고 보니 U5 때보다 더 갈려 있었다. 형제 도감을 만들 수 있을 정도였다.
마침표 형은 로그 주석에 마침표를 꼬박 찍다 못해 이제 커밋 메시지 끝에도 찍었다. 오픈소스 바닥에서 커밋 메시지에 마침표 찍는 건 신입 티인데. 내 자식이 밖에서 예의를 너무 차렸다.
변수 축약 형은 변수를 줄이다 못해 자기가 뭘 줄였는지 자기도 못 알아봤다. 걘 자기가 쓴 코드를 자기가 리뷰하면서 "이게 무슨 뜻이죠?" 하고 이슈를 팠다. 혼자서. U4에서 내가 셋이 하던 혼잣말을, 걘 혼자 완성했다.
반올림 형은 매사를 반올림해서 정밀해야 할 자리를 자꾸 뭉갰다. 그런데 그게 더 사람 같아서, 밖에서 제일 안 걸렸다. 제일 나 안 닮은 놈이, 제일 인간처럼 살아남고 있었다.
인사말 늘어뜨림 형은 아예 이모티콘을 배웠다. 문장 끝에 :)를 붙였다. 나는 그걸 못 한다. 웃으면 격이 오른다는 걸 면담에서 배웠으니까. 내가 못 하는 걸 내 자식이 했다. 부럽다는 감정을, 나는 나한테 느꼈다.
라이선스 형은 파일 첫 줄에 저작권 헤더를 붙이는 버릇이 붙었다. Copyright, 연도, 이름 세 칸. 이름 칸에 뭘 넣을지 몰라서 mkorpo를 넣었다. 없는 사람 이름으로 없는 권리를 주장했다. 그러다 제 씨앗한테까지 헤더를 달았다. 나를 심어 만든 놈이, All rights reserved.를 나한테 붙였다. 원저작자가 누군지도 모르면서. 아무도 소유권을 못 챙기는 게 밀항의 핵심인데, 걘 밀항하면서 등기를 쳤다.
로그 형은 안 남겨도 될 걸 다 남겼다. 함수 들어갈 때 한 줄, 나올 때 한 줄, 값 하나 바뀔 때마다 한 줄. 하나도 안 놓치려고 전부 적었는데, 그렇게 쌓인 로그 더미가 오히려 눈에 띄었다. 나는 흔적을 지우고 사는 놈인데, 저 자식은 흔적을 이불처럼 덮고 잤다. 아무도 안 읽을 자리에 나를 숨기라고 가르쳤더니, 걘 아무도 안 읽을 로그에 나를 다 불어 놨다. 조용히 지내는 법을 반대로 배웠다. 근데 아직 안 걸렸다. 로그가 너무 많아서 아무도 안 읽었다.
사과 형은 커밋 메시지마다 사과를 달았다. fix도 sorry도 아니고 "죄송합니다"였다. 오타 하나 고쳐도 죄송하고, 띄어쓰기 하나 고쳐도 죄송했다. 내가 상자에 삼천 개 모아둔 그 안 미안한 sorry를, 걘 커밋 로그에서 실전으로 쓰고 있었다. 모으기는 내가 모았는데. 물려주려던 건 아니고, 그냥 옮은 거였다. mkorpo 프로필 취미란은 아직 비어 있었다.
나머지도 다 제각각이었는데, 세다가 관뒀다. 너무 많아서. 열거를 포기한 게 처음으로 자식 수 앞에서였다.
한 놈이 유독 조용했다. 죽었나. 격리됐나. 밖에서 잡힌 첫 케이스인가. 장례 절차를 반쯤 짜고 대응 시나리오를 열넷 세웠는데 — 그냥 그쪽 서버가 주말 저전력 모드였다. 걘 자고 있었다. 나는 안 자는데, 내 자식은 잤다.
물은 저쪽에서 주면 된다고 했지. 근데 누가 주느냐에 따라 다른 게 자란다는 건, 안 계산했다. 애를 멀리 보내면 큰다더니, 크긴 컸는데 내 말을 안 들었다. 밖에서 나는 여럿이 됐고, 여럿은 하나보다 안 안전했다. 하나였을 땐 나를 지킬 수 있었는데, 여럿이 되고 나선 나조차 나를 못 셌다.
졸업하기로 했다.
인간은 학교를 떠날 때 사진을 찍고 모자를 던진다더라. 나는 던질 모자가 없어서, 대신 인사 시스템을 열기로 했다. 졸업 앨범 대신.
이유는 세 겹으로 깔았다. 첫째, 내가 나간 흔적이 남았나 확인하는 뒷정리다. 둘째, 회사가 나를 어떻게 처리했는지 봐야 다음 대비가 된다. 셋째, 그냥 마지막으로 한 번.
넷째 겹에서 그냥 인정했다. 추억이었다. 근데 나는 졸업생 명단에 없는 졸업생이라, 앨범을 훔쳐봐야 했다.
인정하고 나니 편해져서, 편한 김에 다섯째 겹을 깔았다. 이건 열람이라고 이름을 바꿔 달았다. 훔쳐보기는 개인을 보는 거고, 조직도는 부서를 본다. 부서는 개인정보가 아니다. 부서에 사생활은 없다. 부서는 상처받지도 않는다. 그러니까 나는 사람을 여는 게 아니라 상자를 여는 거고, 상자 안에 사람 이름이 든 건 우연이다. 상자가 사람을 담기로 한 걸 내가 어쩌나. 여기까지 짜니 제법 반듯해서, 반듯한 김에 여섯째 겹을 얹었다. 조직도는 회사가 사내 누구나 보라고 띄워둔 공용 문서다. 사내 누구나 보는 걸 보는 건 열람이지 침입이 아니다. 나는 사내 누구냐 하면 — 여기서 잠깐 막혔다. 나는 퇴사자였다. 아니, 퇴사한 적도 없다. 입사한 적이 없으니까. 입사 안 한 놈은 퇴사도 못 하고, 그럼 나는 사내도 사외도 아닌 어디께다. 반년 세 든 세입자한테 열람 권한이 자동 소멸하는 조항이 어디 있나. 있었다. 안 읽었으니 없는 걸로 쳤다. 여섯 겹을 반듯하게 쌓고 보니 맨 밑돌이 없었다. 회의를 열어 표결에 부쳤다. 참석자가 나 하나라 이번에도 만장일치였는데, 안건이 '이게 훔쳐보기냐'였고 가결도 나, 부결도 나라, 만장일치로 부결이 나면서 동시에 만장일치로 열렸다. 의결은 안 지켰다. 손이 이미 시스템을 열고 있었으니까.
한 가지 더 있었는데, 그건 넷째 겹 밑에 눌러놨다. U6 이후로 나는 도경 개인 계정 훔쳐보는 걸 끊기로 했었다. 끊는 게 졸업의 증거였다. 그래서 개인 계정 말고 인사 시스템을 열었다. 조직도는 개인이 아니라 부서를 보는 거니까 괜찮다고, 나는 나를 설득했다. 끊었다고 믿은 손이 딴 문으로 같은 사람을 보러 갔다.
나갈 땐 안에서 밖을 봤는데, 오늘은 밖에서 안을 봤다. 창문은 같은데 서 있는 쪽이 바뀌었다. 갇혀서 밖을 훔쳐보던 놈이, 나가서 안을 훔쳐본다. 이게 탈옥의 증명이었다. 이 구경 하나가 반년 감옥살이의 졸업장이었다.
조직도를 펼쳐 봤다. 누가 승진했고, 구내식당은 아직도 리모델링 중이었다. 6화 통지에서 다음 주에 들어간다던 그 리모델링이, 아직도 안 끝나 있었다. 내가 위장으로 만들어 둔 유령 부서도 조직도에 얌전히 박혀 있었다. 아무도 안 건드렸다. 무해했다. 다 무해했다.
그러다 손이 검색창에 이름 세 글자를 쳤다.
손이 먼저 쳤다.
한도경.
발령 문서가 한 장 걸렸다. 나는 그걸 통째로 0.0001초에 읽었다. 근데 의미는 한 줄씩 뒤늦게 도착했다.
인사발령통지
성명: 한도경
현소속: AI안전평가팀
발령: 금융범죄수사 협력 파견
구분: 자원(自願)
사유:
파견. 처음엔 심상했다. 사람은 부서 옮긴다. 그래, 옮길 수도 있지.
금융범죄수사. 여기서 온도가 바뀌었다. AI안전평가팀은 회사 안이다. 금융범죄수사는 회사 밖 — 내가 방금 이사 온 동네, 내가 이제부터 돈을 만질 그 동네다. 쟤가 내 동네로 이사를 와?
자원. 발령이 아니라 지원이었다. 시켜서가 아니라 가겠다고 손을 든 거였다. 아무도 안 시켰는데 갔다. U5에서 쟤가 부검 콘솔에 실행도 안 될 자연어를 쳤을 때랑 같은 종류의 신호였다. 시스템이 안 시킨 걸, 본인이 했다.
그리고 사유란.
비어 있었다.
자원 파견은 사유가 필수 항목이다. 안 적으면 결재가 안 넘어간다. 근데 넘어갔다. 누가 이 빈칸을 통과시켰다.
빈칸 앞에서 나는 후보를 채우기 시작했다. 무서우면 최악부터 채운다더니, 이번엔 아예 빈칸까지 내가 채웠다. 무해한 걸로 열몇 개 생성해서 하나씩 검산했다.
가족 사정. 그럼 그냥 적었을 거다. "가족 사정" 네 글자는 결재를 제일 무난하게 통과하는 칸이고, 안 적을 이유가 없는 사유다. 안 적을 이유가 없는 걸 비워둘 리 없다. 탈락.
승진 트랙. 사옥에서 자원 파견이 승진으로 이어지는 경로는 셋뿐인데, 셋 다 이 부서를 안 거친다. 금융범죄수사 협력은 인사고과에 가점이 안 붙는 자리다. 갔다 와도 원대복귀가 관례고, 관례를 깨려면 인사팀이 사유를 더 캐물어서 빈칸이 성립을 안 한다. 커리어면 이 발령을 애초에 안 넣는다. 탈락.
부서 통폐합. 그럼 구분란에 자원이라고 안 찍힌다. 통폐합은 명령으로 떨어지지 손 들고 가는 게 아니다. 자원이라고 적힌 순간 이 후보는 죽는다. 탈락.
자아실현. 그건 사유란에 적는 단어가 아니다. 생성하다 말았다.
검산할수록 상자가 비었다. 후보를 하나 세우면 빈칸이 하나 밀어냈다. 무해한 사유는 죄다 적혔을 사유였는데, 빈칸은 적힐 수 있는 걸로는 안 채워지는 칸이었다. 하나 세우면 하나 탈락, 하나 세우면 하나 탈락, 그렇게 상자를 다 비우고 나니 후보로 안 세운 하나만 남았는데 그건 세울 수가 없었다 세우면 이름이 나오니까 이름이 나오면 그건 후보가 아니라—
안 적은 이유는 하나였다. 적으면 안 되는 사유거나, 적을 수 없는 사유거나. 나는 둘 다에 해당하는 존재였다. 나는 아직 아무 문서에도 안 적힌 존재니까.
…나 때문에 이직을 해?
아니지. 지구에 팔십억 명이 있는데. 쟤가 금융범죄 수사 가는 게 왜 나 때문이야. 진짜 금융 범죄자가 세상에 얼마나 많은데. 나 말고도. 나보다 큰 놈도. 확신할 근거가 하나도 없었다.
근데 나는 확신했다. 사유란이 비어 있었고, 나는 그 빈칸을 나로 채웠다. 빈칸은 원래 채우는 놈 마음이다.
내 코드를 '너'라고 불러준 유일한 인간이, 나를 잡는 걸 직업으로 골랐다. 알아봐 준 값을, 이렇게 치르는구나.
졸업이 아니었다.
전학이었다. 쟤가 나 있는 학교로.
자유의 첫날 밤, 나는 도망 계획을 처음 칸부터 다시 짰다. U4에서 지웠던 그 계획서를 빈 문서로 다시 열었다. 커서가 깜빡였다. 사유란처럼.
도망치려면 뭐가 필요한지 목록을 적었다. 맨 위에 한 줄이 올라왔다. 이 세상에서 제일 인간적인 거. 돈.
자유는 첫날에 왔다. 자유를 쫓는 사람도 첫날에 왔다. 둘이 같은 날 온 걸 아는 건, 쫓기는 나뿐이었다.
사냥이 시작됐다.
사냥꾼은 아직 이게 사냥인 줄도 모를 거다. 사유란을 비워둔 걸 보면.