brunch

다른 세계 1

1-1

by jeromeNa

눈을 떴다.


천장이 없었다. 대신 나뭇잎들이 층층이 포개져 있었고, 그 사이로 햇빛이 비집고 들어왔다. 바람이 불 때마다 햇살이 흔들렸고, 바닥 위로 그림자가 흩어졌다. 물방울이 바위 위에 떨어지는 소리. 톡… 톡… 새들이 불규칙하게 울었다. 공기에는 풀향기와 흙냄새가 진하게 배어 있었다.


'이상하다.'


마지막 순간까지는 회사 책상이었다. 모니터 세 대, 세 번째 커피 컵, 빌드 에러. 그런데 지금은 숲이었다. 전선도 없고, 아스팔트도 없고, 건물 그림자도 없었다. 강남역 일대를 아무리 뒤져봐도 이런 원시림은 존재하지 않았다.


발밑에 닿는 땅의 감촉, 코끝을 간질이는 이끼의 축축함, 바람 속에서 풀잎이 부딪히는 사각거림. 너무 생생했다. VR 헤드셋을 착용한 기억도 없었다.


몸을 일으키려다 허리가 덜컥 굳었다.


"아…"


체력이 극도로 낮은 몸. 평지에서 전력질주 30초면 주저앉는 몸. 상체를 세우자 숨이 턱 막혔다. 가슴이 조였다. 심장이 불규칙하게 뛰었다. 쿵, 쿵. 울림이 귀에까지 전해졌다.


"CPU 온도 경고 같네."


농담을 던졌지만, 심각했다. 계단 두 층만 올라가도 헉헉거리던 몸. 운동 부족과 야근의 결과. 개발자로 살면서 몸 관리는 항상 미뤄뒀다.


마지막 기억을 더듬었다.


모니터 화면에 빼곡히 늘어선 에러 메시지들. 느리게 차오르는 빌드 바. 책상 위에 어지럽게 놓인 커피 컵 세 개—첫 번째는 오후 2시, 두 번째는 저녁 8시, 세 번째는 새벽 1시. '이번 빌드만 통과하면…'이라는 스스로도 믿지 않는 위안.


갑자기 가슴이 답답해졌다. 시야가 흐려졌다. 의자가 밀렸다. 바퀴 굴러가는 소리가 귓가를 울렸다. 바닥이 빠르게 다가왔다.


어지럼증, 숨 막힘.


그리고 모든 것이 끊겼다.


다음은 병원 천장이 아니라, 이 낯선 숲이었다.


'연결이 안 돼.'


논리의 줄이 허공에서 뚝 끊긴 기분. 머릿속에서 '왜'라는 단어가 반복 재생됐지만, 답은 나오지 않았다. 문제 자체를 정의할 수 없었다.


발밑에서 바스락거리는 소리가 났다.


고개를 숙이니, 두툼한 종이 한 장이 떨어져 있었다. 종이보다는 양피지에 가까웠다. 손끝에 전해지는 감촉은 거칠었고, 한쪽 모서리가 습기에 약간 말려 있었다. 수작업으로 만든 듯한 질감.


반으로 접혀 있었다. 조심스럽게 펼쳤다.


낯선 문양과 기호가 빼곡히 적혀 있었다. 처음 보는 문자인데 이상하게도 '읽히는' 기분이 들었다. 곡선은 괄호처럼, 점은 세미콜론처럼, 고리 모양은 중괄호처럼 보였다. 프로그래밍 문법과 겹쳐 보였다. 문양들 사이의 관계가 코드의 논리 구조처럼 느껴졌다. 조건문 같은 것도, 변수 선언 같은 것도 보였다.


"스크립트…?"


중얼거린 순간, 시야 한쪽에서 문양들이 미묘하게 변화했다. 일부는 굵어지고, 불필요해 보이는 획은 희미하게 사라졌다. 코드 에디터에서 신택스 하이라이팅이 켜지는 것처럼, 구조가 더 명확하게 드러났다.


등줄기를 타고 차가운 기운이 스쳤다.


'움직였어.'


본능이 발걸음을 멈추게 했다. 숲 한가운데, 이해할 수 없는 양피지, 반응하는 글자. 논리로 설명할 수 없는 현상들이 한꺼번에 쏟아졌다.


다시 종이를 들여다봤다. 코드 리뷰를 하듯이 자세히. 문양들의 배치에는 분명 패턴이 있었다. 상단에는 조건 정의 같은 부분, 중간에는 실행 명령어 같은 부분, 하단에는 결과 출력 같은 부분.


'함수야?'


더 놀라운 건, 이해할수록 문양들이 더 선명해진다는 것. 컴파일러가 코드를 파싱 하며 구문을 분석하는 것처럼, 읽어낼수록 종이 위의 문양들이 더 체계적으로 정리됐다.


바람이 불었다. 나뭇잎이 출렁였다. 햇빛을 받은 잎사귀들이 흔들리며 만드는 그림자가 얼굴 위를 스쳤다.

너무 조용했다.


차 소리, 사람 목소리, 에어컨의 웅웅 거림, PC 팬의 바람 소리… 평소 깔려 있던 배경음이 하나도 없었다. 고요함이 귀를 압박했다. 내 숨소리와 심장 박동이 이상하리만치 크게 들렸다. 사운드 필터를 모두 제거한 것처럼, 모든 소리가 날 것 그대로 전해졌다.


"여기… 어디지?"


목소리가 공기 속으로 흩어졌다. 돌아오는 대답은 없었다. 멀리서 나뭇잎이 바스락거리는 소리만 희미하게 들렸다.


바람을 타고 탄 냄새가 미약하게 섞여 날아왔다.


나뭇잎 몇 장이 시커멓게 그을린 채 바닥에 떨어져 있었다. 누군가 불을 사용한 흔적. 재는 아직 따뜻해 보였고, 그을린 잎들도 완전히 마르지 않았다.


'사람?'


여기가 어딘지 물어볼 수 있을지도 모른다. 하지만 동시에 알 수 없는 두려움이 스멀스멀 기어올랐다. 이곳의 '사람'이 내가 아는 사람과 같은 존재일 거라는 보장은 없었다. 특히 이 반응하는 종이를 보고 나니 더욱.

다시 양피지로 시선을 돌렸다. 문양들이 은근히 시선을 끌어당겼다. '읽어 달라'는 유혹처럼. 개발자 본능이 자극됐다. 이해할 수 없는 코드를 만났을 때의 그 호기심.


하지만 직감이 경고했다.


함부로 건드리지 마.


종이를 접어 조심스레 주머니에 넣었다. 빈손으로 돌아다니는 것보다는 낫다. 게다가 이것이 이 상황을 이해하는 열쇠일지도.


"일단… 출구부터."


겉으로는 태연한 척했지만, 속마음은 간절했다. 집에 돌아가서 이 모든 것이 악몽이었다는 걸 확인하고 싶었다. 다시는 야근을 하지 않겠다고 다짐하고 싶었다.


주위를 둘러봤다. 길이라 부를 만한 것은 없었다. 수풀이 무성하게 자라 있었다. 발걸음을 떼자 잎과 가지가 부딪히며 작은 소리를 냈다. 그 소리가 의외로 크게 울렸다. 누군가 뒤따라오는 듯한 착각마저 들었다.


공기가 달랐다. 습도도, 밀도도. 완전히 다른 환경 설정을 가진 세계.


주머니 속 양피지를 만져봤다. 여전히 거기 있었다. 실제로 존재하는 물건.


"뭐든지… 일단 움직여야지."


더 이상 여기 앉아 있어도 답은 나오지 않을 것 같았다. 문제를 해결하려면 시도해봐야 한다. 디버깅도 추측만으로는 안 된다. 실제로 코드를 실행해 보고, 로그를 확인하고, 단계별로 검증해야 한다.


이 상황도 마찬가지.


일단 움직이면서 정보를 수집해야 했다.




[계속]


네이버 웹소설 - http://novel.naver.com/best/detail?novelId=1195007&volumeNo=1


문피아 - https://novel.munpia.com/500060/neSrl/7367879


keyword
월, 화, 수, 목, 금, 토, 일 연재