‹ 목록으로 그 마법, 버그 있는데요

1화

밤 열두 시가 넘으면 저택은 완전히 죽은 것처럼 조용해진다. 촛불도 꺼지고, 하녀들도 잠들고, 아버지의 서재에서 흘러나오던 술 냄새마저 옅어지는 시간. 복도 끝 벽시계가 열두 번 울리고 나면, 그 다음부터는 오직 나무 기둥이 식으면서 삐걱거리는 소리와 내 숨소리만 남는다. 나는 그때를 기다렸다. 설하린. 그게 지금 내 이름이다. 열세 살, 몰락해가는 명문 설가(薛家)의 삼녀. 전생에는 이도연이라는 이름으로 살았다. 서른두 해를 살고 죽었는데, 그중 십 년 넘게는 남의 코드를 고치는 일을 했다. SI 업체에서 파견 나가 레거시 시스템 유지보수를 하다가, 과로로 쓰러져 죽었다. 죽는 순간까지 티켓 세 개가 밀려 있었다는 게 내 마지막 기억이다. 그중 하나는 은행 정산 배치가 새벽마다 알 수 없는 이유로 세 번에 한 번씩 실패하는 버그였는데, 그 원인을 못 찾은 채로 죽어서 아직도 가끔 억울하다. 죽어서도 미결 티켓이 꿈에 나오는 인생이었다. 그리고 눈을 떴을 때 나는 이 세계, 마법이 실재하는 세계의 아기였다. 처음엔 그냥 이상한 꿈이라고 생각했다. 몸이 너무 작고 손이 마음대로 안 움직여서, 이건 그냥 뇌가 만들어낸 마지막 발작 같은 거라고 여겼다. 그런데 세 살쯤, 유모가 손끝에서 작은 불씨를 만들어내는 걸 봤을 때—나는 그 불씨 옆에 떠 있는 것을 봤다. 눈이 아니라 뭔가 다른 감각으로. 불투명한 회색 격자, 그 안에 흐르는 문자들. 마치 디버거 창을 열어놓은 것 같았다. 폰트도 낯설고 문법도 낯설었지만, 구조는 눈에 익었다. 조건문. 반복문. 변수 선언. 마법은, 이 세계의 사람들이 '주문'이라고 부르는 그것은, 사실 코드였다. 남들은 마법을 감각으로 쓴다. 마력을 흘려보내고, 이미지를 떠올리고, 오랜 훈련으로 몸에 새긴 패턴을 발동시킨다. 나는 그 이미지 대신 문법 오류를 본다. 조건문이 잘못 걸려서 화염구가 예상보다 크게 터지는 걸 본다. 반복문이 종료 조건 없이 돌아가서 마력이 낭비되는 걸 본다. 언젠가 유모가 불씨를 만들다가 손끝을 살짝 데었을 때, 나는 그 원인이 되는 반복문의 종료 조건이 하나 빠져 있는 걸 똑똑히 봤다. 무한루프였다. 마력이 다 타서 사라질 때까지 계속 도는 구조. 사람이었으면 스택오버플로우로 죽었을 거다. 문제는, 나는 마력이 0이라는 거다. 코드를 읽을 수 있어도 실행할 수는 없다. 나는 세계에서 가장 정확한 디버거를 가진 채로, 컴파일러가 없는 상태였다. 웃기지도 않는 조합이다. 전생에서 코드 리뷰만 십 년 넘게 했는데, 이번 생에서는 리뷰이가 아니라 그냥 유령 같은 관전자로 살아야 한다는 뜻이었다. --- 설가는 한때 왕국 재무를 책임지던 명문가였다고 한다. 지금은 아니다. 아버지 설강호는 남작 작위와 자존심만 남은 사람이었다. 서재에는 조상의 초상화가 걸려 있고, 응접실 커튼은 세 번이나 기운 자국이 있었다. 손님이 오면 그 기운 자국이 보이지 않는 쪽으로 의자를 배치한다는 걸, 나는 시녀들의 대화를 엿듣고 알았다. 나는 그 대비가 웃기다고 생각했다. 조상님 초상화는 금테를 두르고 있는데, 그 아래 소파는 팔걸이가 닳아서 속천이 보였다. 웃기지만 소리 내어 웃을 순 없었다. 어머니 정미란은 매달 말이면 장부를 펼쳐놓고 한숨을 쉬었다. 나는 그 옆에서 인형놀이를 하는 척하며 장부를 훔쳐봤다. 인형의 팔을 접었다 펴면서 눈으로는 숫자 칸을 훑는 게 내 나름의 기술이었다. 숫자가 맞지 않는 게 한눈에 보였다. 하인 급여 산정 방식이 이상했다. 어떤 달은 같은 직급인데 지급액이 두 배 차이가 났다. 곡물 구매 계약이 세 군데 상단과 중복으로 걸려 있었다. 심지어 한 상단은 이미 삼 년 전에 계약이 끊긴 곳이었는데, 장부에는 매달 정기 지출로 여전히 기록되고 있었다. 누군가 실수로 짜놓은, 아니 애초에 설계 자체가 잘못된 코드처럼 보였다. 아니면 누가 일부러 그렇게 짜놓고 자기만 아는 우회로로 돈을 빼돌리고 있거나. 고쳐주고 싶었다. 손이 근질거렸다. 전생에 이런 걸 발견하면 바로 이슈 티켓 파고 담당자 태그해서 컨퍼런스콜 잡았을 텐데. 하지만 나는 참았다. 참는 게 맞았다. 이 세계에서 마력이 없는 사람은 거의 없다. 마력이 완전히 0인 사람은—더 정확히는, 마력이 없는데 마법의 원리를 이해하는 사람은—존재 자체가 이상 현상으로 취급된다. 몇 년 전 옆 마을에서 마력 없이 마법 문양을 정확히 그려낸 소년이 있었는데, 신전에서 '해석'을 명목으로 데려간 뒤 다시는 보지 못했다는 이야기를 들었다. 그 소년의 부모가 몇 달 동안 신전 앞에 매일같이 찾아가 애원했지만, 결국 나중엔 그 부모도 발길을 끊었다는 뒷이야기까지 하녀들 사이에서 돌았다. 소문은 소문일 뿐이지만, 나는 그걸 믿기로 했다. 믿는 게 안전했다. 그래서 나는 몰래 움직였다. --- 끼익. 끼이익. 서재 문이 열리는 소리에 나는 몸을 굳혔다. 심장이 한 박자 늦게 뛰었다. 아니었다. 옆방 창문이 바람에 흔들리는 소리였다. 다행이다. 나는 다시 장부로 눈을 돌렸다. 촛불 하나만 켜놓은 채, 손끝으로 종이 위 숫자들을 짚었다. 실제로 손을 대는 건 아니었다. 이건—표현하기 애매한데—장부라는 '실체' 위에도 마법적 계약이나 서약 문서인 경우 코드가 덧씌워져 있을 때가 있다. 이 저택의 재무 관리 마법 도구, 즉 '회계석'이라 불리는 수정구가 장부를 자동으로 검산하는 용도로 쓰이는데, 그 검산 로직 자체가 엉망이었다. 조건문 하나가 잘못 걸려 있었다. 지출 항목이 특정 상단 이름으로 들어오면 검증을 건너뛰는 구조. 누가 이걸 짜놨는지는 모르겠지만, 십중팔구 저 상단 쪽에서 회계 담당자에게 뭘 쥐여줬을 거다. 전생에서 이런 백도어를 몇 번이나 봤는지 모른다. 어느 회사든 감사 로그를 우회하는 조건문 하나쯤은 꼭 숨어 있었다. 사람 사는 방식은 세계가 바뀌어도 똑같다는 게 서글프면서도 웃겼다. 나는 회계석에 손을 얹었다. 표면이 서늘했다. 마력은 흐르지 않았다. 대신 나는 그 코드 격자를 '봤다'. 회색 격자가 눈앞에 펼쳐지고, 그 안에서 조건문 하나가 유독 밝게 빛났다. 마치 하이라이트가 걸린 줄처럼. 나는 존재하지 않는 손가락으로 그 줄을 지웠다. 실제로는 아무 일도 일어나지 않았다. 마력이 없으니까. 커서 하나 움직이지 않는 빈 화면에 딜리트 키를 누르는 기분이었다. 그런데 이상하게, 아주 가끔, 정말로 아주 가끔은—그 지운 자리가 며칠 뒤에 실제로 바뀌어 있는 걸 발견했다. 처음엔 우연이라고 생각했다. 곡물 지출이 줄어든 게 그냥 그 상단이 값을 내렸나 보다 싶었다. 두 번째는 의심했다. 세 번째, 급여 산정 오류가 정확히 내가 지운 그 줄에서 사라진 걸 확인했을 때는 확신했다. 내가 '보는' 것만으로도, 아주 낮은 확률로, 코드가 실제로 수정된다. 왜인지는 모른다. 조건도 모른다. 달의 위치인지, 내 컨디션인지, 아니면 그냥 순수한 난수인지. 그냥 재수가 좋으면 되는 것 같았다. 마치 컴파일이 어쩌다 한 번 성공하는 것처럼. 몇 백 번 시도해서 몇 번 통과하는 빌드. 전생에도 그런 파이프라인이 있었다. CI가 랜덤하게 죽는 레거시 프로젝트. 말이 안 되는 소리인 건 안다. 그래도 그게 지금까지 내가 알아낸 전부였다. 나는 촛불을 조심스레 손바람으로 흔들어 확인했다. 그림자가 벽에서 흔들렸다. 문 쪽 기척은 여전히 없었다. 다시 장부로 눈을 돌려, 이번엔 하인 급여 산정 로직 쪽 조건문을 하나 더 짚었다. 지운다. 확률은 낮다. 그래도 안 하는 것보단 낫다. 그게 내가 이 밤마다 반복하는 유일한 노동이었다. --- 다음 날 아침, 어머니가 장부를 펼치더니 이상한 표정을 지었다. 손가락으로 한 줄을 짚고 다시 위로 올라가 재차 확인하는 동작이었다. "이번 달은 곡물 지출이 적네." "그런가요." 나는 빵을 씹으며 아무렇지 않게 대답했다. 속으로는 다행이라고 생각했다. 조건문 하나가 실제로 지워진 모양이었다. 컴파일 성공. 배포 완료. 롤백할 필요 없음. 어머니는 나를 잠깐 쳐다봤다. 뭔가 알고 있는 눈빛이었지만, 아무것도 묻지 않았다. 정미란은 그런 사람이었다. 눈치는 있지만 캐묻지 않는다. 대신 장부를 한 번 더 훑고는, 옆에 있던 하녀에게 낮은 목소리로 상단 쪽에 다시 견적을 넣어보라고 지시했다. 나는 그게 고마우면서도 불안했다. 언젠가는 물을 거다. 그때 뭐라고 대답할지는 아직 정하지 못했다. 식탁 맞은편에서 언니 설유나가 포크를 내려놓았다. 접시에 부딪치는 소리가 유난히 크게 울렸다. "하린이 넌 언제 마력 측정 다시 받을 거야? 벌써 두 번 미뤘잖아." 유나는 나보다 세 살 많았고, 열여섯 살에 이미 3급 술사 인증을 받은 재원이었다. 손끝에 늘 은은한 마력 흔적이 남아 있는 게, 마치 잉크 자국처럼 보였다. 아버지가 유일하게 자랑스러워하는 자식. 나는 유나를 싫어하지 않았다. 그냥 부러웠다. 마력이 있다는 것 자체가. 저 손끝의 흔적 하나만 나눠줄 수 있다면, 나는 지금 가진 걸 절반은 내놓을 수 있을 것 같았다. "몸이 안 좋았어요." 나는 짧게 답했다. 거짓말이었다. 나는 마력 측정을 미루고 미루고 또 미루는 중이었다. 측정을 받으면 결과가 나온다. 마력 0. 그러면 신전 쪽에서 관심을 가질 수도 있다. 관심받으면 끝이다. 옆 마을 소년처럼, 어느 날 마차 한 대가 조용히 저택 앞에 서고, 나는 그 마차에 실려 다시는 돌아오지 못할 수도 있다. 아버지가 신문을 접으며 낮게 말했다. 신문 접히는 소리가 유독 딱딱하게 들렸다. "삼일 안으로는 받아라. 남작가 자식이 마력 측정도 미루고 다닌다는 소문이 돌면 곤란하다." "네." 나는 대답했다. 하지만 대답과 실행 사이에는 아직 며칠의 여유가 있었고, 나는 그 며칠 동안 뭘 해야 할지 이미 알고 있었다. 유나가 다시 입을 열었다. "측정이 뭐가 무서워서 그래. 신전 사제님들 다 친절하시던데." "안 무서워요." 나는 짧게 잘라 말했다. 속으로는, 언니, 네가 몰라서 그래, 라고 답했다. 삼 일. 그 안에 뭔가 방법을 찾아야 했다. 안 그러면, 이 조용하고 답답한 도피 생활도 여기서 끝날 판이었다. 빵 한 조각을 더 뜯어 입에 넣으면서, 나는 머릿속으로 벌써 다음 서재행 시간을 계산하고 있었다.
첫 화입니다 목록 다음화 ›
♡ 좋아요 0 · 로그인 후 좋아요/별점/댓글 참여 가능

댓글 0

  • 첫 댓글을 남겨보세요.