← 작품으로
코드로 세상을 지배하는 마법사8화

코드로 세상을 지배하는 마법사

코드로 세상을 지배하는 마법사

AD
스폰서 광고

8화: 마법 학회의 거두들

고대 수로에 들어서자 말발굽 소리는 완전히 멀어졌다.

젖은 돌벽 사이로 푸른 선이 심장 박동처럼 깜빡였다. 물은 발목 높이밖에 되지 않았는데 아래쪽에서는 거대한 물레가 돌아가는 소리가 났다.

레온이 등불을 높이 들었다.

“저 빛이 감찰기사의 흉갑에 있던 것과 같습니까?”

“같은 방향으로 오간다.”

엘리언은 벽에 손을 대지 않았다. 디버그 시야에 떠오른 경로의 바깥에는 붉은 잠금 표식이 둘러져 있었다.

route -> Imperial_Network_Sector_04

access: restricted

“안쪽은 지금 열 수 없다.”

그림자 가고일이 먼저 굽은 통로로 들어갔다. 발톱으로 벽의 진흙을 긁어내자 낡은 문장이 드러났다. 별을 아홉 겹 원으로 감싼 제9서클 학술회의 문장이었다.

“학술회 별관이 이 위에 있습니다.”

레온이 말했다.

“관측탑보다 오래된 건물입니다. 폐쇄된 수로를 관리한다고 들었습니다.”

“오늘은 관측탑의 마력 이상을 논의하려고 원로들이 모두 모였을 겁니다.”

“폐쇄는 아닐 것이다.”

수로의 굽이 끝에서 물길을 가로막는 주수문이 보였다. 그 오른쪽에는 관리인이 드나드는 좁은 점검문이 붙어 있었다. 푸른 선은 두 문 사이를 지나 별관의 토대 아래로 파고들었다.

엘리언의 말이 끝나자 점검문 너머에서 비명이 들렸다.

“열어 주세요! 문이 내려오질 않아요!”

가느다란 아이의 목소리였다. 주수문 아래로 검은 물이 빠르게 솟아 점검실로 흘러들었다. 수문 위에 펼쳐진 황금색 방어막은 세 겹을 만들다 멈추고 처음부터 다시 쌓였다.

아리엘이 눈을 감았다.

“안쪽에 한 사람 있어요. 그루가 돌바닥을 타고 느꼈어요. 물이 무릎까지 찼대요.”

가고일이 주수문의 양쪽을 붙들고 기울어진 판을 제자리로 밀었다. 판은 잠시 내려갔으나 새어 든 물의 압력에 다시 들렸다.

엘리언은 문의 마법식을 읽었다.

verify(gate_anchor);

같은 문장이 아래로 열두 번 이어졌다. 각 줄이 끝날 때마다 푸른 맥박이 제국 경로를 한 번씩 건드렸다. 경로에서 답이 늦자 수문의 방어막도 늦었다.

“누군가 문이 열릴 때마다 같은 표적을 열두 번 확인하게 만들었다.”

“확인을 줄이면 위험한 것 아닙니까?”

레온이 물었다.

“표적이 바뀌었다면 위험하다. 먼저 실제로 바뀌는지 봐야 한다.”

엘리언이 수문 테두리를 따라 시선을 움직였다. 돌에 박힌 표식은 움직이지 않았다. 다만 물살에 흔들리는 철판이 마법식의 감지 범위를 어지럽혔다. 돌문틀에 새겨진 세 숫자가 눈에 들어왔다. 아홉, 넷, 둘. 수문을 처음 설치할 때 정한 표적의 식별자였다.

위쪽에서 비상 종이 울렸다.

쾅. 쾅. 쾅.

돌계단에서 로브가 스치는 소리가 몰려왔다. 회색 수염을 길게 기른 노인이 원로 서너 명을 이끌고 나타났다. 그의 가슴에도 아홉 겹 별 문장이 걸려 있었다.

“누가 학술회의 수문에 손을 댔는가?”

노인은 엘리언의 붕대 감긴 손을 보고 눈살을 찌푸렸다.

“엘리언. 관측탑의 소란이 모자라 이곳까지 왔나?”

“마테우스 의장.”

엘리언은 짧게 인사했다.

“수문 안에 사람이 갇혔다.”

“알고 있네. 우리 결계사들이 처리할 테니 물러나게.”

마테우스가 지팡이를 들었다. 그 뒤의 원로들이 각자 별 모양 마법진에 마력을 부었다. 수문의 방어막은 한 겹 더 생겼다. 그러나 열두 번의 확인이 다시 시작되자 첫 겹부터 빛이 흔들렸다.

원로들이 부은 마력은 결계를 두껍게 했을 뿐 닫히라는 명령을 빠르게 만들지 못했다. 아래층을 향한 좁은 배수로에서는 물 넘치는 소리가 났다.

안쪽에서 물을 토하는 기침 소리가 났다.

아리엘이 한 걸음 앞으로 나왔다.

“의장님, 안에 있는 아이가 버티지 못합니다.”

“수문을 섣불리 열면 지하 저장실까지 물이 넘어온다.”

“열라는 말이 아니다.”

엘리언이 수문을 가리켰다.

“닫히라는 명령부터 제때 수행하지 못하고 있다.”

원로 한 명이 불쾌한 표정을 지었다.

“이 수호식은 학술회가 이백 년간 검증한 공식이오. 열두 번의 확인 덕에 잘못된 표적에 결계를 치지 않는 것이오.”

“이백 년 전에 표적이 계속 바뀌었나?”

“당연히. 이동식 수문에 쓰던 공식이니까.”

“여기 수문은 돌에 박혀 있다.”

엘리언은 레온에게 기록석을 건넸다.

“확인 한 번에 걸리는 시간을 재라. 그리고 표식이 바뀌는지도.”

레온은 떨리는 손으로 기록석을 켰다. 황금빛 숫자가 첫 줄을 읽을 때마다 하나씩 늘었다. 그는 숫자가 바뀔 때마다 문틀의 표식과 수문의 표식을 번갈아 확인했다.

“첫 번째 일곱 호흡. 두 번째도 일곱 호흡. 표식은 같습니다.”

“열두 번이면 사람 하나가 물에 잠기고도 남겠군.”

마테우스의 지팡이가 바닥을 찍었다.

“공식이 마음에 들지 않는다고 모욕할 권리는 없네.”

“공식이 아니라 지금 작동하는 상태를 말하는 거다.”

엘리언은 이미 여덟 번째 확인에서 다시 흔들리는 막을 바라봤다.

“쓰레기 코드다. 쌓아 둔 권위로는 물을 막을 수 없다.”

원로들의 얼굴이 굳었다. 레온도 기록석에서 눈을 들었다.

마테우스가 이를 악물었다.

“저 방어식은 이곳의 안전을 지탱해 왔다. 네 말이 맞다면 바로잡을 방법을 보여라.”

그때 점검문 안쪽에서 무언가 부딪쳤다. 아이가 문을 두드리던 소리가 멎었다.

아리엘은 그루의 잎이 축 늘어지는 것을 보았다.

“바닥이 무너졌어요. 그루가 아이를 붙잡고 있지만 오래 못 가요.”

엘리언이 마테우스를 보았다.

“수문 앞쪽의 마법식만 수정하겠다. 네 원로들이 뒤쪽 저장실의 차단막을 유지해라.”

마테우스는 잠시 망설이다 원로들에게 손짓했다.

“차단막을 붙들어라.”

가고일이 주수문의 철판을 양손으로 밀었다. 철이 비명을 질렀다. 틈새로 찬물이 분수처럼 솟았다.

아리엘은 실피를 좁은 틈으로 보냈다.

“아이가 오른쪽 돌턱에 매달렸어요. 왼손은 이미 물에 잠겼습니다.”

“레온. 문틀의 표식 번호를 읽어라.”

“아홉, 넷, 둘입니다. 변하지 않았습니다!”

엘리언은 문틀에 새겨진 등록 표식과 실제 수문의 표식을 한 번 더 대조했다. 아홉, 넷, 둘. 마법식의 첫 줄이 확인해야 할 기준을 흔들리는 철판이 아니라 이 문틀에 두었다. 이후 실행에서 표적이 다른 식별자로 바뀌면 수문을 멈추게 했다.

registered_id = gate_frame.id;

if (gate_anchor.id != registered_id) { stop(); }

verify(gate_anchor);

“확인 자체를 없앤 건가?”

마테우스가 물었다.

“한 번은 한다. 표적이 달라지면 아예 멈춘다.”

엘리언의 손등에서 열기가 치솟았다. 열한 줄을 걷어 내려던 마력선이 상위 경로에 닿는 순간 붉은 글자가 번쩍였다.

permission: denied

그는 손을 뺐다. 수정 범위를 수문 문틀의 지역 도식 안쪽으로 좁혔다. 푸른 선은 그대로 둔 채 황금빛 반복 고리만 다시 엮었다.

손등의 붕대 아래에서 피가 배어 나왔다.

“왜 멈추셨습니까?”

아리엘이 외쳤다.

“저 선은 내 것이 아니다. 이 문만 고친다.”

마지막 연결이 맞물리자 수문의 황금빛 막이 한 번에 완성됐다. 미처 닫히지 못한 문이 물살을 밀어내며 제자리로 떨어졌다.

쿵!

주수문 아래로 쏟아지던 물의 기세가 끊겼다. 저장실을 향한 배수로도 잠잠해졌다. 가고일이 옆 점검문의 걸쇠를 잡아뜯는 동안 실피는 문틈으로 들어가 아이의 얼굴에 맑은 공기를 불어넣었다. 그루는 돌턱을 밀어 작은 발판을 만들었다.

아리엘이 점검실로 뛰어들었다. 그녀는 젖은 견습생의 팔을 붙잡아 끌어냈다. 아이는 바닥에 쓰러져 물을 토했지만 곧 숨을 쉬었다.

“저 문이 계속 열려 있는 줄 알았어요.”

견습생은 떨리는 손으로 닫힌 주수문을 가리켰다. 마테우스는 겉옷을 벗어 아이의 어깨에 덮어 주었다.

레온이 기록석을 들어 보였다.

“문이 닫히는 데 한 호흡도 걸리지 않았습니다. 표적도 아홉, 넷, 둘 그대로입니다.”

마테우스는 문틀을 살폈다. 그는 지팡이 끝으로 수문의 표식을 일부러 흔들어 보았다. 잠깐 어긋나자 결계가 더 진행하지 않고 멎었다. 표식을 제자리에 맞추니 단 한 번의 확인 뒤 수문이 다시 움직였다. 제국 경로에는 손댄 흔적이 없었다.

“반복한 횟수가 안전을 증명하는 것은 아니었군.”

“변하는 것을 확인해야 안전하다. 변하지 않는 것을 반복해서 묻는 건 지연일 뿐이다.”

엘리언이 붕대를 다시 감았다. 마테우스의 시선이 그 손에 잠시 머물렀다.

그들은 별관 원형 회의실로 올라갔다. 구조된 견습생은 따뜻한 담요를 두르고 서기관에게 상황을 말했다. 레온은 자신의 기록석을 학술회 중앙 탁자에 놓았다.

수정 전 열두 번의 호출과 수정 후 한 번의 응답이 빛으로 나란히 떠올랐다.

“현장에만 적용한 기록입니다.”

엘리언이 말했다.

“다른 이동식 수문까지 같은 방식으로 고치면 사고가 난다. 먼저 각 표적이 고정됐는지 검증해라.”

모욕을 들었던 원로가 입술을 떼었다.

“그렇다면 우리가 모아 둔 표준식을 모두 조사해야겠군.”

“원한다면.”

마테우스가 작은 청동패를 탁자에 놓았다.

“별관 수로의 현장 조사 권한이다. 제국 봉인의 안쪽은 학술회도 열 수 없네. 그 아래로 뻗는 선을 찾는 데까지 허락하지.”

엘리언은 청동패를 집었다.

그 순간 서기관이 회의실 문을 열고 뛰어 들어왔다.

“서부 요새에서 긴급 전언입니다. 북벽의 지반이 밤새 낮아졌습니다. 포대가 성벽보다 아래로 내려갔답니다.”

서기관이 펼친 지도에는 지반의 높이를 표시한 선들이 그려져 있었다. 엘리언의 눈에만 그 위로 희미한 좌표가 겹쳐졌다.

fortress_ground.y: declining

지도의 아래쪽에도 익숙한 푸른 맥박이 지나갔다.

아리엘이 물었다.

“땅이 가라앉는데 포대를 다시 세울 시간이 있을까요?”

엘리언은 좌표선이 흔들리는 곳을 보았다.

“포대를 다시 세우지 않는다.”

그는 지도를 접어 청동패와 함께 들었다.

“먼저 땅이 어디에 있어야 하는지 확인한다.”

AD
스폰서 광고
YOU MAY ALSO LIKE

이런 작품은 어때요?