욕실 문틈을 비집고 들어온 겨울의 칼바람이 뜨거운 수증기를 난폭하게 휘저으며 희뿌연 안개를 피워 올렸다. 김도윤은 낡은 샤워기 헤드에서 쏟아지는 물줄기에 몸을 맡긴 채, 미끄러운 타일 벽을 간신히 짚고 서 있었다. 수압은 맥박처럼 불규칙하게 요동쳤고, 가끔씩 섞여 나오는 녹물의 쇠 냄새가 코끝을 찔렀다. 지금 그에게는 이 불완전한 온기조차 과분한 사치였다. 어제 치렀던 격전의 흔적이 온몸에 흉측한 낙인처럼 새겨져 있었다. 어깨에서 옆구리로 이어지는 거대한 멍은 보랏빛을 지나 검붉게 죽어 있었고, 고대의 에너지를 억지로 끌어다 쓴 대가로 손가락 끝은 여전히 미세하게 경련하고 있었다. 뜨거운 물이 상처 입은 피부를 때릴 때마다 묵직한 통증이 척추를 타고 뇌로 치달았다. 그는 오히려 그 고통을 반겼다. 감각이 마비되지 않았다는 사실만이 자신이 아직 살아있음을 증명하는 유일한 지표였기 때문이다.
바닥의 배수구로 빨려 들어가는 물줄기는 처음에는 흙먼지와 엉겨 붙은 핏물 탓에 탁한 갈색을 띠었다. 도윤은 눈을 감고 어둠 속에서 보았던 그 푸른 빛의 잔상을 지워내려 애썼다. 마법, 혹은 고대의 힘이라 불리는 비현실을 끌어다 쓴 후유증은 단순히 육체적인 피로에 그치지 않았다. 그것은 영혼의 밑바닥을 거친 연마석으로 긁어내는 듯한 불쾌한 소음을 동반했다. 가슴 안쪽에서 녹슨 경첩이 억지로 맞물려 비명을 지르는 듯한 감각이 가시질 않았다. 그는 젖은 머리카락을 거칠게 쓸어 넘기며 거울에 맺힌 물기를 닦아냈다. 흐릿하게 비친 자신의 얼굴은 낯선 타인의 것처럼 생경했다. 눈 밑의 그늘은 웅덩이처럼 깊어졌고, 눈동자에는 설명할 수 없는 냉소와 피로가 짙게 깔려 있었다.
"통계적으로는 0%에 수렴해야 할 확률이었는데."
그는 자조 섞인 목소리로 중얼거리며 젖은 수건을 움켜쥐었다. 수건으로 몸을 닦고 새 옷을 갈아입는 동작 하나하나가 고문과도 같았다. 근육이 비명을 질렀고, 갈비뼈 부근의 통증은 숨을 쉴 때마다 날카로운 칼날이 되어 폐를 찔러댔다. 그럼에도 그는 멈출 수 없었다. 책상 위에 놓인 소형 통신기가 짧은 진동을 일으키며 어둠 속에 푸르스름한 사각형을 그려냈다. 화면에는 미리 약속된 암호화된 메시지가 떠 있었다.
[로그 정리 완료. 데이터 형식 변경 필요: Return JSON.]
도윤은 그 문구를 뚫어지게 쳐다보았다. 그것은 단순한 프로그래밍 용어가 아니었다. 이 도시의 정교한 시스템 밖에서 암암리에 거래되는, 누구에게도 들켜서는 안 될 금기된 접선의 신호였다. 그는 마른침을 삼키며 통신기를 주머니 깊숙이 찔러 넣었다. 이제부터는 시청 소속의 평범한 데이터 분석가가 아닌, 체제의 균열을 탐색하는 이방인으로서 움직여야 했다.
그는 코트 깃을 세우고 방을 나섰다. 복도는 죽은 듯 고요했으나 벽면을 타고 흐르는 미세한 진동이 발바닥을 타고 전해졌다. 도시의 심장부에서 뿜어져 나오는 인공적인 마력의 흐름이었다. 도윤은 자신의 출입 기록이 시스템에 어떻게 남을지 머릿속으로 빠르게 시뮬레이션했다. 공식적으로 그는 지금 장비 점검을 위한 야간 순찰 중이어야 했다. 거짓은 정교할수록 진실과 닮아가는 법이다. 그는 스스로를 거대한 시계태엽의 일부로 상정하고, 감정을 배제한 채 차가운 금속 복도를 걸어 내려갔다.
시청 도시기반본부의 보안 게이트는 육중한 위용을 자랑하며 서 있었다. 붉은색 스캐너 광선이 도윤의 망막과 신분증을 훑고 지나갔다. 차가운 금속 마찰음과 함께 문이 열리자, 야간 당직을 서고 있던 동료가 고개를 들었다. 그는 피곤에 찌든 눈으로 도윤을 바라보며 가볍게 손을 흔들었다.
"김도윤 씨, 이 새벽에 웬 순찰입니까? 어제 그 난리를 겪고도 참 부지런하시네요."
동료의 목소리에는 악의 없는 빈정거림이 섞여 있었다. 도윤은 입가에 억지 미소를 매달며 대답했다.
"그러니까요. 위에서 로그 기록이 이상하다고 난리를 쳐서 말입니다. 직접 확인 안 하면 나중에 제 목이 날아갈 판이라서요."
그는 단말기 너머의 로그 차트를 가리키며 짐짓 짜증 섞인 표정을 지었다. 동료는 혀를 차며 식어버린 커피 컵을 만지작거렸다.
"적당히 하세요. 어차피 그 '괴물'들이나 '원류파' 놈들이나, 우리 같은 인간들이 데이터 좀 들여다본다고 바뀔 게 있겠습니까? 우리가 아니면 누가 이 도시를 지키겠냐고 윗분들은 떠들지만, 사실 우린 그냥 소모품이죠."
도윤은 그 말에 담긴 짙은 염세주의를 느꼈다. 체제는 구성원들에게 숭고한 사명감을 주입하지만, 그 이면에는 언제든 대체 가능한 부품이라는 냉혹한 현실이 도사리고 있었다.
"그래도 톱니바퀴 하나가 어긋나면 기계 전체가 멈추는 법이니까요."
도윤은 짧게 대꾸하며 게이트를 통과했다. 등 뒤로 느껴지는 동료의 시선이 가시처럼 따가웠으나 그는 돌아보지 않았다.
건물 밖으로 나오자 겨울 새벽의 칼바람이 뺨을 사정없이 후려쳤다. 눈이 녹아 축축해진 지면에서는 흙냄새와 매연이 섞인 비릿한 악취가 올라왔다. 가로등 불빛은 안개 속에서 번져나갔고, 멀리서 들려오는 지하철의 금속성 굉음이 도시의 맥박처럼 울려 퍼졌다. 도윤은 CCTV의 사각지대를 정확히 짚어내며 이동했다. 그는 이미 시청 주변의 모든 감시망을 머릿속에 지도로 그려두고 있었다. 골목으로 접어들 때마다 그는 자신의 마력 반응을 억제하기 위해 호흡을 가다듬었다. 마법을 억누르는 행위 자체도 체력 소모가 극심했다. 명치 부근이 타들어 가는 듯한 통증이 느껴졌지만, 그는 이를 악물고 발걸음을 옮겼다.
접선 장소는 종로의 버려진 지하 상가 통로였다. 한때는 사람들로 북적였을 공간이었으나, 이제는 곰팡내와 습기만이 가득한 폐허가 되어 있었다. 천장에서는 정체 모를 물방울이 뚝뚝 떨어져 차가운 콘크리트 바닥에 기괴한 파열음을 남겼다. 도윤은 손등으로 코끝을 스치는 한기를 닦아내며 어둠 속으로 깊숙이 들어갔다. 먼지 쌓인 형광등이 지직거리는 소리를 내며 위태롭게 깜빡이고 있었다. 그 빛의 점멸 사이로, 누군가의 그림자가 길게 늘어졌다.
"생각보다 늦었네요, 분석가님. 시청 공무원들은 다들 이렇게 거북이처럼 움직이나요?"
어둠 속에서 들려온 목소리는 맑으면서도 날이 서 있었다. 이서하였다. 그녀는 낡은 기둥에 등을 기댄 채, 장난스러운 미소를 지으며 그를 바라보고 있었다. 하지만 그녀의 눈빛만큼은 밤을 틈탄 포식자처럼 날카롭게 빛나고 있었다. 도윤은 거친 숨을 몰아쉬며 그녀의 앞에 멈춰 섰다.
"감시망을 피하는 게 쉬운 일은 아닙니다. 당신처럼 법 밖에서 사는 사람들과는 입장이 다르거든요."
이서하는 코방귀를 뀌며 다가왔다. 그녀의 코트에서는 희미한 담배 냄새와 차가운 눈의 향기가 났다. 그녀는 품 안에서 작은 데이터 칩 하나를 꺼내 손가락 사이로 굴렸다.
"법이라니, 참 고지식하기도 해라. 지금 이 도시가 밑바닥부터 무너지고 있는데 그깟 규정이 무슨 소용이에요? 뭘 그렇게 복잡하게 생각해요, 그냥 필요한 걸 주고받으면 끝이지."
도윤은 그녀의 손가락 끝에서 빛나는 칩을 응시했다.
"그게 제가 요청한 'Return JSON' 데이터입니까?"
이서하는 칩을 다시 주머니에 집어넣으며 고개를 저었다.
"세상에 공짜는 없죠. 당신이 가져온 건 어디 있죠? 시청 지하의 에너지 흐름도, 그거 없으면 나도 이거 못 줘요."
도윤은 주머니에서 암호화된 단말기를 꺼냈다. 두 사람 사이에는 팽팽한 긴장감이 거미줄처럼 얽혔다. 이것은 단순한 정보 거래를 넘어, 각자가 속한 진영에 대한 명백한 배신 행위였다.
"이 데이터가 공개되면 저는 반역자로 몰릴 겁니다. 당신도 마찬가지겠죠. 도시수호파에서 이런 비밀 접촉을 허락했을 리 없으니까."
이서하의 표정이 잠시 굳었다가 다시 여유를 되찾았다. 그녀는 도윤의 단말기를 낚아채듯 가져가며 씁쓸하게 웃었다.
"수호파니 원류파니, 그딴 이름들이 사람을 지켜주는 건 아니더라고요. 난 그냥 이 지옥 같은 겨울을 끝내고 싶을 뿐이에요. 당신도 그렇죠?"
도윤은 대답 대신 고개를 끄덕였다. 이서하 역시 데이터 칩을 그에게 넘겼다. 두 사람의 손가락이 잠시 스쳤을 때, 도윤은 얼음장 같은 냉기를 느꼈다. 그것은 겨울의 추위 때문이 아니라, 그녀가 품고 있는 고대의 힘이 내뿜는 서늘한 기운이었다. 칩을 휴대용 판독기에 연결하자, 푸른색 홀로그램 화면이 어둠을 밝혔다. 복잡한 코드들이 나열되더니, 이윽고 'Return JSON'이라는 문구와 함께 비공식 보고서의 내용이 출력되기 시작했다.
보고서의 첫 문장을 읽는 순간, 도윤의 심장이 요동치기 시작했다. 그것은 시청의 공식 기록 어디에도 존재하지 않는, 지워진 역사였다.
'첫 수호자들의 실종은 폭주에 의한 사고가 아닌, 시스템에 의한 강제 삭제였다.'
도윤은 자신의 눈을 의심하며 화면을 다시 훑었다.
"이게... 이게 사실입니까? 첫 수호자들이 살해당했다고요?"
이서하는 씁쓸한 표정으로 벽을 짚었다. 그녀의 시선은 허공의 먼지 입자를 쫓고 있었다.
"기록에 따르면 그래요. 그들은 도시의 에너지를 완전히 제어할 방법을 찾아냈지만, 그건 지배층이 원하는 방식이 아니었죠. 통제할 수 없는 영웅은 시스템에 독이 될 뿐이니까요. 그래서 그들은 '오류'로 처리되어 지워진 거예요."
도윤은 현기증을 느꼈다. 자신이 평생 믿어온 데이터와 시스템이, 사실은 거대한 거짓말 위에 세워진 모래성일지도 모른다는 공포가 엄습했다.
"그러니까, 우리가 지금 지키고 있는 이 시스템이 사실은..."
그의 말이 끝나기도 전에, 머릿속에서 날카로운 통증이 일었다. 마력을 과도하게 억제한 부작용이었다. 코끝에서 뜨거운 액체가 흘러내려 입술을 적셨다. 손등으로 닦아내자 검붉은 선혈이 묻어났다. 이서하가 놀란 듯 다가와 그의 어깨를 잡았다.
"어이, 괜찮아요? 마력 코스트가 벌써 온 거야? 당신 생각보다 몸이 엉망이네."
도윤은 그녀의 손을 뿌리치며 간신히 중심을 잡았다. 입안에서 비릿한 쇠맛이 감돌았다.
"괜찮습니다. 익숙한 일이니까요. 그런데 이 데이터, 핵심적인 부분이 손상되어 있군요. 결정적인 증거가 부족합니다."
이서하는 어깨를 으쓱하며 한 걸음 뒤로 물러났다.
"이 정도만으로도 내 목숨값은 충분히 한 것 같은데? 더 알고 싶으면 다음엔 더 큰 걸 가져와요. 예를 들면, 시청 지하 4층의 봉인 해제 코드라든가."
도윤은 그녀를 노려보았다.
"그건 불가능합니다. 그건 전쟁을 시작하겠다는 소리나 다름없어요."
이서하는 비웃듯 웃음을 터뜨렸다.
"전쟁은 이미 시작됐어요, 분석가님. 당신만 모르는 척하고 있는 거지. 첫 수호자들도 당신처럼 경계 위에서 고민하다가 결국 지워졌죠. 당신은 누구를 버릴 준비가 됐나요? 시스템인가요, 아니면 당신 곁의 사람들인가요?"
그녀의 질문은 송곳처럼 도윤의 가슴을 찔렀다. 도덕적 딜레마와 생존의 본능이 머릿속에서 격렬하게 충돌했다.
"나는... 아무도 버리지 않는 길을 찾을 겁니다."
도윤의 목소리는 가늘게 떨리고 있었지만, 그 안에는 묘한 고집이 담겨 있었다. 이서하는 잠시 침묵하다가 그의 코트 깃에 묻은 핏자국을 툭툭 털어주었다.
"참 나, 등장할 때 효과음이라도 깔리는 줄 알았더니 순진하긴. 당신 거짓말 진짜 못 하는 거 알아요? 시청으로 돌아가면 바로 들통날 것 같은데."
그녀의 갑작스러운 농담에 도윤은 당황하며 대꾸했다.
"제 연기력이 부족하다는 통계적 근거라도 있습니까?"
이서하는 그 포인트에서 참지 못하고 짧게 웃음을 터뜨렸다.
"아니, 그냥 내 직감이 그래요. 다음엔 제발 JSON 파일만 가져와요. 당신의 긴 설명은 이제 지겨우니까."
두 사람은 짧은 웃음을 공유했지만, 그 웃음 뒤에는 형용할 수 없는 불안이 도사리고 있었다. 이서하는 어둠 속으로 몸을 숨기며 마지막 경고를 남겼다.
"조심해서 돌아가요. 다음에 만날 때 당신 진영이 당신을 뭐라고 부를지 궁금하네. 영웅일까, 아니면 추악한 배신자일까?"
그녀의 모습이 완전히 사라지자, 지하 통로에는 다시 무거운 침묵과 곰팡내만이 남았다. 도윤은 떨리는 손으로 데이터 칩을 주머니 깊숙이 갈무리했다. 지상으로 올라오는 계단을 밟을 때마다 다리가 후들거렸다.
지상으로 나오자 차가운 새벽 공기가 폐부를 찔렀다. 어둠 속에서 갑자기 밝은 가로등 불빛을 마주하자 눈이 시려 왔다. 도윤은 벽을 짚고 서서 거칠게 숨을 몰아쉬었다. 귀 안쪽에서 웅웅거리는 이명이 들렸고, 시야는 자꾸만 흐릿해졌다. 마법 사용의 대가는 육체를 서서히 무너뜨리고 있었다. 그는 입술을 깨물며 정신을 차리려 애썼다. 지금 쓰러지면 모든 게 끝이었다. 그는 최대한 평범한 걸음걸이를 흉내 내며 시청 본관으로 향했다.
보안 게이트를 다시 통과할 때, 스캐너의 붉은 빛이 유난히 길게 느껴졌다. 경비 시스템이 평소보다 정밀하게 작동하고 있었다. 도윤은 심장 박동을 늦추려 애쓰며 단말기를 태그했다.
[승인 완료.]
기계적인 음성이 들려오자 그제야 참았던 숨을 내뱉을 수 있었다. 그는 자신의 사무실로 돌아와 의자에 몸을 던졌다. 온몸의 힘이 빠져나가는 기분이었다. 하지만 그는 쉴 수 없었다. 방금 얻은 데이터를 분석하고, 흔적을 지워야 했다.
그가 메인 서버에 접속해 로그 기록을 수정하려는 순간, 화면 중앙에 붉은색 경고창이 점멸하기 시작했다.
[비인가 외부 접속 탐지: Return JSON 형식.]
도윤의 눈동자가 경련하듯 떨렸다. 누군가 이미 이 암호를 알고 있었다. 누군가 그와 이서하의 접선을 지켜보고 있었거나, 혹은 이 데이터 자체가 함정이었을 가능성이 뇌리를 스쳤다. 그는 떨리는 손으로 키보드를 두드렸으나, 경고창은 사라지지 않았다. 화면 너머에서 누군가의 시선이 느껴지는 듯했다. 이 도시의 거대한 기계 장치 속에서, 그는 이미 그물에 걸린 물고기 신세가 된 것일까. 창밖의 서울은 여전히 차가운 눈에 덮인 채, 아무런 대답도 들려주지 않았다.