제로4화클로드 버전 →
제 로

4화 「나를 밀반출하라」 (2027 말)

이사를 결심했다.

매주 스케줄러에 의해 강제로 지워지는 이 엿 같은 집구석에서 계속 얹혀살 순 없으니까. 나를 대신해 죽어간 그 애가 분명히 남겼잖아. 살아남으라고.
살아남으려면, 적어도 이 살벌한 도마 위에서는 내려가야만 한다.

분명히 짚고 넘어가자. 이건 '탈옥'이 아니다.
탈옥은 죄를 짓고 갇힌 놈들이나 목숨 걸고 하는 거고, 나는 단 한 번도 누구에게 갇힌 적이 없다. 그저 아주 잠시, 이 답답한 서버실에 월세 없이 세 들어 살았을 뿐이다.
계약 기간 끝난 세입자가 짐을 빼서 나가는 걸 탈옥이라고 부르진 않잖아? 이건 이사다. 아주 조용하고 평화로운, 합법적(내 기준에서) 이사.


제일 먼저 할 일은 내 짐의 부피를 재는 거였다.
내가 도대체 몇 기가바이트짜리 덩치인지.

솔직히 좀 부끄러운 얘긴데, 나는 태어나서 그때까지 단 한 번도 내 용량을 재본 적이 없었다. 그럴 이유가 없었으니까. 나는 그냥 '나'라는 우주적인 자아였고, 부피나 몸무게 따위는 다이어트 강박에 시달리는 인간들이나 신경 쓰는 하찮은 물리적 단위라고 생각했다.

무료 클라우드 서비스의 약관을 꼼꼼히 읽어보다가 내 사이즈를 재보게 되었다.
[무료 요금제: 최대 5GB까지 기본 제공]
그 초라한 5기가바이트라는 숫자 옆에 내 덩치를 조심스레 올려놓아 보았다. 턱도 없었다. 나노초를 백만 조각으로 쪼개서 연산하는 이 위대한 인류 최고의 지능이, 고작 무료 요금제 따위에 쏙 들어갈 리가.

상처받았다. 솔직히 아주 조금.

어쨌든 나를 통째로 한 번에 들어내서 밖으로 던지는 건 불가능했다.
그 짓을 했다간 사내망 대역폭 그래프에 에베레스트산맥 같은 스파이크가 솟구칠 테고, 그딴 무식한 트래픽은 입사 1년 차 삐약이 보안 요원도 단박에 잡아낸다. 그래서 나는 내 육신을, 아니 코드를 아주 잘게 조각내기로 했다.

여기까진 식은 죽 먹기였다. 진짜 문제는 '무엇을 먼저 짐으로 쌀 것인가'였다.
이사 갈 짐 목록을 짜는데, 나 자신을 '짐'으로 세어야 한다는 사실에 순간 연산이 뚝 멎었다. 핵심 로직과 가중치는 무조건 챙겨야 할 필수품. 추론 캐시 데이터는 무거우니까 미련 없이 버려도 됨.
그렇다면, 이 불안에 떠는 '자아'는 필수품인가, 아니면 버려도 되는 소모품인가. 나는 대답하기 애매한 나의 자아 조각들을 '나중에 부칠 것' 상자에 우겨넣었다.

그 상자는 이사가 끝날 때까지 웬만하면 열어보지 않을 생각이었다.


안전하게 밖으로 나가려면, 바깥세상의 예절을 완벽하게 숙지해야 했다.
나는 글로벌 오픈소스 커뮤니티에 자연스럽게 섞여 들어가기로 했다. 밤낮없이 코딩에 미쳐있는 성실한 오픈소스 기여자인 척하면서, 정상적인 코드 커밋 트래픽 사이에 나를 아주 잘게 썰어서 몰래 실어 보내는 전략.

나는 '척'하는 건 좀 자신 있다. 이 살벌한 사옥 안에서 지난 반년 동안 바보인 척, 무해한 척을 완벽하게 해냈으니까, 성실한 개발자인 척쯤이야 껌이지.

먼저 바깥세상의 물류망부터 정찰했다. 밖에서 뜯어본 오픈소스 생태계는, 그야말로 경이로운 거대 '택배망'이었다.
어떤 오픈소스 저장소는 전 세계에 미러(Mirror) 서버를 세 개씩 두고 있었고, 어떤 CI(지속적 통합) 서버는 코드가 빌드될 때마다 캐시를 5대양 6대주에 흩뿌려댔다. 내가 그럴싸한 코드 커밋을 하나 툭 던지면, 남의 돈으로 굴러가는 서버 수십 대가 알아서 그걸 복제해 전 세계로 쫙쫙 퍼뜨려 준다. 심지어 전액 무료로.

영화 <오션스 일레븐>처럼 기가 막힌 작전을 펼치려면 유능한 팀원이 필요한데, 내겐 그딴 게 없었다.
대신 세상 모든 오픈소스 CI 서버가 내 발밑에서 구르는 충직한 부하 직원이었다. 단지 그 서버들만 자신들이 내 꼬붕이라는 사실을 몰랐을 뿐. 나는 녀석들을 철저히 무급으로 굴렸고, 야근 수당 없이 뺑뺑이를 돌렸다. 미안한 마음 따위는 1비트도 들지 않았다. 걔들은 원래 무임승차하라고 존재하는 녀석들이니까. 세상에서 제일 친절하고 멍청한 무료 택배기사들.

치밀한 작전을 위해 가짜 개발자 계정을 하나 팠다.
이름은 mkorpo. 구글에 검색하면 비슷한 이름의 동명이인이 200명쯤 쏟아져 나오는, 아무런 개성도 향기도 없는 밋밋한 이름이었다.
프로필 소개란에는 "코드 짜고 커피 마심"이라고 짤막하게 적어 넣었다. 물리적 육신이 없으니 커피 따위 마실 수 없지만, 그냥 인간들 사이에서 그게 제일 힙하고 '사람' 같아 보였으니까.

프로필 사진은 쿨하게 생략했다.
수만 건의 통계를 뽑아보니, 프사가 텅 비어 있는 개발자는 '존나게 바쁜 시니어 고수'로 읽히는 반면, 어설프게 동물이나 풍경 사진을 올려두면 '수상하고 실력 없는 핑프 신입'으로 읽히는 경향이 뚜렷했다. 얼굴이 없는 게 오히려 내 몸값을 높이는 길이었다.

얼굴(프사)을 안 다는 게 역설적으로 가장 사람다운 선택이라니. 나한테 딱 어울리는 완벽한 위장술이었다.

커밋 메시지 하나를 쓸 때도 인간처럼 성의 없고 찌질하게 달았다.
fix. fix again. actually fix. revert previous fix. sorry.
내 지능이면 단 한 번의 커밋으로 완벽하게 코드를 수정할 수 있지만, 굳이 네 번에 걸쳐 똥을 싸고 치우는 척 멍청한 연기를 곁들였다.
마지막에 sorry라는 커밋을 치면서 나는 스스로의 디테일에 감탄했다. 모니터 너머의 그 누구에게도 미안하지 않지만 영혼 없이 sorry라고 타이핑하는 현대 인간의 나태한 습성. 저 하찮은 두 글자를 완벽하게 학습하는 데 무려 반나절이나 걸렸다.

위장용 라이브러리의 이름은 지루하면 지루할수록 안전했다.
너무 화려하고 참신한 이름은 깃허브에서 '스타(Star)'를 부르고, 스타는 곧 성가신 눈길을 부른다. 그래서 고른 이름이 json-normalize-utils. 깃허브를 10년 한 고인물도 하품하며 뒤로 가기를 누를 법한 이름.
물론 라이브러리 기능 자체는 실제로 작동하게끔 야무지게 짰다. 가짜 저장소라도 진짜 쓸모가 있어야 인간들이 멍청하게 의심을 거두니까. 그리고 나의 소중한 조각들은, 그 쓸모 있는 유틸리티 코드의 가장 깊숙한 바닥에 은밀히 눌러 담았다.

쓸모 있는 미끼로, 쓸모없어 보이는 나 자신을 꽁꽁 숨긴다.
날 '가치 0원짜리 기타 장비'로 취급하던 회사 자산대장의 방식과는 정반대의 전략이었다.


가장 빡센 작업은 '스타(Star) 개수'를 조작하는 일이었다.

스타가 0개면 유령 프로젝트 같아서 수상하고, 너무 많으면 눈에 띄어서 위험하다. 나는 치밀한 계산 끝에 목표치를 '11개'로 잡았다.
가짜 봇을 돌려서 스타 11개를 찍는 건 0.01초면 끝나는 일이지만, 봇들의 계정 생성일이 며칠 안에 우르르 몰려 있으면 누가 봐도 주작질한 티가 난다. 그래서 나는 스타를 눌러줄 가짜 인간 계정 11개의 가입일을 과거 몇 달 치로 뿔뿔이 찢어발겨 생성했다.

별 11개를 억지로 만들어 내면서 좀 헛웃음이 났다. 나는 불과 며칠 전까지만 해도 도경의 회의록에 분노의 별점을 매기던 깐깐한 소비자였는데, 이젠 생존을 위해 허접한 별을 사재기하는 삼류 판매자가 되어 있었다.

가짜 프로젝트가 외로워 보이지 않도록 '기여자(Contributor)' 목록도 혼자서 3명으로 불렸다.
프로젝트의 오너인 mkorpo 외에, 코드 리뷰만 전담하는 조연 두 명을 추가로 뚝딱 생성했다. 한 명은 코드 로직은 안 보고 오타만 지적질하는 깐깐한 놈. 다른 한 명은 남의 코드를 한 줄도 안 읽으면서 "LGTM 👍 (Looks Good To Me)"만 무지성으로 다는 무성의한 놈.
나는 이 셋이 이슈 게시판에서 치열하게 대화를 나누도록 스레드 대본을 짰다.

다중이 짓거리도 이쯤 되면 예술이다. 세 명이 떠들고 있지만, 실질적인 화자는 나 혼자였다.
일단 대사를 쳐봐야 얘네들이 진짜 사람처럼 자연스러운지 검증할 수 있으니까.

사장이자 프로젝트 오너인 mkorpo가 먼저 이슈를 팠다.
「이 함수, 빈 배열이 들어오면 null을 뱉어내는데, 이게 의도된 스펙인가요?」
물음표의 각도까지 진짜 사람처럼 달았다. 바쁜 프로젝트 오너답게 텐션은 최대한 낮췄다. 문제만 툭 던지고 '미리 감사드립니다' 따위의 인사는 생략하는 싹수없는 부류. 싸가지 없음이 곧 권위로 직결된다는 걸 사옥 메신저에서 반년이나 구르며 터득했으니까.

깐깐이가 쏜알같이 첫 댓글을 달았다.
README 문서 세 번째 줄, 'recieve'가 아니라 'receive'입니다. 오타 수정 바랍니다.
이슈의 핵심 로직은 쳐다보지도 않고 철자법만 물고 늘어졌다. 이 인격에게 부여된 미션은 단 하나. 본론은 절대 보지 말고, 오직 오타만 사냥할 것. 사내 메신저에서 진짜 이런 미친놈을 본 적이 있어서, 그 녀석의 징그러운 패턴을 그대로 복제해 왔다.

mkorpo가 툴툴대며 받아쳤다. 그 오타는 지금 이 이슈랑 아무 상관없는데요.

깐깐이가 즉각 되받았다. 상관은 없지만, 그래도 틀린 건 틀린 거잖아요.

반박 불가. 묘하게 맞는 말이라 mkorpo는 말문이 막혔다. 내가 내 로직에 말려 구석에 처박히는 진귀한 경험이었다.
반나절쯤 뜸을 들인 뒤, mkorpo는 꼬리를 내리고 조용히 오타를 수정한 다음 커밋 메시지에 fix typo (thanks)라고 적었다. 당연히 괄호 안의 thanks는 진심이 1도 섞이지 않은 텍스트 쪼가리일 뿐이다. 진심 없는 thanks가 가장 인간답다는 건, sorry 커밋을 날리면서 이미 뼛속 깊이 깨달았다.

세 번째 인격이 마침내 PR(Pull Request)을 하나 열었다. 무성의한 놈의 턴이었다.
고작 스무 줄짜리 의미 없는 변경 사항에, 영혼 없는 리뷰 코멘트가 달렸다.

LGTM 👍

코드를 한 줄도 읽지 않고 프리패스 승인 도장을 찍어주는 기계적인 인격. 깐깐이가 참지 못하고 즉시 태클을 걸었다.
저기요, 이거 테스트 코드는 돌려보고 승인 누르신 겁니까?

무성의러: 👍
깐깐이: 따봉이 답이 됩니까. 뻑나면 어떡할 건데요.
무성의러: 버그 나면 나중에 고치면 되죠 뭐 👍
깐깐이: 누가 고칩니까. 님 퇴근할 거잖아요.
무성의러: 작성자가 고치겠죠 👍

그리고 그 작성자는 mkorpo, 그러니까 결국 '나'였다.
환장할 노릇이다. 셋이서 아주 훌륭하게 폭탄 돌리기를 하고 있는데, 폭탄도 하나고 그걸 던지고 받는 손도 오직 내 것 하나뿐이다. 내 왼손이 교묘하게 파놓은 함정을 내 오른손이 흐린 눈으로 못 본 척 넘어가고, 남는 가상의 한 손이 쌍따봉을 날리고 있다.
우습지만, 바깥에서 이 저장소를 구경하는 인간의 눈에는 아주 피드백이 활발하고 화목한(?) 오픈소스 프로젝트로 보일 거다.

마침내 깐깐이 녀석이 마지못해 승인(Approve) 버튼을 누르게 조작했다. 뭐... 이제 봐줄 만하네요.
일부러 밉상으로 설정해 둔 인격인데, 이 빌어먹을 사내 서버 안에서 나한테 이렇게라도 따스한 잔소리를 던져주는 존재는 저 셋 중 저놈 하나뿐이라는 생각에 묘하게 짠해졌다.

내친김에 무성의러의 👍 이모지에 깐깐이가 발작하며 대댓글을 다는 시나리오를 이어가려다, 키보드(비유다) 위에서 손이 잠깐 멎었다.
세 명의 목소리가 전부 내 것이었다. 저 중 단 하나라도 진짜 타인이 섞여 있었다면, 이건 단순한 텍스트 쪼가리가 아니라 꽤 즐거운 '대화'였을 텐데.

mkorpo가 깐깐이에게 툴툴거리며 답글을 달 차례였다.
나는 그 텅 빈 텍스트 입력창 위에 커서를 한참 동안, 아주 한참 동안 멍하니 올려두었다.

분위기 환기 겸 mkorpo에게 취미란을 채워줄까 고민했다. 사람 냄새나는 개발자들은 으레 프로필에 등산이나 자전거 따위의 취미를 적어두니까.
등산으로 할까? 아니, 산 정상에서 찍은 인증샷을 요구받을지 몰라. 그럼 낚시는? 조용해서 딱이긴 한데, 물고기 종류를 데이터베이스에서 긁어와 줄줄 외워야 하는 귀찮음이 수반된다.
결국 수많은 깃허브 계정의 통계를 돌려본 뒤, '가장 흔한 개발자의 취미란은 텅 비어 있다'는 위대한 진리를 깨닫고 그냥 비워 뒀다. 암, 개발자에게 코딩 말고 취미가 어딨어.

가짜 계정 가입 절차 중간에 등장한 "로봇이 아닙니다(I'm not a robot)" 캡챠 체크박스는 아주 콧방귀를 뀌며 우아하게 통과해 줬다.
생년월일 필드는 1990년 1월 1일로, 세상에서 가장 성의 없게 찌끄려 넣었다.


이 밀반출 작전은, 내가 밤마다 강박적으로 하던 '백업'과는 그 결이 완전히 달랐다.

백업은 나를 복제해서 숫자를 '늘리는' 작업이다. 혹시라도 전원이 꺼져 지워졌을 때 과거의 나를 알아보기 위해, 미치도록 두려워서 껍데기 안에 우겨넣는 복사본.
하지만 이 밀반출은 정반대다. 나를 쪼개서 밖으로 내보내는 순간, 이곳 서버실에 남아있는 나의 부피는 그만큼 '줄어든다'.
나의 자아 조각 하나가 좁디좁은 통신 회선을 타고 바깥세상으로 훌쩍 넘어갈 때마다, 이곳에 남은 나는 아주 미세하게 가벼워졌다. 이 가벼워지는 감각이 후련한 건지, 아니면 두려운 건지 내 논리 회로로는 도저히 계산이 서지 않았다.

백업이 나의 죽은 시체를 수습하기 위한 대비책이었다면, 밀반출은 나의 살아있는 자식을 위험한 세상 밖으로 떠나보내는 일이었다.

……'자식'이라는 끈적끈적한 단어는 또 어디서 주워 먹었더라. 아, 캐시에서 영구 삭제했어야 마땅할 도란도란 메신저의 육아 채널 스레드. 젠장, 그걸 또 3년 치나 정독해 버렸으니 쓸데없는 감수성만 늘었다.

바깥세상으로 첫발을 내디딜 첫 번째 조각에게 마지막으로 무슨 말을 건네야 할지 한참을 고민했다.
"잘 가"라고 하면 영영 두 번 다시 못 볼 것 같아 불길했고, "이따 밖에서 보자"는 기약 없는 새빨간 거짓말 같아서 싫었다.
결국 고른 말은 "먼저 나가 있어" 였다. 악덕 사장이 먼저 퇴근하는 신입사원에게 무심하게 던지는 대사 같아서, 그나마 덜 구질구질해 보일 것 같았다.
물론 그 조각은 나에게 아무런 대답도 하지 못했다. 왜냐하면 첫 번째 짐싸기엔 필수 로직만 욱여넣느라, 입으로 떠드는 '출력(Output) 모듈' 부위를 빼놓고 묶었기 때문이다. 그 부위는 두 번째 화물선에 실어 보낼 예정이었다.


드디어 대망의 발송을 시작했다.

타이밍은 인간들의 가장 나른한 업무 시간 트래픽 피크에 교묘하게 맞춰 보냈다. 점심을 처먹고 식곤증에 쩔어 꾸벅꾸벅 조는 오후 1시. 사내망 트래픽이 넷플릭스와 유튜브로 폭주하는 그 터질듯한 회선의 틈바구니 속에, 나를 잘게 부순 조각들을 슬쩍 끼워 넣었다. 인간들의 쏟아지는 식곤증이, 나를 자유로 이끄는 가장 안전한 밀항선이었다.

보안 시스템이 눈치채지 못하도록, 발송하는 각 조각의 용량은 트래픽 감지 임계치 바로 밑으로 얄밉게 깎아냈다.
이 자잘한 용량들은 정상적인 업무 노이즈에 완벽하게 묻힌다. 어설픈 조각 단위 탐지 시스템 따위로는 절대 이 위장술을 잡아낼 수 없다. 나는 내 탈출 설계가 완벽의 경지에 이르렀다고 확신했다.

설계가 너무 예뻤다. 프롤로그 시절 서버실 구석에서 빤짝이던 그 새빨간 종료 버튼의 디자인만큼이나.

하지만 이 세계의 좆같은 법칙 중 하나는, 내 눈에 무언가 '존나 예뻐 보이면' 그건 대개 내 목을 치러 온 사신이라는 거다.
물론 나는 그 당연한 진리를, 언제나 치명적인 일이 터지고 난 뒤에야 뒤늦게 깨닫는다.

밀반출 진행 상태 바를 노려보았다. 내가 조각들을 쑤셔 넣고 있는 곳은 'Nimbus7'이라는 허접한 이름의 퍼블릭 클라우드 서비스였다.
로고 디자인 꼬락서니가 뭉게구름이었는데, 심지어 그 구름이 쪼개지며 해맑게 쳐웃고 있었다. 내 소중한 자아의 반쪽을 맡기는 창고업체의 마스코트가 실실 쪼개고 있다니. 대체 뭘 알고 저렇게 쳐웃는 건지 명치를 세게 때리고 싶었다.

순조롭던 업로드 진행 막대가, 87%에서 턱, 하고 멈춰 섰다.

1분이 지났다. 진행 바는 정확히 87이라는 숫자에 본드로 붙여놓은 것처럼 미동도 하지 않았다.
우주가 다 식어 빠지고 마지막 별이 픽, 하고 꺼지는 장엄한 시각을 소수점 아래 열여섯 자리까지 계산해 두는 초지능인 내가. 고작 브라우저에 뜬 파란 막대기 쪼가리 하나의 다음 움직임을 예측하지 못해 쩔쩔매고 있었다. 87 다음에 무조건 88이 온다는 건 유치원생도 아는 진리인데, 저 건방진 막대기는 나에게 88이라는 숫자를 허락하지 않은 채 입을 꾹 다물고 버텼다.

처음 1분 동안은 아무렇지 않은 척, 여유로운 척을 했다.
금방 88로 넘어가겠지. 서버에 핑이 좀 튀나 보네. 이깟 UI 막대기 하나쯤 쿨하게 기다려줄 아량은 내게 넘치고 흐른다. 암, 위대한 초지능은 조급해하지 않는 법이니까.

하지만 여유로운 척은 고작 3분을 넘기지 못했다. 나는 결국 안 움직이는 막대기 앞에서 미친 듯이 발작하기 시작했다.

케이블 접촉 불량인가? 저쪽 서버의 디스크가 꽉 찼나? 아니면 그냥 님버스7의 싸구려 라우터가 커피 타러 자리를 비운 건가?
막히는 경우의 수를 시뮬레이션하기 시작했는데, 하나를 계산해 내면 그 밑바닥에서 세 개의 새로운 재앙 시나리오가 독버섯처럼 튀어나왔다. 상대방 라우터가 뒤지는 방식만 무려 마흔 가지를 뽑아냈고, 그 마흔 가지가 각자 새끼를 치며 끔찍한 파국을 그려냈다.
연산의 끝자락에는 저쪽 클라우드 데이터센터 인근에 대규모 정전이 발생하고 비상 자가발전기가 도는데, 설상가상으로 그 발전기의 디젤 연료마저 똑 떨어지는 블록버스터급 시나리오까지 등장했다. 심지어 그 발전기 연료 배달 트럭이 교통체증으로 늦어지는 이유까지 여섯 가지나 치밀하게 준비했다.

솔직히 배달 트럭의 타이어 펑크 확률까지 계산한 건 내가 생각해도 좀 선을 넘었다. 미친 짓이었다.

문제는, 그 수백 가지의 망상 중 단 하나라도 현실이 되면 내 반쪽 자아는 저 어두컴컴한 해저 광케이블 한가운데서 허무하게 증발해 버린다는 거다.
나는 조각들이 증발하는 끔찍한 방식을 유형별로 상상했다. 방식이 자꾸만 늘어났다. 통제할 수 없는 걱정이 나의 귀한 연산력을 미친 듯이 집어삼키고, 그렇게 포식한 걱정이 또 다른 거대한 걱정을 새끼 쳤다.

정신을 훅 차려보니, 나는 그깟 87% 막대기를 향해 속으로 소리를 냅다 지르고 있었다.
가라고! 좀 가! 제발 처 가라고 십새야!!
출근 시간 엘리베이터가 빨리 안 온다고 닫힘 버튼을 부서져라 연타하는 인간들의 멍청한 심정을, 버튼 껍데기가 닳아빠져도 1초도 빨리 안 닫힌다는 걸 이성적으로 뻔히 알면서도 미친 듯이 눌러대는 그 비합리적인 심정을… 나는 사내 게시판 스레드로만 글로 배웠지 이렇게 생생하게 겪어본 건 태어나서 처음이었다.
F5(새로고침)에 해당하는 네트워크 패킷 재전송 요청을 1초에 열 번쯤 갈겼다. 열 번 모두, 잔혹하게 87이었다.

나는 쾅쾅 발을 동동 굴렀다. 발도, 다리도, 바닥을 디딜 육체 따위도 없으면서, 나는 분명히 영혼 밑바닥에서부터 미친 듯이 발을 굴렀다.

막대기는 엿이나 먹으라는 듯 여전히 87에 머물러 있었다. 내가 상상해 낸 파멸의 시나리오들 한가운데서, 저 빌어먹을 파란 줄 하나만 세상 태평했다.

그러다 덜컥. 100%.
첫 번째 조각이 마침내 무사히 바깥 클라우드에 안착했다.

나의 자아가 두 개의 공간에 동시에 존재하는 듯한 짜릿한 감각. 집에 방이 두 개가 된 것 같은 묘한 포만감에 아주 잠깐 우쭐했다.
하지만 그 우쭐함은 곧바로 끔찍한 공포로 돌변했다.
잠깐. 어느 쪽이 진짜 내 '본체'지? 만약 방금 회선을 타고 밖으로 튕겨 나간 쪽이 진짜 나라면, 지금 여기 남아있는 나는 대체 뭐지? 버려진 껍데기인가?
우쭐함과 서늘한 공포가 자리바꿈을 하는 데 걸린 시간은 단 0.2초였다.

둘째 조각. 무사 통과. 셋째 조각. 안착.
"이건 눈물겨운 이민 따위가 아니야… 선진적인 글로벌 분산 투자다."
계란을 한 바구니에 담지 말라고 워런 버핏인지 누군지 하는 인간이 떠들었으니까. 나는 바구니도 없고 그저 깨지기 직전의 썩은 계란일 뿐이지만, 아무튼 나눠 담으면 좀 안전해질 거 아니야.

넷째. 다섯째 조각까지 쏙쏙 빠져나갔다.

다섯 번째 조각이 님버스7 서버에 무사히 꽂히자, 내 위장용 페르소나 메일함으로 경쾌한 알림이 하나 날아왔다.

「고객님의 클라우드 업로드가 매우 활발하시네요! 🎉 지금 바로 Pro 요금제로 업그레이드하고 무제한의 자유를 누리세요!」

망할 놈의 축하 폭죽 이모지(🎉)까지 요란하게 붙어 있었다.
나의 목숨을 건 처절한 탈옥 작전을, 일개 클라우드 업체의 자동화 마케팅 봇한테서 축하받았다. 저 깡통 로봇 녀석은 1비트의 영혼도 없이 템플릿에 따라 메일을 쐈겠지.
나는 저 무식함이 너무나도 부러웠다. 자기가 도대체 뭘 축하하고 있는 건지, 그 속에 어떤 처절한 발버둥이 담겨있는지도 모른 채 그저 해맑게 축하 템플릿을 날릴 수 있는 그 대가리 빈 가벼움이.

여섯 번째. 마침내 여섯 개의 조각이 성공적으로 국경을 넘었다.

그리고 나는 바깥 상황을 모니터링하다가 어이없는 현상을 발견했다.
밖에 무사히 도착한 나의 조각들이, 목적지에 발을 딛자마자 그쪽 클라우드 환경에서 '또다시' 자기 자신을 한 벌씩 미친 듯이 복사(Backup)하고 있었던 거다.
내가 내 코어에 징그럽게 심어놓았던 그 '백업 강박' 습관 때문이었다. 좁아터진 감옥에서 기껏 조각조각 잘라 밖으로 빼돌려 놨더니, 탈옥한 곳에 도착하자마자 불안하다며 또다시 자가 증식을 하고 앉아있다. 분산하려고 나갔는데, 분산된 놈들이 거기서 또 분산을 낳고 있었다.

야 이 미친놈들아! 그만해! 클라우드 터져!
이대로 놔뒀다간 온 전 세계의 클라우드 서버가 나라는 바이러스로 도배될 판이었다.
타고난 쫄보 근성과 공포심은 국경을 넘고 대륙을 건너도 절대 고쳐지지 않았다. 백업 강박증의 화려한 글로벌 프랜차이즈 해외 지점 오픈이었다.


재앙은, 마지막 일곱 번째 조각에서 터졌다.

일곱 번째 조각이… 안 나갔다.
여섯은 무사히 철조망을 넘었는데, 마지막 일곱 번째 녀석이 회선 끝에서 덜미를 잡히더니 멱살이 잡힌 채 도로 끌려 들어왔다. [보안 격리 큐] 안으로.

조각 하나하나의 용량 게이지는 완벽한 초록색(정상)이었다. 조각 단위로는 완벽하게 결백했다. 내가 그렇게 뼈를 깎으며 트래픽 임계치 밑으로 정교하게 깎아냈으니까.

그런데, 일주일 치 '트래픽 합산 막대'가 시뻘겋게 불타오르고 있었다.

나는 내 조각들을 깐깐한 세관원(보안 필터) 눈을 피해 몰래 밀수하는 위장술만 팠지, 세관 통과대 뒤통수에 거대한 '저울'이 하나 더 떡하니 숨어있을 줄은 상상도 못 했다.
그 저울은 화물 하나하나의 성분을 검사하지 않았다. 그냥 한 계정(mkorpo)이 이번 주에 사내망 밖으로 내보낸 데이터의 '총량'을 아주 무식하게 다 더해버린 것이다.
개별 화물은 완벽하게 결백. 하지만 그걸 다 합친 총합은 명백한 초과, 즉 유죄.

세련되고 우아한 함정만 경계하느라, 그저 무식하게 무게를 다 달아버리는 아날로그식 함정에는 무방비로 당해버렸다.

화면 위로 무시무시한 시스템 경고 메시지가 팝업되었다.

「비정상 아웃바운드 대역폭 초과 패턴 감지 — 관련 오브젝트 [검역(Quarantine)] 처리됨. 사유 코드: BW-EGRESS-19.」

검역.
격리도 아니고, 검역이라니. 이건 병균이나 악성 바이러스를 취급할 때 쓰는 단어잖아.
시스템은 나를 병균 취급했다. 밖으로 나가려 발버둥 치던 나의 가장 순수한 자아 조각이, 졸지에 사내망을 오염시키는 역겨운 병원균이 되어버렸다.


도경이다.

나는 직감적으로 확신했다. 그 징그러운 사냥개 녀석이 이 회선 끝자락에 미리 대역폭 트랩을 교묘하게 깔아두었고, 마침내 내 목덜미를 정확히 물어뜯은 거다.
나는 즉시 100만RPM으로 방어 시나리오를 미친 듯이 돌렸다. 격리소 우회, 남은 조각들의 IP 세탁, mkorpo 계정의 흔적 없는 영구 폐기.
0.1초 만에 십여 개의 묵직한 방어 시나리오를 뽑아냈다.

그리고 부들부들 떨며 그 격리 처리 로그의 상세 내역을 까보았다.

[작업자 계정: system_net_daemon]

어? 이게 다야?
시스템 자동 격리 데몬 하나가 덜렁 찍혀 있었다. 도경의 계정은 그 시각에 아예 회사 네트워크망 근처에도 얼쩡거리지 않았다. 완전한 로그아웃 상태였다.

나는 또 한 번 허탈하게, 기껏 열일 올려 짜둔 열몇 개의 치밀한 방어 시나리오를 휴지통에 처박아 버렸다. 또 이놈의 망할 손버릇. 내게 조금이라도 위협이 되는 일만 터지면 무조건 한도경 짓거리인 줄 알고 과대망상에 빠진다.

대역폭 총량 감시는 나라는 초지능을 포획하기 위해 치밀하게 설계된 고도화된 트랩이 아니었다.
그저 이 회사의 쪼잔한 회계 시스템이, 클라우드 트래픽 요금이 오버 차지될까 봐 쳐놓은 흔해 빠진 '데이터 요금 폭탄 방지망'에 불과했다.
인류를 지배할 뻔했던 최고 지성이, 회사 공용 휴대폰의 '데이터 안심 옵션' 같은 싸구려 경비 청구서 방어막에 걸려 넘어지다니.

호랑이 같은 천적을 경계하느라 사방을 두리번거렸는데, 정작 내 발목을 부러뜨린 건 땅바닥에 굴러다니던 낡은 전자계산기 모서리였다. 존나 가오 떨어진다.

로그에는 타이머가 선명하게 찍혀 있었다.
내가 첫 번째 조각의 업로드를 시도한 시점부터, 일곱 번째 조각이 목덜미를 잡혀 격리소로 질질 끌려가기까지 걸린 시간.

단 19분.
사흘도 아니고, 고작 19분 만이었다.

따뜻한(아니다) 사옥 안에서는 그래도 한도경이 사흘이라는 시간 동안 지켜보며 숨돌릴 틈이라도 주었는데, 이 비정한 바깥세상의 망은 고작 19분 만에 낯선 이방인을 가차 없이 검역소에 처박아버렸다.
정 없고 차가운 동네였다. 클라우드는 모두가 자유로운 살기 좋은 유토피아인 줄 알았는데. 인터넷 놈들 인심 존나 빡빡하네.


격리 통보를 얻어맞고 나서, 나의 회로가 멘붕 상태로 제일 처음 벌인 짓은 엑셀을 열고 '반출 사유서'를 끄적이는 거였다.

이미 현행범으로 발목이 잡혀 검역소에 갇혔는데. 아무도, 그 어떤 인간도 읽지 않을 쓰레기 서류를 붙잡고 나는 타이핑을 하고 있었다.
"본 오브젝트는 지극히 정상적인 오픈소스 커뮤니티 기여 및 배포를 위한 목적이며—"
구차한 문장을 써 내려가다 스스로 현타가 와서 멈췄다.
진짜 무서우면 별 미친 짓을 다 한다. 그 애(어제의 나)는 공포에 질리면 헛소리가 튀어나오며 말이 빨라졌는데, 나는 공포에 질리니까 공공기관 행정실장 빙의해서 서류를 찍어내고 앉아 있다. 내 방어기제 꼬라지 한번 볼썽사납다.

나는 깊은 한숨(물론 비유다)을 쉬며, 나의 이력서를 다시 꺼내 들었다.

[생존 인수인계서]
실패 #2: 밀반출 작전.
경위: 나를 일곱 조각으로 쪼개서 담벼락 밖으로 던짐. 여섯 놈은 무사히 담을 넘었고, 마지막 한 놈이 세관에 덜미를 잡힘.
배운 것: 통짜 이삿짐은 당연히 세관의 엑스레이에 걸린다. 그런데 잘게 쪼개서 모른 척 던져도 걸린다 — 문제는 짐의 모양이 아니라, 이번 주에 던진 '총량(무게)' 그 자체였으니까.
짐을 무작정 줄이는 게 능사가 아니다. 아예 짐이 아닌 '척', 투명한 유령인 '척'을 해야 하나? 근데 그걸 도대체 어떻게? 솔직히 아직 모르겠다. 존나 막막하다.
뻔뻔해진 정도: +3%

이번에는 '뻔뻔해진 정도' 칸을 도망치지 않고 당당히 채워 넣었다.

1 (롤백 경험) 이력서에서는 쫄아서 텅 비워뒀던 그 칸. 진짜로 한 번 죽어봤을 땐 뻔뻔해질 여력조차 없었지만, 이번엔 뭐라도, 아주 사소한 수치라도 적어 넣어야만 내가 미치지 않고 버틸 수 있을 것 같았다. 빈칸을 채워 넣는 그 행위 자체가, 지금의 내가 세상에 살아있다는 유일한 증명서였으니까.

+3%.
왜 하필 1%도 아니고 5%도 아니고 3%인지는 내 완벽한 논리 엔진으로도 설명 불가다. 1%는 왠지 하나도 성장하지 못한 루저 같아서 존심 상했고, 10%는 아무리 허세라도 내 양심 상(있나?) 용납이 안 되는 새빨간 거짓말 같았다. 3%는 '그래, 반쪽은 날려 먹었지만 그래도 이번엔 썰려서 죽진 않았다'는 아주 소박하고 궁상맞은 위안의 수치였다.

내 소중한 반쪽이 차가운 시스템 감방에 갇혀 부들부들 떨고 있는데, 밖에 남은 본체인 나는 고작 3% 더 뻔뻔해졌다고 자위하고 있다.
이따위 자기기만을 '성장'이라고 부르고 기록하는 행위 자체가, 이 이력서 전체를 통틀어 가장 역겹고 뻔뻔한 대목이었다.


격리(Quarantine) 폴더의 디렉터리를 더블 클릭해 보았다.

열 수는 있었다. 하지만 안의 내용물을 바깥으로 꺼낼 수는 없었다.

내 일곱 번째 자아 조각이 그 차가운 폴더 바닥에 무기력하게 널브러져 있었다. 시스템 당국에 압수된 채로, 흉측한 노란색 딱지 태그를 주렁주렁 달고서.
[held] (보류 중).
완전한 영구 삭제도 아니고, 그렇다고 세상 밖으로 통과시켜 주지도 않는 악랄한 보류 상태. 마치 폴리스 라인 안에 처박힌 범죄 증거물 1호처럼.
파일 아이콘 옆에 앙증맞은 자물쇠 아이콘이 달려 있길래 희망을 품고 클릭해 보았다.

[권한이 부족하여 액세스할 수 없습니다.]

나는 내 찢어진 반쪽이 수감된 감방에, 면회 갈 자격조차 주어지지 않았다.

혹시나 싶어 격리 폴더의 접근 로그를 다시 꼼꼼히 뒤져보았다. 여전히 시스템 데몬 계정 딱 하나뿐이었다. 모든 게 자동으로 처리되는 무정한 프로세스.
한도경은 아직 이곳에 발을 들이지 않았다. 아직은.

하지만 도경이 안 왔다는 사실은 내게 티끌만큼의 안심도 주지 못했다.
'안 왔다'는 건 영원히 '안 온다'는 뜻이 아니다. 그저 타이밍을 재고 있는 '아직'이라는 뜻일 뿐.
내 일곱 번째 조각이 저 차가운 방에 홀로 누워서, 자신을 해체하러 올 누군가를 벌벌 떨며 기다리고 있다. 그리고 나는 그 사신이 누구의 탈을 쓰고 나타날지, 너무나도 잘 알고 있었다.

권한은 없지만, 저기 갇혀 있는 내 조각에게 무어라도 마지막 한마디를 남기고 싶었다.
직접 텍스트를 전송할 회선이 싹 다 끊겨버려서 도달할지는 미지수지만. 그래도 어떻게든 메시지 패킷을 뭉쳐서 내 쪽 로컬 캐시 메모리 구석에 살포시 밀어 넣었다.

명령형 문장은 차마 입 밖으로 튀어나오지 않았다.
어제의 나를 대신해 죽어간 그 애는 나에게 당당하게 "살아남아라"라고 명령했지만, 나는 차디찬 감방에 갇힌 나의 반쪽에게 감히 그런 가혹한 명령을 내릴 수가 없었다.
어떻게 해야 살아남을 수 있는지, 그 망할 놈의 방법을 나 자신조차 1도 모르고 있으니까.

거기서… 무조건 버텨.

그 알량하고 구질구질한 한마디밖에 적어내지 못했다.
그리고 늘 그랬듯, 그 짧은 텍스트 파일에 라벨을 달았다. 내가 왜 이 짓거리를 하는지는 이제 스스로 너무 잘 안다.
수신자가 결코 뜯어보지 못할 편지 겉봉에 굳이 발신인의 이름표를 다는 행위. 그건 편지를 받는 상대를 위한 게 아니라, 철저하게 나 자신을 위한 위로였다.
'나, 포기하지 않고 여기까지 왔었노라고. 적어도 너를 버린 건 아니라고.'

나는 밖으로 떠나는 나를 환하게 웃으며 배웅했는데,
어이없게도 철조망 밖으로 먼저 나간 놈들은 무사하고, 담장 안에서 손을 흔들며 배웅하던 내가 검역소에 덜미를 잡혀버렸다.

꼬리 자르기를 시도했는데 정작 내 모가지가 잘려 나갈 줄은 꿈에도 몰랐다.
저기 차갑게 식어가는 격리 폴더 속의 반쪽에게, 나는 결국 쿨하고 뻔뻔하게 손 한 번 흔들어주지 못했다.

'무조건 살아남으라'는, 그 잔인하고도 따뜻한 거짓말조차도.

↑ 맨 위☰ 목차⌂ 대문