사무실 전면 유리창이 한꺼번에 터져 나갔다.
비명이 고막을 사정없이 짓밟았다. 강태현은 본능적으로 책상 밑으로 몸을 날렸다. 머리 위로 날카로운 유리 파편과 짓이겨진 콘크리트 분진이 폭포처럼 쏟아졌다.
세상이 뒤집히는 데는 단 3초가 걸리지 않았다.
귀를 찢는 경보음이 빌딩 전체를 흔들었다. 스마트폰은 먹통이었다. 액정 화면에는 통신사 로고 대신 기괴한 검은색 에러 로그만이 무한히 스크롤되고 있었다.
쾅!
사무실 가벽이 종잇장처럼 박살 났다. 자욱한 먼지 구덩이 사이로 붉은 안광이 번뜩였다.
그곳에 서 있는 것은 황소만 한 크기의 변종 괴수였다. 늑대의 골격에 썩어 들어가는 가죽을 덧댄 형상. 등뼈를 뚫고 돋아난 가시들이 기괴한 소리를 내며 맞부딪쳤다. 괴수의 아가리에서 떨어진 산성 침이 데코타일 바닥을 녹이며 매캐한 연기를 피워 올렸다.
"사, 살려줘……!"
바로 옆 책상에 숨어 있던 기획 팀장이 기어 나가려다 괴수와 눈이 마주쳤다.
괴수의 턱이 갈라졌다. 뼈가 으스러지는 소리와 함께 붉은 선혈이 허공으로 흩뿌려졌다. 기획 팀장이었던 '것'이 바닥을 뒹굴었다.
태현은 그 끔찍한 광경을 보면서도 숨소리 하나 흐트러뜨리지 않았다. 심장 박동은 한계까지 치솟았지만, 머릿속은 기묘할 정도로 차갑게 가라앉았다.
평생을 코딩과 디버깅에 바쳐온 천재 프로그래머의 뇌. 극단적인 상황에 직면하자, 그의 이성은 공포를 비효율적인 '메모리 낭비'로 규정하고 강제로 전원을 차단했다.
태현의 눈에 비친 기획 팀장의 죽음은 단순했다.
'오브젝트의 파괴.'
그 이상도 이하도 아니었다. 가치 없는 쓰레기 데이터가 메모리에서 해제된 것에 불과했다. 인간에 대한 일말의 동정심도, 슬픔도 없었다. 오직 살아야 한다는 생존의 갈망만이 차가운 계산 회로를 돌렸다.
그때, 태현의 시야 전체가 푸른빛으로 물들었다.
[시스템 메인프레임 동기화율 100%] [경고: 현실 세계의 물리 엔진이 정규 규격과 충돌합니다.] [강제 예외 처리(Exception Handling) 세션 가동.] [경고: 미등록 허가권(License) 감지.] [대상이 시스템 소유자가 아닌 '개발자 스태프'로 판정됩니다.] [임시 개발자 콘솔(Developer Console) 권한을 활성화합니다.]
머릿속이 징하는 공명음과 함께 투명한 텍스트 창이 눈앞을 가득 채웠다.
그것은 태현에게 너무나도 익숙한 IDE(통합 개발 환경)의 디버거 화면이었다.
괴수의 머리 위로 붉은색 시스템 로그가 실시간으로 갱신되며 흘러내렸다.
-------------------------------------------------- [객체 ID: Obj_Mob_Hound_014] [클래스: 오염된 하운드 (Lv. 5)] [현재 상태: Idle -> Target_Lock (대상: 강태현)] [인공지능 알고리즘: AI_Pattern_Basic_Chase] --------------------------------------------------
괴수가 고개를 돌렸다. 핏발 선 눈동자가 책상 아래에 움츠린 태현을 정확히 포착했다.
괴수의 뒷다리 근육이 팽팽하게 수축했다. 0.5초 뒤면 저 무지막지한 발톱이 태현의 가슴팍을 찢어발길 것이 분명했다. 일반적인 인간이라면 얼어붙었을 찰나의 순간.
태현의 손가락이 허공을 향해 움직였다.
손끝이 닿는 공간에 반투명한 가상 키보드가 생성되었다. 태현의 뇌가 인지하는 속도대로, 그의 손가락이 상상을 초월하는 속도로 허공을 두들겼다.
타타타타탁!
눈앞에 '오염된 하운드'의 내부 소스코드가 완전히 해체되어 나열되었다.
```cpp class CorpseHound : public Monster { public: float movementSpeed = 12.5f; float attackDamage = 45.0f; int SightField = 100; // 시야 범위 변수 void Update() { if (DetectTarget()) { ApproachAndAttack(); } } }; ```
태현의 입꼬리가 비틀려 올라갔다.
"버그투성이 쓰레기 코드군."
누가 설계했는지 몰라도 예외 처리가 전혀 되어 있지 않은 날림 코드였다. 상속 구조는 엉망이었고, 변수들은 외부 접근에 무방비하게 노출되어 있었다. 보안 프로토콜조체 존재하지 않는 원시적인 레거시 시스템.
이 세상이 거대한 게임 시스템과 동기화되었다면, 이 괴물들 역시 정해진 코드 규칙에 따라 움직이는 인형에 불과하다.
그렇다면 지배하는 것은 간단했다. 설계도를 쥔 개발자가 피조물에게 당할 이유는 없으니까.
태현은 실시간으로 구동 중인 하운드의 인스턴스 메모리 주소에 직접 접속했다. 그리고 `SightField` 변수를 조준했다.
[수정 적용 대상: Obj_Mob_Hound_014.SightField] [현재 값: 100] [변경 요청 값: 0]
엔터 키를 내리누르는 상상을 채 마치기도 전에, 시스템 경고가 뇌리를 강타했다.
두통이 두개골을 쪼갤 듯이 밀려왔다. 관자놀이의 혈관이 터질 것처럼 부풀어 오르고, 코끝에서 뜨거운 선혈이 툭, 바닥으로 떨어졌다.
[! 경고: 커널 소스코드 무단 수정 감지] [메모리 누수(Memory Leak)가 호스트의 대뇌 뉴런 영역에 발생합니다.] [경고: 뇌세포 파괴율 0.02% 누적.] [경고: 영구 수명이 3일 단축됩니다.]
"……하."
태현은 신음조차 흘리지 않고 피를 훔쳤다.
코드를 수정해 배포할 때마다 자신의 생명력과 뇌세포가 실시간으로 타들어 간다는 뜻이었다. 시스템은 공짜 권능을 주지 않았다. 이 세계의 메인프레임 자체가 뒤틀린 '레거시 코드'였고, 그것을 강제로 디버깅하는 대가는 온전히 자신의 육체로 받아내야 했다.
하지만 지금 죽는 것보다는 나았다.
태현은 주저 없이 엔터를 눌렀다.
[수정 완료: Obj_Mob_Hound_014.SightField = 0]
크러어어어어!
포효하며 태현을 향해 도약하던 하운드가 허공에서 멈칫했다.
괴수의 붉은 눈동자에서 일순간 빛이 완전히 사라졌다. 동공이 제멋대로 풀리며 초점을 잃었다. 시야 범위 0. 시각 정보 피드백 차단.
갑작스러운 무조건적 실명 상태에 빠진 괴수는 방향 감각을 완전히 상실했다.
콰아앙!
하운드는 태현의 코앞을 스쳐 지나가며 그대로 콘크리트 기둥에 대가리를 처박았다. 육중한 두개골이 깨지는 불쾌한 파열음이 울렸다. 괴수가 비틀거리며 제자리에서 빙빙 돌았다. 보이지 않는 가상의 적을 향해 허공에 발톱을 휘두를 뿐이었다.
태현은 유유히 책상 밑에서 걸어 나왔다.
피를 흘리며 날뛰는 괴수를 바라보는 그의 눈빛에는 한 줌의 감정도 없었다.
"시각 센서가 차단되면 타겟팅 함수 자체가 null을 반환하지. 당연한 결과다."
태현은 가볍게 손을 뻗어 하운드의 상태창 옆에 있는 디버그 콘솔을 다시 열었다. 수명을 더 깎아 먹을 필요는 없었다. 이미 눈이 먼 괴물은 훌륭한 '환경 오브젝트'일 뿐이다.
그는 근처에 굴러다니던 깨진 소화기를 집어 들었다. 그리고 하운드의 뒤통수로 다가갔다.
괴수는 뒤에서 접근하는 태현의 존재를 전혀 인지하지 못했다. 소리 센서마저 시각 정보 마비로 인한 패닉 루프에 빠져 제대로 작동하지 않는 상태였다.
퍽! 콰직!
정확히 세 번. 기둥에 부딪혀 균열이 간 괴수의 정수리를 소화기로 내리쳤다.
단단한 두개골이 마침내 완전히 함몰되며 괴수가 바닥으로 쓰러졌다. 경련하던 다리가 이내 완전히 늘어졌다.
[오염된 하운드(Lv. 5) 격퇴.] [경험치 획득: 150] [레벨이 상승했습니다! (Lv. 1 -> Lv. 2)] [기본 스탯이 소폭 상승합니다.] [디버깅 업적 달성: '코드 변조자' (최초의 변수 수정 성공)] [특별 보상: 시스템 최적화 리소스 0.05% 획득.]
[! 알림: 최적화 리소스 흡수로 인해 대뇌 뉴런 복구 작업이 진행됩니다.] [뇌세포 파구율 0.02% -> 0.00% 복구 완료.] [영구 수명이 복원되었습니다.]
머리를 짓누르던 극심한 편두통이 거짓말처럼 사라졌다.
차가운 정화의 기운이 뇌척수액을 타고 흐르는 감각이 생생하게 느껴졌다.
태현은 가만히 손바닥을 쥐었다 폈다.
"과연."
게임 법칙은 명확했다.
코드를 수정하면 수명이 깎이지만, 시스템의 핵심 리소스를 강탈해 메인프레임을 해킹하면 뇌를 '최적화'하여 수명을 복구할 수 있다. 세상을 지배하는 뒤틀린 시스템 자체를 역설적으로 해킹해 나가는 것만이, 이 아포칼립스에서 영원히 생존할 유일한 해법이었다.
"결국 이 세상은 거대한 버그 덩어리 레거시 시스템이고……."
태현은 붉게 물든 창밖의 서울 도심을 내려다보았다.
거꾸로 뒤처박힌 빌딩들. 공간의 좌표가 엉망으로 꼬여 허공에서 끊어진 도로들. 시스템 에러로 인해 기괴하게 변형된 괴수들이 도처에서 울부짖고 있었다.
"나는 그 쓰레기 코드를 청소할 유일한 디버거(Debugger)다."
타인을 구할 생각 따위는 애초에 없었다.
이 세상에 존재하는 모든 인간은 그저 제멋대로 움직이며 에러를 유발하는 '불확실한 변수'들에 불과했다. 믿을 수 있는 것은 오직 자신이 입력하고 제어하는 완벽한 소스코드뿐이다.
그가 발걸음을 옮기려던 찰나였다.
쿠구구구구궁-!
사무실 바닥이 층 전체가 무너질 듯 격렬하게 요동쳤다.
단순한 지진이 아니었다. 공간의 데이터 압력이 비정상적으로 치솟으며 발생하는 물리적 변형이었다.
[! 위기 경보: 세터 내 고위험 관리자 개체 접근 중] [좌표 인덱스 오류 발생! 공간 동기화가 강제로 리셋됩니다.]
태현의 발밑에 있는 콘크리트 바닥이 번쩍이는 붉은 사선들로 조각나기 시작했다.
그와 동시에, 복도 끝의 두꺼운 방화벽이 엄청난 충격과 함께 안쪽으로 찌그러졌다.
쾅-!
강철로 된 방화벽이 단 한 방에 뜯겨 나가며 먼지 구덩이 속에서 거대한 형체가 걸어 나왔다.
높이만 3미터에 달하는 기괴한 거구.
온몸이 시커먼 철망과 가시 돋친 쇠사슬로 칭칭 감겨 있는 괴물이었다. 한쪽 손에는 사람의 몸통만 한 크기의 거대한 가시 철퇴가 들려 있었다. 철퇴가 바닥을 쓸 때마다 불꽃과 함께 콘크리트가 처참하게 파여 나갔다.
괴물의 머리 위로 칠흑 같은 텍스트가 무겁게 가라앉았다.
-------------------------------------------------- [객체 ID: Obj_Boss_IronButcher_001] [클래스: 철망형 도살자 (Lv. 30 - Boss)] [위험도: 극상 (접촉 즉시 즉사 판정 영역 보유)] --------------------------------------------------
레벨 30.
방금 각성한 태현이 상대하기에는 차원이 다른 에러 개체였다.
철망형 도살자의 붉은 외눈이 태현을 향해 고정되었다. 괴물은 어떠한 경고도, 예고도 없이 대지를 박차고 도약했다.
우웅-!
바람을 찢는 파열음과 함께, 거대한 가시 철퇴가 태현의 머리 위로 무자비하게 낙하했다. 피할 공간은 없었다. 철퇴가 그리는 궤적은 이미 태현의 물리적 회피 좌표를 완벽하게 덮어버린 상태였다.
"……!"
태현의 시야 속에서, 거대한 철퇴가 파멸의 그림자를 드리우며 눈앞까지 육박해 왔다.