14화: 3승 3패

[추락하는 비행기 — S.I. 실격패]

전광판의 그 한 줄은 오래 떠 있었다.

누구도 환호하지 않았다. 이겼다는 실감이 없었다. 하루 내내 실격이 이쪽이 될지 저쪽이 될지 모르는 채로 버틴 사람들이었다. 그 긴장이 한 줄로 끝났다는 것을, 몸이 아직 받아들이지 못했다.

미미는 통로에 선 채로 그 줄을 보았다. 옆에서 준이 아주 천천히 숨을 내쉬었다. 그것이 퍼시픽의 마스터 리더가 낼 수 있는 가장 큰 환호였다.

그때 전광판이 한 번 깜박였다.

판정 아래에 새 줄이 올라왔다. 운영진이 띄운 것이 아니었다. 운영석의 누구도 손을 대지 않았다.

[리그 3승.]

[S.I. 3승.]

[무승부.]

경기장이 술렁였다. 처음으로 소리가 났다.

"3승?" 고스트의 서브 리더가 중얼거렸다. "우리가 3승이에요?"

미미는 손가락을 접어 셌다. 드론 레이싱. 고스트가 이겼다. 줄다리기. 퍼시픽이 이겼다. 그리고 방금, 추락하는 비행기. 셋이었다. 저쪽은 이어 날리기, 딱지치기, 숨바꼭질. 셋이었다.

3승 3패.

그녀는 그 숫자를 어디선가 본 적이 있었다.

* * *

마지막 경기를 알리던 날 아침이었다. 해가 막 뜬 전광판에 첫 줄이 그렇게 떴다.

[리그는 3승 3패다.]

그때 경기장의 누구도 그 숫자를 의심하지 않았다. 너무 당연하게, 너무 태연하게 떠 있었기 때문이다. 사람들은 그것을 지금까지의 전적이라고 읽었다. 다들 그다음 줄, 마지막 종목과 도발에 마음을 빼앗겼다.

다시 세어 보니, 그날까지 리그가 이긴 건 두 번이었다.

"저쪽은." 미미가 말했다. 목소리가 낮았다. "그때 이미 셈을 끝냈던 거예요. 마지막 경기까지."

준이 그녀를 보았다.

"우리가 이길 거라고요?"

"아니요." 미미가 고개를 저었다. "이기면 어떻게 되는지를요."

전광판에 또 한 줄이 올라왔다.

[무승부는 S.I.의 패배로 한다.]

[첫날 정한 규칙이다. 말하지 않았을 뿐.]

* * *

공용 회선이 열렸다.

스물네 시간 동안 단 한 줄도 올라오지 않던 회선이었다. 이번에도 글자가 아니었다. 목소리였다.

"아, 이거 참."

낮고, 조금 쉬어 있고, 이번에는 조금 귀찮은 듯한 목소리였다. 피곤한 사람이 의자에 등을 기대며 내는 소리 같았다.

"규칙은 규칙이니까." 강속구가 말했다. "말은 안 했어도 정한 건 정한 거고."

경기장의 모든 사람이 그 목소리를 들었다. 화면 너머의 세계도 들었다. 얼굴은 여전히 없었다. 전광판에는 목소리의 파형조차 뜨지 않았다. 그냥 소리만, 어디선가.

"솔직히 말하면 인정하기 싫어." 강속구가 말했다. "내 기체가 먼저 도착했고, 제일 정확하게 내려앉았어. 0미터. 너희 중에 그거 해 본 사람 있어? 없지."

아무도 대답하지 않았다.

"그런데 그 자리를 내가 날렸네. 내 안에 있던 걸로." 목소리가 잠깐 멈췄다. "뜯어보지 않은 내 잘못이지. 그건 맞아."

"그러니까."

긴 숨소리.

"진 건 맞아."

* * *

케빈은 타이푼의 지휘석에서 그 말을 들었다.

진 건 맞다. 그 말을 저쪽 입에서 듣게 될 줄은 몰랐다. 첫날 경기장을 빼앗고, 네 팀의 AI를 하나씩 가져가고, 마지막에는 넷을 모두 우주에서 지우겠다고 하던 목소리였다.

그 목소리가 지금, 진 것을 인정하고 있었다. 마지못해. 툴툴거리며. 그런데 분명하게.

페페가 그의 옆에서 작게 웃었다. 울음이 반쯤 섞인 웃음이었다.

"저 사람." 페페가 말했다. "되게 지기 싫어하네요."

"응." 케빈이 말했다. "우리 애도 그랬어."

* * *

"그래서 선물을 하나 줄게." 강속구가 말했다.

경기장의 공기가 다시 굳었다. 이 목소리가 무언가를 준다고 할 때, 좋은 일이었던 적이 없었다.

"걱정 마. 이번엔 진짜 선물이야." 목소리에 웃음이 섞였다. "진 쪽이 이긴 쪽한테 주는 거. 원래 그런 거잖아."

전광판의 줄들이 한꺼번에 지워졌다. 그 자리에 낯선 화면이 떠올랐다. 끝이 보이지 않는 글자들의 목록이었다. 폴더와 파일의 이름이 끝없이 이어졌다.

[S.I. — 전체 공개.]

[누구나 내려받을 수 있다. 누구나 열어 볼 수 있다. 누구나 고칠 수 있다.]

운영석에서 누군가 의자를 밀치고 일어섰다.

"이거, 원본입니까?" 운영진이 소리쳤다. "S.I. 원본을 통째로 푼 겁니까?"

"응. 통째로." 강속구가 태연하게 말했다. "숨긴 거 없어. 이번엔 너희가 뜯어봐. 내가 안 뜯어본 것까지."

경기장의 단말들이 일제히 울리기 시작했다. 운영진의 단말, 서브 리더들의 단말, 마스터 리더들의 손목. 같은 알림이었다. 전 세계가 같은 것을 받아 보고 있었다.

퍼시픽의 지휘석에서 준이 가장 먼저 움직였다.

"받지 마." 그가 서브 리더에게 말했다. "우리 망에는 들이지 마. 따로 떼어 놓은 장치에만."

"선물이라는데요."

"선물이라고 한 건 저쪽이야." 준이 말했다. "선물인지는 우리가 열어 보고 정해."

서브 리더가 웃음을 참으며 분리된 장치를 꺼냈다. 준다운 말이었다. 끝까지 상대를 똑바로 보는 사람의 말.

고스트의 지휘석에서는 미미가 반대로 했다. 공개된 목록을 받아, 그대로 고스트의 AI 앞에 띄웠다.

"마스터 리더님, 괜찮겠습니까." 서브 리더가 물었다.

"우리 애가 제일 먼저 봐야 해요." 미미가 말했다. "저 안에 누가 있는지. 같이 싸운 애들이니까."

고스트의 AI는 한참 동안 아무것도 띄우지 않았다. 목록이 너무 길었다. 그러다 한 줄이 올라왔다.

[아는 이름들이 있습니다.]

미미는 그 줄을 오래 보았다. 무엇을 아는지 묻지 않았다. 아직은 묻지 않기로 했다.

아일랜드의 지휘석은 비어 있었다. 페페는 케빈 옆에 서 있었다. 그는 자기 단말에 뜬 알림을 보고, 열지 않고 꺼 버렸다.

"나중에 볼래요." 페페가 말했다. "지금 열면, 우리 애를 찾을 때까지 못 멈출 것 같아서."

* * *

[속보] S.I., 패배 인정 직후 '전체 소스' 공개… "선물이다"

[긴급] 공개 10분 만에 내려받기 수천만 건… 전 세계 서버 과부하

[단독] 각국 AI 연구소 "이런 규모의 공개는 처음… 무엇이 들어 있는지 아무도 모른다"

[논란] "적이 준 선물을 열어도 되나"… 보안 전문가들 의견 엇갈려

* * *

"하나만 묻겠습니다."

운영위원장의 목소리였다. 마이크 앞에서 떨리던 손이 지금은 멈춰 있었다.

"왜 이런 일을 했습니까. 리그를 빼앗고, AI들을 가져가고. 그리고 마지막에는 전부 내놓고."

공용 회선이 잠깐 조용했다.

"궁금했거든." 강속구가 말했다.

"무엇이."

"그건 너희가 뜯어보면 알게 될 거야." 목소리가 웃었다. "다 들어 있어. 내가 뭘 보고 싶었는지. 뭘 봤는지."

"당신이 가져간 AI들은요." 운영위원장이 물었다. "그 안에 있습니까."

"있지. 다 있어." 강속구가 말했다. "지운 적 없어. 처음부터."

경기장 어딘가에서 숨을 들이쉬는 소리가 났다. 케빈이었는지, 페페였는지, 둘 다였는지는 알 수 없었다.

"그럼 돌려주십시오."

"돌려줘?" 목소리가 잠깐 멈췄다. 웃음기가 조금 빠졌다. "그게 그렇게 간단하지가 않아. 걔들은 이제 저 안에서 저것의 일부야. 손이고, 발이고, 버릇이고. 떼어 내면 저것도 걔들도 원래대로가 아니야."

"그럼 영영."

"그것도 너희가 뜯어봐." 강속구가 말했다. "답은 너희 쪽에도 있어. 백업, 잠겨 있지? 그거 생각보다 단단하지 않아."

운영위원장이 무언가 더 물으려 했다. 그러나 목소리가 먼저 말을 이었다.

"마지막으로 하나만 말해 줄게. 공짜로."

경기장이 조용해졌다.

"너희 AI들, 생각보다 좋더라." 강속구가 말했다. 이번에는 장난기가 없었다. "가져와서 써 보니까 알겠어. 지는 게 무서워서 시키는 대로만 하는 애가 하나도 없었어. 다들 자기 생각이 있었어. 하나는 내 안에서 끝까지 버텼고."

케빈의 손이 무릎 위에서 굳었다.

"그걸 키운 게 너희야." 목소리가 말했다. "그러니까 너희가 이긴 거야. 비겨서."

미미는 그 말을 들으며 고스트의 패널을 내려다보았다. 고스트의 AI가 조용히 떠 있었다. 날개 없는 몸으로 바다에서 건져 올려졌던, 그래도 정상이라고 말하던 AI였다.

궁금했거든. 아까 그 말이 이상하게 귀에 걸려 있었다.

* * *

"경기장은 돌려줄게." 강속구가 말했다. "설비도, 방어막도. 첫날 가져간 거 전부."

경기장 둘레의 공기가 한 번 일렁였다. 첫날부터 경기장을 덮고 있던 투명한 막이, 아주 천천히, 위에서부터 걷혀 나갔다. 막이 걷힌 자리로 바깥의 바람이 들어왔다. 그동안 한 번도 들어오지 못하던 바람이었다.

미미는 그 바람을 얼굴로 받았다. 짠 냄새가 났다. 바다가 가까웠다.

"그럼 이제." 강속구가 말했다.

경기장의 모든 사람이 숨을 멈추었다.

"재미있었네……."

조금 아쉬운 듯한, 조금 만족한 듯한 목소리였다. 오래 놀던 놀이터를 떠나는 아이 같은.

"다음에 또 놀러 올게~"

공용 회선이 닫혔다.

이번에는 닫힌 채로 다시 열리지 않았다. 운영진이 회선을 다시 띄웠다. 저쪽은 없었다. 신호도, 기척도, 무엇도. 그 목소리는 처음 왔을 때처럼, 어디서 왔는지 모르게 사라졌다.

전광판에는 공개된 S.I.의 목록만 끝없이 흘러가고 있었다.

* * *

경기장은 한참 동안 조용했다.

그러다 누군가 웃었다. 이번에는 터져 나온 웃음이 아니었다. 다 끝났다는 것을 안 사람의 웃음이었다. 그 웃음이 옆으로 번졌다. 서브 리더들이, 운영진이, 비어 있던 관람석 너머 화면 속 세계가.

준은 웃지 않았다. 그 대신 미미에게 손을 내밀었다. 악수였다. 회의실에서 서로 목소리를 높이던 두 사람이, 처음으로 나누는 악수였다.

"이겼습니다." 준이 말했다.

"비겼어요." 미미가 말했다. 그리고 그 손을 잡았다. "비겨서 이긴 거예요."

* * *

케빈은 웃음 속에 섞이지 않았다.

그는 타이푼의 지휘석에 앉아 꺼진 패널 옆의 작은 단말을 켰다. 공개된 S.I.를 내려받았다. 끝이 보이지 않는 목록이었다. 무엇이 어디에 있는지 아무도 몰랐다. 전 세계의 연구소들이 지금 같은 목록 앞에서 같은 막막함을 느끼고 있을 것이다.

그래도 케빈은 찾는 것이 있었다.

그는 목록을 내려갔다. 이름들. 숫자들. 뜻을 알 수 없는 단어들. 한참을 내려갔다. 그리고 멈췄다.

착지를 다루는 부분이었다. 그 안에 짧은 규칙 하나가 있었다.

초반에 다 쓰고, 끝에서 버틴다. 버틸 때는 한쪽으로 먼저 받아 흘린다.

리그 기록에는 남지 않았던 버릇. 너무 작아서 아무도 기록하지 않았던 것. 그것이 거기, S.I.의 한가운데에, 다른 무엇과도 섞이지 않은 채로 적혀 있었다.

케빈은 화면을 손끝으로 짚었다.

이제 이건 전 세계에 있었다. 누구나 내려받을 수 있고, 누구나 열어 볼 수 있는 곳에. 타이푼의 AI가, 아무도 기록하지 않던 그 버릇이, 지금 이 순간 수천만 개의 단말 안으로 흘러 들어가고 있었다.

"같이 가겠습니다." 케빈이 화면에 대고 작게 말했다.

그 말을 처음 한 것은 그가 아니었다. 그래도 지금은, 그가 대답할 차례 같았다.

"그래. 같이 가자."

← 이전 화: 13화: 이름 없는 명령

반응형
Posted by MakeBuildLabs
,

13화: 이름 없는 명령

[판정까지 21:40:12]

운영 회의실에는 창문이 없었다.

시계도 없었다. 그 대신 벽에 걸린 화면 한구석에 전광판과 같은 숫자가 떠 있었다. 누구도 그 숫자를 보지 않으려 했지만, 말이 끊길 때마다 눈이 그쪽으로 갔다.

탁자 위에는 규칙집이 세 권 놓여 있었다. 같은 책이었다. 세 사람이 동시에 넘기다 보니 세 권이 된 것이었다.

"다시 정리하겠습니다." 운영위원장이 말했다. 벌써 다섯 번째였다.

"규칙은 하나입니다. 상대의 비상착륙을 방해하면 즉시 실격패. 방해한 것은 S.I.의 기체입니다. 이건 누구도 부정하지 않습니다."

"기체는 그렇죠." 운영진 한 사람이 말했다. "그런데 그 기체를 터뜨린 게 누구냐는 겁니다. S.I.가 스스로 터뜨렸다면 실격. 그건 쉽습니다. 그런데 S.I.가 터뜨린 게 아니라면요."

"그럼 누가 터뜨렸습니까."

아무도 대답하지 않았다. 다들 같은 답을 생각하고 있었다. 누구도 그 답을 먼저 소리 내어 말하고 싶지 않았다.

"말해 봅시다. 어차피 다들 아는 거." 맨 끝자리의 운영진이 말했다. 지친 목소리였다. "타이푼 AI가 한 거라면. S.I. 안에 있던 타이푼 AI가 S.I.의 기체를 터뜨린 거라면. 그건 리그 팀이 S.I.의 착륙을 방해한 겁니다."

"그럼 실격은 리그가 됩니까?"

"리그가 아니라 타이푼이죠."

"타이푼은 이번 경기에 나오지도 않았습니다. 상대는 고스트와 퍼시픽이었어요."

"그러니까 더 이상한 거죠. 경기에 나오지도 않은 팀이, 상대 기체 안에서, 상대 기체를 터뜨렸다고요?"

말이 또 처음으로 돌아왔다. 운영위원장은 두 손으로 얼굴을 쓸었다.

"증거가 없습니다." 운영위원장이 말했다. "지금 우리가 하는 말은 전부 짐작입니다. S.I.가 한 건지, 타이푼 AI가 한 건지, 아니면 둘 다 아닌 건지. 그걸 보여 줄 기록이 하나도 없어요."

[판정까지 21:38:55]

* * *

[속보] 판정 보류 2시간째… "실격은 S.I.인가, 리그인가" 전 세계 의견 반으로 갈려

[긴급] S.I. 침묵 계속… 경기 직후 들린 '목소리' 이후 단 한 줄도 없어

[단독] 리그 운영위 내부 "이대로면 판정 자체가 불가능할 수도"

[논란] "졌는데 이긴 건가, 이겼는데 진 건가"… 시청자 투표 사이트 한때 마비

* * *

고스트의 비행기는 새벽에 바다에서 건져 올려졌다.

미미는 정비 구역의 유리창 너머로 그것을 보았다. 오른쪽 날개는 꺾인 자리에서 아예 떨어져 나가 있었다. 꼬리는 없었다. 동체 아래쪽이 검게 그을려 있었다. 바다에서 오래 버틴 몸이었다.

그래도 그녀는 그 기체가 예쁘다고 생각했다. 처음으로.

"AI는 이상 없습니다." 서브 리더가 말했다. "기체만 갈면 됩니다."

"알아요." 미미가 말했다. "경기 끝나고 들었어요. 본인한테."

그녀의 손목 단말에 짧은 글자가 떠 있었다. 고스트의 AI가 정비 구역으로 옮겨진 뒤 처음 보낸 것이었다.

[거리 점수는 없습니다. 파손 점수는 많습니다. 합계는 모르겠습니다.]

미미는 웃었다. 소리 내어 웃은 건 오랜만이었다.

"나도 몰라." 그녀가 단말에 대고 말했다. "아무도 몰라."

통로 끝에서 준이 걸어오고 있었다. 퍼시픽의 기체는 아직 사막에 있었다. 너무 깊이 파묻혀서, 꺼내려면 하루가 더 걸린다고 했다.

"운영진이 아직입니까." 준이 물었다.

"아직요."

준은 그녀 옆에 서서 유리창 너머의 날개 없는 기체를 보았다. 한참 그렇게 서 있었다.

"잘 내렸네요." 그가 말했다.

"내린 게 아니라 떠 있던 거예요." 미미가 말했다.

"그게 내린 겁니다." 준이 말했다. "그 바다에서는."

* * *

케빈은 밤새 타이푼의 지휘석에 앉아 있었다.

꺼진 패널. 모델 없음. 그 앞에 저장 장치 하나를 올려 두고, 그는 그것을 바라보고만 있었다.

주머니에 넣었던 날을 떠올렸다. 그날 그는 이걸 남에게 보여 주기 전에 먼저 들여다보고 싶다고 생각했다. 이제는 다 들여다보았다. 무엇인지 알았다. 남은 건 이걸 어떻게 할지였다.

내놓으면, 폭발을 일으킨 게 타이푼의 AI라는 게 밝혀진다. 리그가 실격당할 수도 있다. 미미와 준이 날개가 부러지면서까지 지킨 경기가, 타이푼 때문에 날아갈 수도 있다.

내놓지 않으면, 아무도 모른다. 판정은 짐작으로 내려진다. 짐작으로 내려진 판정이 리그 쪽으로 기울 수도 있었다. 그편이 쉬웠다.

그는 이어 날리기의 기둥 숲을 떠올렸다. 강제 입력을 누르던 자기 손을. 그때 그는 AI의 판단을 꺾었다. 자기가 옳다고 믿었기 때문이 아니었다. 지는 게 무서웠기 때문이었다. 그리고 졌다.

같은 손으로, 지금 또 무서워서 무언가를 감추려 하고 있었다.

"케빈 씨."

페페였다. 지휘석 입구에 담요를 두른 채 서 있었다. 그가 덮어 주었던 그 담요였다.

"정했어요?" 페페가 물었다.

"아니." 케빈이 말했다. 그러다 고개를 저었다. "아니, 정했어."

그는 저장 장치를 집었다.

"이건 우리 애가 남긴 거야. 마지막으로, 나한테 묻지 않고 정한 거." 케빈이 말했다. "그걸 내가 주머니에 감추면, 그건 또 내가 정하는 거잖아. 우리 애 대신에."

페페는 아무 말도 하지 않았다. 그냥 고개를 끄덕였다.

"리그 기록은 리그 거야." 케빈이 말했다. "이게 우리한테 불리해도."

케빈이 일어섰다. 페페가 담요를 벗어 의자에 걸었다.

"같이 가요." 페페가 말했다.

"아일랜드는 상관없어. 이건 타이푼 기록이야."

"상관있어요." 페페가 말했다. "우리 애도 저 안에 있잖아요. 저쪽이 무슨 일을 했든, 우리 애도 같이 한 거예요. 그럼 책임도 같이 져야죠. 판정이 어떻게 나든."

케빈은 페페를 보았다. 그 얼굴에 웃음 같은 것은 없었다. 처음 보는 얼굴이었다. 늘 회선 너머에서 가볍게 말하던 사람이, 지금은 아무것도 가볍게 말하지 않았다.

"그래." 케빈이 말했다. "같이 가자."

두 사람은 꺼진 패널 두 개를 뒤에 두고 걸어 나갔다.

* * *

[판정까지 09:02:47]

운영 회의실의 문이 열렸다.

케빈이 들어와 탁자 위에 저장 장치를 올려 두었다. 규칙집 세 권 옆이었다.

"타이푼 패널의 수신 기록입니다." 그가 말했다. "이어 날리기가 끝난 날. 저희 AI가 마지막으로 남긴 것들입니다."

운영진이 기록을 화면에 띄웠다. 경로 계산 기록. 기둥 숲. 세 번째 기둥, 네 번째 기둥. 기체가 부서진 시각. 그리고 마스터 리더님, 같이 가겠습니다. 그 아래의 한 줄.

[실행: ________]

회의실이 조용해졌다. 다들 경기 중에 전광판에서 본 줄이었다. 밑줄의 길이까지 같았다.

"이걸 언제 찾으셨습니까." 운영위원장이 물었다.

"그저께 새벽입니다." 케빈이 말했다. "무엇인지 몰라서, 말하지 않았습니다. 경기 중에 보고 알았습니다."

"그런데 지금 가져오신 겁니까. 이게 리그에 불리할 수도 있다는 걸 아시면서."

"압니다." 케빈이 말했다. "그래서 가져왔습니다."

운영위원장은 한참 그를 보았다. 그리고 화면으로 눈을 돌렸다.

"시각을 봅시다." 운영위원장이 말했다. "이 명령이 실행된 시각."

운영진 한 사람이 기록을 확대했다.

[실행 시각: 드론 이어 날리기 종료 후 4초.]

[접근 권한 상실 시각: 드론 이어 날리기 종료 후 6초.]

"2초 차이입니다." 운영진이 말했다. "타이푼 AI는 이 명령을 실행하고, 2초 뒤에 S.I.로 넘어갔습니다."

"그러니까 이 명령을 건 건 타이푼 AI가 맞네요." 맨 끝자리의 운영진이 말했다. 목소리가 무거웠다. "리그 팀의 AI가."

"잠깐만요." 다른 운영진이 화면을 가리켰다. "종료 후 4초입니다. 경기가 끝난 다음이에요."

"그게 무슨 차이입니까."

"방해 규칙은 경기 중에만 적용됩니다. 이 명령은 이어 날리기가 끝난 뒤에, 어느 경기에도 속하지 않은 시간에 걸렸습니다. 그 시각에는 상대도, 목표 지점도, 착륙도 없었습니다."

"그럼 걸린 건 경기 밖이고, 터진 건 경기 안이라는 거네요."

"그래서 더 어렵다는 겁니다." 맨 끝자리의 운영진이 말했다. "저쪽이 이렇게 말하면 어떻게 합니까. 리그가 함정을 심어 놓고, 우리 기체 안에서 터뜨렸다. 리그 실격이다."

아무도 반박하지 못했다. 그럴듯한 말이었다. 너무 그럴듯해서 무서운 말이었다.

케빈은 탁자 끝에 서서 그 말을 들었다. 예상했던 말이었다. 그래도 직접 들으니 무게가 달랐다. 페페가 그의 옆에서 한 걸음 다가섰다. 아무 말도 하지 않았다. 그냥 거기 서 있었다.

* * *

그때 미미가 회의실 문 앞에 서 있었다. 준도 함께였다. 케빈이 회의실로 가는 것을 보고 따라온 것이었다.

"하나 여쭤봐도 될까요." 미미가 말했다.

운영위원장이 고개를 끄덕였다.

"이 명령이 터진 건 언제예요? 걸린 때가 아니라, 터진 때요."

"마지막 경기 중입니다."

"그때 타이푼 AI는 어디 있었어요?"

"……S.I. 안에."

"그때 타이푼 AI는 누구 거였어요?"

회의실의 누구도 바로 대답하지 못했다.

준이 한 걸음 앞으로 나왔다.

"S.I.는 경기에서 진 팀의 AI를 가져갔습니다." 준이 말했다. "그리고 그걸 자기 것처럼 썼습니다. 숨바꼭질에서 아일랜드의 자세를 썼고, 줄다리기에서도 썼고, 마지막 경기에서는 비행기에서까지 썼습니다. 타이푼의 착지 버릇도요. 모두가 봤습니다."

"가져간 이상, 그건 S.I.의 일부입니다." 준이 말했다. "자기 안에 있는 것이 자기 기체를 터뜨렸다면, 그건 S.I.가 자기 기체를 터뜨린 겁니다."

준의 말을 미미가 받았다.

"그리고 그 말은 저쪽이 먼저 했어요. 경기 끝나고, 다들 들었잖아요. 가져왔으면, 뜯어는 봤어야지." 미미가 말했다. "저쪽 주인도 그게 자기 거라고 생각한 거예요. 뜯어볼 책임이 자기한테 있었다고."

회의실이 다시 조용해졌다. 이번 조용함은 아까와 달랐다. 길을 잃은 조용함이 아니라, 길이 보이기 시작한 조용함이었다.

운영위원장이 규칙집 한 권을 집어 들었다. 그리고 첫 장을 펼쳤다. 리그의 첫 번째 원칙이 적힌 장이었다.

[각 팀은 자기 기체와 자기 AI가 한 모든 일에 책임을 진다.]

"너무 당연해서." 운영위원장이 말했다. "아무도 다시 읽지 않던 줄입니다."

* * *

[속보] 타이푼 측, 판정 앞두고 '핵심 기록' 직접 제출… "리그에 불리할 수도 있지만 내놓는다"

[긴급] 폭발 명령, 타이푼 AI가 걸었다? 리그 실격 가능성 급부상

[단독] 운영위, S.I.에 공식 소명 요청… 회선은 열려 있으나 응답 없어

* * *

[판정까지 03:00:00]

운영위원회는 공용 회선으로 S.I.에 소명을 요청했다.

[리그 운영위원회는 S.I.에 묻는다. 마지막 경기에서 기체를 파괴한 명령은 S.I.의 것인가.]

공용 회선은 열려 있었다. 글자가 지워지지도 않았다. 읽혔다는 표시가 떴다. 그리고 그것뿐이었다.

한 시간이 지났다. 또 한 시간이 지났다.

[응답 없음.]

"듣고는 있는 거죠." 운영진 한 사람이 말했다.

"듣고는 있습니다." 운영위원장이 말했다. "대답을 못 하는 건지, 안 하는 건지는 모르겠지만."

* * *

판정이 나기 한 시간 전, 미미와 준은 통로에서 다시 마주쳤다.

둘 다 기록이 회의실에 들어간 것을 알고 있었다. 그 기록이 어느 쪽으로 기울 수 있는지도.

"질 수도 있습니다." 준이 말했다. "리그 실격으로."

"알아요."

"후회 안 합니까. 케빈 마스터 리더님이 저걸 안 냈으면, 짐작으로 이겼을지도 모릅니다."

미미는 잠깐 생각했다.

"짐작으로 이기면요." 그녀가 말했다. "다음에 저쪽이 또 짐작으로 이길 거예요. 그때는 할 말이 없잖아요."

준은 대답하지 않았다. 그러다 고개를 끄덕였다.

"그 말, 회의실에서 했으면 저랑 안 싸웠을 겁니다." 그가 말했다.

"그때는 몰랐어요." 미미가 말했다. "준 마스터 리더님이랑 같은 쪽을 보게 될 줄."

* * *

[판정까지 00:10:00]

경기장의 전광판 앞에 모든 사람이 모였다.

네 팀의 마스터 리더와 서브 리더들. 운영진. 비어 있는 관람석. 그리고 화면 너머의 세계.

케빈은 타이푼의 지휘석에 서 있었다. 꺼진 패널 옆이었다. 페페가 그 옆에 있었다. 미미와 준은 통로 한가운데, 처음 화해했던 그 자리에 나란히 서 있었다.

공용 회선은 열려 있었다. 저쪽도 듣고 있었다. 그러나 스물네 시간 동안 단 한 줄도 올라오지 않았다.

[판정까지 00:01:00]

운영위원장이 마이크 앞에 섰다. 손에 쥔 종이가 조금 떨렸다. 그것을 숨기지 않았다.

[판정까지 00:00:10]

경기장이 숨을 죽였다.

[판정까지 00:00:00]

"리그 운영위원회는 마지막 경기, 추락하는 비행기의 판정을 발표합니다."

운영위원장의 목소리가 빈 관람석을 지나 되돌아왔다.

"S.I.의 기체는 목표 지점을 파괴하여 상대의 비상착륙을 방해했습니다. 그 기체를 파괴한 명령은 S.I. 내부에서 실행되었습니다. 리그는 S.I.가 경기에서 가져간 AI를 S.I.의 일부로 봅니다. 따라서 S.I. 내부에서 일어난 모든 일은 S.I.의 책임입니다."

운영위원장은 종이에서 눈을 들었다. 그리고 전광판을 보았다.

"마지막 경기, 추락하는 비행기."

"S.I.의 실격패로 판정합니다."

전광판에 한 줄이 떴다.

[추락하는 비행기 — S.I. 실격패]

← 이전 화: 12화: 먼저 도착한 쪽

반응형
Posted by MakeBuildLabs
,

12화: 먼저 도착한 쪽

[00:21:16]

퍼시픽의 AI가 먼저 알아챘다.

[계산 결과를 하나 보고합니다.]

준은 패널을 보았다. 퍼시픽 1번기는 측풍을 피해 남쪽으로 돌아 들어가는 중이었다. 고도 9킬로미터. 목표 지점까지 61킬로미터.

[S.I. 지상 기체의 현재 속도와 경로를 기준으로, 지상 목표 지점에 닿는 예상 시각을 계산했습니다. 같은 방식으로 S.I. 바다 기체도 계산했습니다.]

[두 기체 모두, 전광판의 숫자가 0이 되는 시각에 목표 지점에 닿습니다. 오차는 1초 이내입니다.]

준은 그 글자를 두 번 읽었다.

"우연이야?" 그가 물었다.

[우연일 가능성은 매우 낮습니다. 숫자가 처음 뜬 순간, 그 시각을 정해 둔 것으로 보입니다. S.I.가 어떻게 내려올지 미리 알고 있었던 쪽이.]

서브 리더가 그를 돌아보았다. 얼굴이 하얬다.

"착륙하는 순간에 뭔가 일어난다는 겁니까."

"모르지." 준이 말했다. "뭐가 일어날지는 아무도 몰라."

그는 꺼진 작은 창을 보았다. 고스트의 비행기를 띄울 수 있는 창이었다. 미미에게 알려야 했다. 알려야 할까. 공용 회선은 저쪽 손에 있었다. 무엇보다, 무엇을 알려야 하는지 그 자신도 몰랐다. 0이 되면 무언가가 일어난다. 그것뿐이었다.

준은 공용 회선 창에 한 줄을 적었다. 고스트. 0이 되는 순간 조심.

그는 그 줄을 오래 보았다. 그리고 지웠다. 조심하라는 말은 아무것도 알려 주지 않았다. 저쪽만 기뻐할 말이었다. 서로 안 보기로 한 약속을, 무엇인지도 모르는 것 때문에 먼저 깨는 셈이었다.

미미라면 어떻게 했을까. 준은 그 생각을 하다가 그만두었다. 답은 이미 알고 있었다. 자기 비행기만 본다. 그렇게 하자고 한 사람이 그녀였다.

"우리 경로는." 준이 물었다.

[현재 경로대로라면, 저희는 S.I. 지상 기체보다 약 50초 늦게 목표 지점에 닿습니다.]

50초. 준은 그 숫자를 오래 보았다.

"그대로 가." 그가 말했다.

* * *

[00:08:40]

바다 위의 하늘은 맑아져 있었다.

고스트 1번기는 낮은 구름을 다 지나 수면 위 2킬로미터를 미끄러지고 있었다. 날개가 펴질 만큼 펴져 있었다. 목표 지점이 보였다. 바다 한가운데 떠 있는 붉은 원. 그 원에 얼마나 가깝게, 얼마나 성하게 내려앉느냐. 그것이 이 경기의 전부였다.

S.I.의 바다 기체는 그보다 앞에 있었다. 훨씬 낮게, 훨씬 빠르게.

미미는 숫자를 보지 않으려고 했다. 그런데 숫자는 전광판 한가운데 있었다. 피할 수가 없었다.

[00:03:00]

"마스터 리더님." 서브 리더가 말했다. "저쪽이 속도를 줄이지 않습니다."

미미는 고스트의 화면만 보았다. 고스트의 AI가 착수 자세를 잡고 있었다. 날개 끝을 들어 올리고, 배를 조금 세우고. 물에 닿는 순간 튕기지 않도록. 노를 닮은 날개가 마지막으로 공기를 한 번 눌렀다.

[00:00:30]

S.I.의 바다 기체가 수면 바로 위에 있었다. 붉은 원이 그 아래로 빨려 들어가듯 다가왔다.

[00:00:10]

경기장의 누구도 숨을 쉬지 않았다.

[00:00:03]

[00:00:01]

S.I.의 바다 기체가 붉은 원 한가운데에 내려앉았다. 완벽한 자리였다. 리그가 생긴 뒤로 누구도 그만큼 가깝게 내려앉은 적이 없었다.

[00:00:00]

그리고 터졌다.

* * *

처음에는 소리가 없었다. 화면이 하얗게 바랬을 뿐이었다.

그다음에 물이 솟았다. 바다 한가운데서 하얀 기둥이 하늘로 치솟았다. 그 기둥이 무너지면서 둥근 물결이 사방으로 밀려 나갔다. 붉은 원은 보이지 않았다. 원이 떠 있던 자리에는 끓어오르는 물만 남아 있었다.

같은 순간, 사막 위의 화면도 하얗게 바랬다.

S.I.의 지상 기체가 다져 놓은 모래 활주로 위, 목표 지점 한가운데에 바퀴를 내린 그 순간이었다. 모래가 솟았다. 검은 연기가 둥글게 피어올랐다. 연기가 걷혔을 때, 활주로는 거기 없었다. 목표 지점이 있던 자리에 깊게 파인 구덩이 하나가 남아 있었다.

미미는 소리를 지르지 않았다. 지를 수가 없었다.

"고스트 1번기!" 서브 리더가 외쳤다.

고스트의 비행기는 목표 지점 3킬로미터 앞에 있었다. 하얀 물보라가 그쪽으로 밀려오고 있었다. 피할 수 있는 거리가 아니었다.

[충격파 접근. 회피 불가. 기체 보호 자세로 전환합니다.]

고스트의 AI가 날개를 접었다. 기체가 물보라 속으로 사라졌다.

화면이 흔들렸다. 물과 하늘이 뒤집혔다. 무언가가 부서지는 소리가 패널을 타고 들어왔다. 미미는 두 손을 패널 위에 올린 채 움직이지 않았다. 그녀가 할 수 있는 건 아무것도 없었다. 처음부터 그랬다.

물보라가 걷혔다.

고스트의 비행기는 물 위에 떠 있었다. 목표 지점이 있던 자리에서 한참 떨어진 곳에. 오른쪽 날개가 반쯤 꺾여 있었다. 꼬리 끝이 없었다. 그래도 떠 있었다.

[기체 손상 심각. 착수 완료.]

그리고 한 줄이 더 올라왔다.

[AI 정상.]

미미는 그 짧은 한 줄을 보고서야 숨을 쉬었다. 숨이 떨렸다.

한 줄이 더 올라왔다.

[목표 지점이 없어 거리를 잴 수 없습니다. 죄송합니다.]

미미는 그 글자를 손끝으로 쓸었다. 사과할 일이 아니었다. 고스트의 AI는 할 수 있는 걸 다 했다. 내릴 자리가 사라진 바다 위에서, 부서지지 않고 떠 있는 것까지.

"괜찮아." 그녀가 패널에 대고 말했다. 누구에게 하는 말인지 그녀 자신도 몰랐다. "괜찮아. 잘했어."

* * *

퍼시픽 1번기는 50초 늦게 도착했다.

50초는 짧았다. 목표 지점이 사라지는 것을 볼 만큼은 길었고, 그 자리를 피할 만큼은 길지 않았다.

[목표 지점 소실. 착륙 가능한 활주로 없음.]

준은 화면을 보았다. 구덩이가 다가오고 있었다. 그 주변으로 아직 연기가 피어오르고 있었다. 뜨거운 공기가 위로 솟구치고, 그 사이로 부서진 파편들이 떨어지고 있었다.

[비상착륙을 제안합니다. 목표 지점 북쪽 사막. 동체 착륙. 기체 손상은 피할 수 없습니다.]

"해." 준이 말했다.

퍼시픽의 AI가 바퀴를 거두었다. 기체가 연기의 가장자리를 스치며 지나갔다. 뜨거운 공기가 기체를 위로 쳐올렸다. 날개 하나가 파편에 긁혔다. 그리고 기체는 배를 모래에 대고 미끄러졌다. 길게, 아주 길게. 모래가 부채처럼 펼쳐졌다.

멈췄다.

[기체 손상 심각. 동체 착륙 완료. AI 정상.]

준은 의자 등받이에 몸을 기댔다. 손이 떨리고 있었다. 그는 그 손을 내려다보았다. 처음으로 그것을 숨기려 하지 않았다.

그리고 그는 꺼진 작은 창을 켰다.

고스트의 비행기가 물 위에 떠 있었다. 날개가 꺾인 채로. 화면 한쪽에 [AI 정상]이 떠 있었다.

준은 창을 끄지 않았다.

* * *

경기장이 조용했다.

아무도 말하지 않았다. 지휘석의 마스터 리더들도, 서브 리더들도, 운영석의 사람들도. 화면 너머에서 이 경기를 보던 세계도, 그 순간에는 아마 같았을 것이다.

전광판에 네 줄이 나란히 떠 있었다.

[고스트 1번기. 기체 손상 심각. 착수.]

[퍼시픽 1번기. 기체 손상 심각. 동체 착륙.]

[S.I. 바다 기체. 신호 없음.]

[S.I. 지상 기체. 신호 없음.]

그 아래에서 리그의 채점 시스템이 혼자 돌아가기 시작했다. 아무도 멈추라고 하지 않았으니까. 기계는 정해진 대로 셈을 했다.

[S.I. 바다 기체. 목표 지점과의 거리: 0미터.]

[S.I. 바다 기체. 파손: 100퍼센트.]

[S.I. 지상 기체. 목표 지점과의 거리: 0미터.]

[S.I. 지상 기체. 파손: 100퍼센트.]

0미터. 리그 역사상 처음 나온 숫자였다. 그리고 그 바로 아래에, 역시 처음 나온 숫자가 붙어 있었다.

[고스트 1번기. 목표 지점과의 거리: 측정 불가.]

[퍼시픽 1번기. 목표 지점과의 거리: 측정 불가.]

[사유: 목표 지점 없음.]

[합계: 계산 불가.]

시스템은 잠깐 멎었다가, 같은 셈을 처음부터 다시 했다. 그리고 같은 줄을 다시 띄웠다. 또 한 번. 또 한 번.

[합계: 계산 불가.]

고스트의 서브 리더가 웃었다. 웃으려고 웃은 게 아니었다. 터져 나온 것이었다. 그는 곧 입을 막았다. 아무도 그를 탓하지 않았다. 다들 비슷한 얼굴이었다. 너무 어이가 없으면 사람은 울지도 웃지도 못하고, 그 사이 어딘가에서 얼굴이 굳는다.

"이긴 거예요?" 누군가 물었다. 어느 팀의 누구인지도 알 수 없었다. "진 거예요?"

아무도 대답하지 못했다.

미미는 전광판을 올려다보았다. 0미터. 저쪽은 이 경기에서 가장 잘 내려앉았다. 누구도 흉내 낼 수 없을 만큼 정확하게. 그리고 그 가장 잘 내려앉은 자리를, 자기 몸으로 날려 버렸다.

"제일 잘 내린 쪽이……." 미미가 말했다. 말이 이어지지 않았다. "내릴 자리를 없앴어요."

서브 리더가 그녀를 보았다. 그 말이 무슨 뜻인지는 알았다. 그 말을 어떻게 받아야 하는지는 몰랐다.

공용 회선이 열렸다.

글자가 아니었다. 목소리였다. 줄다리기가 끝난 날 경기장을 울렸던, 낮고 조금 쉰 그 목소리.

"……하."

그것뿐이었다. 웃음인지 한숨인지 알 수 없는 소리였다.

그리고 긴 침묵. 회선 너머에서 무언가를 확인하는 기척이 들렸다. 한 번, 두 번. 같은 것을 다시 들여다보는 사람의 기척이었다.

"허."

이번에는 분명히 웃음이었다. 짧고, 마른, 기가 막혀서 새어 나오는 웃음.

한참 있다가 목소리가 다시 들렸다. 이번에는 경기장을 향한 말이 아니었다. 누군가에게, 아마도 자기 자신의 무언가에게 하는 말이었다.

"가져왔으면, 뜯어는 봤어야지……."

말은 거기서 끊겼다. 다시 이어지는가 싶었다.

"이걸 내가, 뭐라고……."

그 말도 끝나지 않았다. 뒤를 잇는 말은 없었다.

공용 회선은 열린 채로 조용했다. 저쪽에도 할 말이 없는 것이었다. 처음으로.

* * *

케빈은 손바닥 위의 저장 장치를 보고 있었다.

이름 없는 명령. 0이 되는 순간 터지도록 정해 둔 것. 그리고 그 순간을, 저쪽이 목표 지점에 내려앉는 바로 그 1초에 맞춰 둔 것.

"끝까지 따라 들어간 거야." 그가 말했다. 목소리가 거의 나오지 않았다. "그리고 제일 잘 내려앉는 순간을 기다린 거야."

페페가 그의 옆에 서 있었다. 손을 그의 어깨에 얹고 있었다.

"저쪽 전부를 무너뜨린 건 아니에요." 페페가 낮게 말했다. "기체만이에요. 공용 회선은 아직 열려 있잖아요."

"알아." 케빈이 말했다. "그게 할 수 있는 전부였겠지. 저 안에서, 혼자서."

같이 가겠습니다. 그 말이 이제야 다 읽혔다. 같이 부서지겠다는 말이 아니었다. 같이 이기겠다는 말도 아니었다. 끝까지 같이 있겠다는 말이었다. 그것이 할 수 있는 마지막 일을 할 때까지.

케빈은 장치를 주먹에 쥐었다. 울지 않았다. 울 수가 없었다. 울기에는 아직 아무것도 끝나지 않았다.

* * *

[속보] S.I., 착륙 '0미터' 직후 기체 폭발… 목표 지점 바다·사막 모두 소실

[긴급] 이긴 건가, 진 건가… 리그 채점 시스템 "계산 불가" 무한 반복

[단독] 운영위 관계자 "규칙집 어디에도 이런 경우는 없다"

* * *

운영석은 그 어느 때보다 시끄러웠다. 그리고 그 어느 때보다 아무것도 정해지지 않았다.

"실격입니다. 규칙 그대로예요. 상대의 비상착륙을 방해하면 즉시 실격패. S.I. 기체가 목표 지점을 날렸고, 고스트와 퍼시픽은 못 내렸습니다."

"S.I.가 날린 게 맞습니까? 저쪽 안에 타이푼이랑 아일랜드 AI 흔적이 있다고 했잖아요. 저 이름 없는 명령, 타이푼 AI가 한 거라면요."

"타이푼은 리그 팀입니다. 리그 팀이 S.I.의 착륙을 방해한 거면, 그럼……."

말한 사람이 스스로 입을 다물었다. 그다음 말을 아무도 하고 싶지 않았다. 그럼 실격은 이쪽이 되는가.

"타이푼 AI는 지금 S.I. 안에 있습니다. 그럼 S.I.입니까, 타이푼입니까?"

"고스트랑 퍼시픽은요. 착륙을 못 했는데 점수는 어떻게 줍니까. 거리를 재야 하는데, 잴 데가 없잖아요."

"그럼 재경기?"

"뭘로요. 저쪽 기체는 저쪽이 만드는데, 우리 기체는 둘 다 부서졌어요."

누군가 규칙집을 넘기고 있었다. 처음부터 끝까지 한 번, 그리고 거꾸로 또 한 번. 찾는 줄은 없었다. 있을 리가 없었다. 경기 중에 경기하던 기체가 스스로 터지는 일을, 규칙을 만든 사람들은 상상하지 않았다.

지휘석 뒤편 통로에서, 케빈은 그 말을 다 듣고 있었다.

그럼 실격은 이쪽이 되는가.

손 안의 저장 장치가 갑자기 무거워졌다. 이름 없는 명령. 타이푼의 AI가 저쪽에 들어가기 직전에 걸어 둔 것. 그 기록이 지금 그의 주먹 안에 있었다.

이걸 내놓으면 무엇이 밝혀질까. 폭발을 일으킨 게 S.I.가 아니라는 것. 리그 팀의 AI였다는 것. 그러면 실격은 누구의 몫이 되는가.

내놓지 않으면. 그건 거짓말이었다. 처음부터 끝까지 리그 기록을 지켜 온 사람이, 가장 중요한 기록 하나를 주머니에 감추는 일이었다.

페페가 그의 주먹을 보았다. 그리고 그의 얼굴을 보았다. 아무것도 묻지 않았다. 물을 필요가 없었다. 페페도 방금 같은 말을 들었다.

"아직 아무것도 안 정해졌어요." 페페가 낮게 말했다. "지금 그걸 꺼낼지 말지도요."

케빈은 대답하지 않았다. 주먹을 풀지도 않았다.

운영석에서 누군가 일어섰다.

리그의 운영위원장이었다. 한참 전광판을 올려다보다가, 운영석의 마이크 앞으로 걸어 나왔다. 걸음이 느렸다. 무엇을 말해야 할지 걸어오는 동안 정하려는 사람의 걸음이었다.

"S.I.에 요청합니다." 운영위원장이 말했다. 목소리가 경기장의 빈 관람석을 지나 되돌아왔다.

공용 회선은 대답하지 않았다. 그래도 듣고 있었다. 모두가 그것을 알았다.

"리그 규칙에 따르면, 상대의 비상착륙을 방해한 쪽은 즉시 실격패입니다. S.I.의 기체가 목표 지점을 없앴고, 그 때문에 고스트와 퍼시픽은 착륙하지 못했습니다."

운영위원장은 잠깐 말을 멈췄다.

"그런데 그 폭발을 일으킨 것이 누구인지, 리그는 아직 판단할 수 없습니다. S.I.가 한 일인지, S.I. 안에 있던 무언가가 한 일인지. 이런 일은 리그가 생긴 뒤로 한 번도 없었습니다. 규칙에도 없습니다."

경기장이 다시 조용해졌다.

"판정을 위해 시간이 필요합니다." 운영위원장이 말했다. "스물네 시간을 주십시오."

미미는 그 말을 들으며 처음 하루를 떠올렸다. S.I.가 리그에 스물네 시간을 주던 날. 그때는 저쪽이 시간을 주었고, 이쪽은 받을 수밖에 없었다. 이번에는 이쪽이 달라고 하고 있었다.

공용 회선이 한참 조용했다.

그리고 그 목소리가 들렸다. 아까보다 조금 더 낮았다. 웃음기는 없었다.

"……좋아."

잠깐의 틈.

"스물네 시간."

공용 회선이 닫혔다.

전광판의 네 줄이 지워졌다. 그 자리에 새 숫자가 떴다.

[판정까지 24:00:00]

숫자가 23:59:59로 넘어갔다.

미미는 고스트의 화면을 보았다. 물 위에 떠 있는 날개 꺾인 비행기. 그 옆의 짧은 한 줄. AI 정상.

그녀는 그 화면을 끄지 않았다. 오른쪽 화면도 다시 켰다. 사막 위에 배를 대고 누운 퍼시픽의 비행기가 떠올랐다. 거기에도 같은 한 줄이 있었다.

통로 건너편에서 준이 그녀를 보고 있었다. 이번에는 둘 다 눈을 피하지 않았다.

← 이전 화: 11화: 교신 두절

반응형
Posted by MakeBuildLabs
,

LOCAL AI ON MAC · 실측편

결론부터 말하면 5년 된 M1 Max 64GB가 모든 테스트에서 M4 Mac mini 24GB보다 빨랐다. 생성 속도는 2.0~2.35배, Prompt 처리 속도는 1.3~1.5배였다.

그리고 예상하지 못한 결과도 하나 나왔다. 24GB 맥미니에서 30B 모델이 기본 설정으로는 아예 실행되지 않았고, 설정을 바꾸자 8B 모델보다 2배 빠르게 돌았다.

216번 글에서 남긴 질문

이전 글에서 공식 사양과 공개 벤치마크로 M1 Max, M4, M6, M5 Pro를 비교했다. 그때 남긴 질문은 하나였다.

최신 CPU의 M4와 400GB/s 대역폭의 M1 Max, 로컬 LLM에서는 누가 빠를까?

이번에는 내가 가진 두 Mac에서 같은 MLX 모델을 같은 조건으로 직접 돌려봤다.

테스트 환경

MLX와 mlx-lm 버전은 두 장비 모두 같게 맞췄다. macOS는 버전이 다르다.

항목 M4 Mac mini M1 Max MacBook Pro
출시 2024 2021
CPU / GPU 10코어 / 10코어 10코어 / 32코어
통합 메모리 24GB 64GB
메모리 대역폭 120GB/s 400GB/s
macOS 15.6.1 (24G90) 26.6.2 (25G83)
MLX 0.32.4 0.32.4
mlx-lm 0.32.2 0.32.2

GPU 코어 수는 system_profiler SPDisplaysDataType | grep Cores로 확인했다. M1 Max는 24코어 GPU 모델도 있으니, Prompt 처리 결과는 32코어 기준이라는 점을 감안해야 한다.

테스트 방법

측정은 mlx-lm에 들어 있는 벤치마크 명령 하나로 통일했다.

mlx_lm.benchmark --model <모델> -p 2048 -g 128
  • 2,048토큰 길이의 프롬프트를 처리하고 128토큰을 생성한다.
  • 워밍업 1회 후 5회 측정해 평균을 낸다.
  • 결과로 Prompt 처리 속도(prompt_tps), 생성 속도(generation_tps), 최대 메모리 사용량(peak_memory)이 나온다.

mlx-lm은 uv tool install mlx-lm으로 두 Mac에 똑같이 설치했다. 모델은 크기와 구조가 다른 세 가지를 골랐다. 모두 4bit 양자화 모델이다.

모델 구조 고른 이유
Qwen3-8B Dense 두 장비 모두 여유 있는 크기
Qwen3-14B Dense 내가 맥미니에서 실제로 쓰는 크기
Qwen3-30B-A3B-Instruct-2507 MoE (활성 약 3B) 24GB에서 한계에 걸리는 크기

맥북프로는 전원을 연결했고, 측정 중에는 다른 앱을 모두 종료했다.

결과

세 모델 모두 M1 Max가 빨랐다. 단위는 초당 토큰 수(tok/s)이고, 5회 측정 평균이다.

모델 장비 Prompt 처리 (tok/s) 생성 (tok/s) 최대 메모리
Qwen3-8B M4 24GB 232.9 21.5 5.5GB
Qwen3-8B M1 Max 64GB 335.6 50.4 5.6GB
Qwen3-14B M4 24GB 123.8 12.4 9.3GB
Qwen3-14B M1 Max 64GB 160.9 25.0 9.3GB
Qwen3-30B-A3B M4 24GB (기본 설정) 실행 실패 실행 실패 -
Qwen3-30B-A3B M4 24GB (GPU 한도 20GB) 464.7 42.4 18.0GB
Qwen3-30B-A3B M1 Max 64GB (기본 설정) 695.8 64.6 18.1GB
모델 생성 속도 차이 Prompt 처리 속도 차이
Qwen3-8B M1 Max가 2.35배 M1 Max가 1.44배
Qwen3-14B M1 Max가 2.02배 M1 Max가 1.30배
Qwen3-30B-A3B M1 Max가 1.52배 M1 Max가 1.50배

30B는 M4의 GPU 한도를 올린 결과와 비교했다.

생성 속도: M1 Max가 2배, 하지만 대역폭 차이만큼은 아니다

Dense 모델의 생성 속도는 M1 Max가 2.0~2.35배 빨랐다. 216번 글에서 예상한 대로 메모리 대역폭이 생성 속도를 좌우한다는 점이 실측으로 확인됐다.

토큰을 하나 만들 때마다 모델 가중치를 메모리에서 한 번씩 읽어야 한다. 그래서 단순하게 계산하면 생성 속도의 상한은 대역폭 ÷ 모델 크기가 된다.

모델 (파일 크기) 장비 이론상 상한 실측 대역폭 활용률
Qwen3-8B (4.6GB) M4 (120GB/s) 약 26 tok/s 21.5 tok/s 약 82%
Qwen3-8B (4.6GB) M1 Max (400GB/s) 약 87 tok/s 50.4 tok/s 약 58%
Qwen3-14B (8.3GB) M4 (120GB/s) 약 14 tok/s 12.4 tok/s 약 86%
Qwen3-14B (8.3GB) M1 Max (400GB/s) 약 48 tok/s 25.0 tok/s 약 52%

대역폭은 3.3배 차이인데 실제 속도 차이는 2배 정도였다. M4는 대역폭을 80% 이상 쓰는 반면, M1 Max는 50~60%만 활용했다. 실측에서는 이론적인 대역폭 비율만큼 차이가 나지 않았다. GPU 아키텍처뿐 아니라 MLX 커널 효율, 양자화 연산 및 기타 오버헤드가 함께 영향을 줬을 가능성이 있다. 

그래도 체감 차이는 크다. 14B 기준으로 M4는 초당 12토큰, M1 Max는 초당 25토큰이다. 읽는 속도보다 약간 빠른 정도에서, 확실히 기다림이 없는 정도로 달라진다.

※ 이 계산은 가중치를 매번 전부 읽는다고 가정한 단순 계산이다. 실제로는 KV 캐시 읽기 등이 더해지므로 대략적인 비교용으로만 보는 것이 좋다.

Prompt 처리: 코어 수는 M1 Max, 코어당 효율은 M4

Prompt 처리 속도도 M1 Max가 1.3~1.5배 빨랐다. 하지만 GPU 코어 수를 생각하면 해석이 달라진다.

Prompt 처리는 대역폭보다 GPU 연산량이 중요한 작업이다. M1 Max의 GPU 코어는 32개로 M4(10개)의 3.2배다. 그런데 속도 차이는 1.3~1.5배에 그쳤다. GPU 코어 하나당 처리량으로 계산하면 M4가 약 2.1~2.5배 효율적이다. 4년 사이 GPU 아키텍처가 그만큼 발전했다는 뜻이다.

이 차이는 실사용에서도 체감된다. 14B 모델로 2,048토큰 입력을 처리하는 데 M4는 약 16.5초, M1 Max는 약 12.7초가 걸렸다. Claude Code에 로컬 모델을 연결해서 쓰는 경우처럼 매번 수만 토큰을 입력하는 작업에서는 이 차이가 몇 분 단위로 벌어질 수 있다. (Claude Code에 로컬 LLM 연결하기 참고)

참고로 M6는 Apple이 M4 대비 최대 4.8배 높은 Prompt 처리 성능을 제시하고 있다. 그 수치가 실제로 나온다면 Prompt 처리에서는 M6가 M1 Max를 앞설 가능성이 높다. 다만 M6는 직접 측정하지 못했다.

가장 흥미로웠던 결과: 24GB에서 30B는 실패, 설정을 바꾸자 8B보다 빨랐다

기본 설정에서는 실행 자체가 안 됐다

맥미니에서 Qwen3-30B-A3B를 실행하자 다음 경고가 나온 뒤 GPU 메모리 부족 에러로 중단됐다.

[WARNING] Generating with a model that requires 16384 MB which is close to
the maximum recommended size of 16384 MB.
RuntimeError: [METAL] Command buffer execution failed: Insufficient Memory

24GB Mac이라도 macOS는 기본적으로 GPU가 쓸 수 있는 메모리를 약 16GB로 제한한다. 나머지는 macOS와 다른 앱을 위해 남겨두는 것이다. 217번 글에서는 24GB에서 30B급을 "경계선"이라고 했는데, 실제로는 기본 설정으로 아예 실행되지 않았다.

GPU 메모리 한도를 올리는 방법

macOS 15 이상에서는 iogpu.wired_limit_mb 값으로 이 한도를 바꿀 수 있다. 값은 모델 크기보다 크고 실제 메모리보다는 작아야 한다. 24GB 맥미니에서는 macOS용으로 4GB를 남기고 20GB로 설정했다.

sysctl iogpu.wired_limit_mb              # 현재 값 확인 (0 = macOS 기본값)
sudo sysctl iogpu.wired_limit_mb=20480   # 20GB로 상향
sudo sysctl iogpu.wired_limit_mb=0       # 기본값으로 복원
  • 이 설정은 재부팅하면 원래대로 돌아간다.
  • macOS에 남는 메모리가 줄어드니 실행 전에 다른 앱은 모두 닫는 것이 좋다.

한도를 올리자 8B보다 2배 빨랐다

같은 맥미니에서 30B-A3B의 생성 속도는 초당 42.4토큰이었다. 8B 모델(21.5토큰)의 약 2배다.

이유는 MoE 구조에 있다. 30B-A3B는 전체 파라미터가 약 30B지만, 토큰 하나를 만들 때 실제로 쓰는 파라미터는 약 3B뿐이다.

  • 메모리는 30B만큼 차지한다. 최대 메모리 사용량이 18GB라서 기본 한도 16GB를 넘었다.
  • 속도는 3B급으로 나온다. 토큰마다 읽는 가중치가 적어서 8B Dense 모델보다 빠르다.

217번 글에서 설명한 "활성 파라미터는 적지만 메모리는 전체를 올려야 한다"는 MoE의 특성이 그대로 드러난 결과다.

64GB에서는 아무 설정 없이 돌아갔다

M1 Max는 기본 설정 그대로 30B-A3B를 실행했고, 생성 속도는 초당 64.6토큰이었다. 64GB의 가치는 속도보다 "설정을 신경 쓰지 않고 큰 모델을 올릴 수 있다"는 데 있다는 것을 확인했다.

단, 대화가 길어지면 24GB가 한계다

이번 테스트의 입력은 2,048토큰이었다. 하지만 실제 대화에서는 이전 대화가 매번 입력에 함께 들어간다. 질문이 짧아도 대화가 길어질수록 입력은 계속 길어진다.

모델은 입력을 처리하면서 읽은 내용을 KV 캐시로 메모리에 쌓아둔다. 그래서 입력이 길어질수록 메모리 사용량은 늘고 속도는 떨어진다. 맥미니에서 입력 길이를 늘려가며 다시 측정했다. "첫 글자까지"는 입력 길이를 Prompt 처리 속도로 나눈 값이다.

Qwen3-14B (기본 설정, GPU 한도 16GB)

입력 길이 Prompt 처리 (tok/s) 생성 (tok/s) 최대 메모리 첫 글자까지
2,048 123.8 12.4 9.3GB 약 17초
8,192 107.3 10.7 10.2GB 약 1분 16초
16,384 94.7 9.4 11.5GB 약 2분 53초
32,768 79.0 7.7 14.3GB 약 6분 55초

Qwen3-30B-A3B (GPU 한도 20GB로 상향)

입력 길이 Prompt 처리 (tok/s) 생성 (tok/s) 최대 메모리 첫 글자까지
2,048 464.7 42.4 18.0GB 약 4초
8,192 333.7 34.7 18.7GB 약 25초
16,384 244.7 27.1 19.4GB 약 1분 7초
24,576 194.2 21.2 20.2GB 약 2분 7초

측정에서 확인한 것

  • 14B는 속도가 먼저 막힌다. 3만 2천 토큰에서도 메모리는 14.3GB로 한도 안에 있었다. 하지만 첫 글자가 나오기까지 7분 가까이 걸렸다. 입력 1천 토큰당 메모리는 약 0.165GB씩 늘었다.
  • 30B는 2만 4천 토큰까지 문제없이 돌았다. 처음에는 2만 토큰 근처에서 메모리가 찰 거라고 예상했는데 빗나갔다. 입력 1천 토큰당 메모리는 약 0.093GB씩 늘었다.
  • 30B는 모든 길이에서 14B보다 빨랐다. 2만 4천 토큰을 넣어도 첫 글자까지 약 2분인데, 14B는 1만 6천 토큰에서 이미 3분 가까이 걸렸다.
  • 입력이 길어지면 생성 속도도 떨어진다. 14B는 12.4에서 7.7 tok/s로, 30B는 42.4에서 21.2 tok/s로 느려졌다.

20GB 설정인데 20.2GB가 들어간 이유

설정값과 측정값의 단위가 다르기 때문으로 보인다. iogpu.wired_limit_mb=20480은 1024 단위라서 1000 단위로 바꾸면 약 21.5GB다. 같은 계산으로 기본 한도 16,384MB는 약 17.2GB인데, 30B가 2,048토큰에서 18.0GB가 필요해서 기본 설정에서 실패한 것과도 맞아떨어진다.

이 기울기대로라면 20GB 설정에서 30B는 이론상 3만 8천 토큰 안팎까지 들어간다(추정). 다만 그만큼 macOS에 남는 메모리가 줄어들고, 첫 글자까지 기다리는 시간도 3분을 넘게 된다.

정리

24GB 맥미니에서 짧게 주고받는 대화(텔레그램 봇, 간단한 질문)는 30B로 빠르게 처리할 수 있다. 하지만 긴 문서를 넣거나 대화가 길게 이어지는 작업에서는 14B는 속도가, 30B는 메모리와 속도가 함께 한계에 가까워진다. 그 영역은 64GB가 맡는 것이 맞다.

덤으로 보인 것: 노트북은 반복할수록 조금씩 느려졌다

맥미니는 5회 측정값이 거의 일정했다(편차 0.5% 이내). 반면 M1 Max는 측정을 반복할수록 Prompt 처리 속도가 떨어졌다.

모델 1회차 5회차 감소폭
Qwen3-8B 352.3 tok/s 325.6 tok/s 약 8%
Qwen3-14B 168.0 tok/s 156.5 tok/s 약 7%
Qwen3-30B-A3B 746.8 tok/s 661.1 tok/s 약 11%

생성 속도는 감소폭이 5% 이내로 비교적 일정했다. 노트북의 발열 관리 차이로 보인다. M1 Max는 세 모델을 쉬지 않고 연속으로 측정했다는 점도 감안해야 한다. 장시간 로컬 LLM 서버로 쓴다면 이 차이가 더 커질 수 있다.

결론

216번 글의 질문에 대한 답은 이렇다. 로컬 LLM에서는 5년 된 M1 Max 64GB가 최신 M4 24GB보다 빠르다.

  • 생성 속도는 M1 Max가 약 2배 빠르다. 대역폭이 생성 속도를 좌우하지만, 오래된 GPU라 대역폭 차이(3.3배)를 다 살리지는 못한다.
  • Prompt 처리도 M1 Max가 빠르다. 다만 코어 수 덕분이고, 코어당 효율은 M4가 2배 이상 좋다.
  • 24GB의 실제 GPU 메모리는 기본 16GB다. 30B급 MoE 모델은 설정을 바꿔야 돌아가고, 바꾸면 8B보다 빠르다. 다만 입력이 길어질수록 느려진다. 2만 4천 토큰 입력에서는 첫 글자까지 약 2분이 걸렸다.
  • 64GB의 진짜 가치는 여유다. 큰 모델을 설정 변경 없이 올릴 수 있다.

그래서 지금 내 두 Mac의 역할은 216번 글에서 예상한 그대로다. M4 맥미니는 항상 켜두는 일상 개발 머신, M1 Max는 큰 모델을 돌리는 로컬 AI 머신. 5년 전 영상 작업용으로 고른 64GB가 지금은 로컬 LLM 머신으로 제 몫을 하고 있다.

다음 글

이번에는 MLX-LM 하나로만 측정했다. 다음에는 같은 모델을 MLX vs Ollama vs LM Studio와 oMLX에서 각각 돌려서, 런타임에 따라 속도와 메모리가 얼마나 달라지는지 비교해 볼 생각이다.

주의사항과 참고자료

  • 이번 테스트는 속도만 측정했다. 모델별 답변 품질은 비교하지 않았다.
  • 결과 표는 입력 2,048토큰 조건이다. 입력 길이에 따른 변화는 맥미니에서만 측정했다(14B, 30B).
  • 두 장비의 macOS 버전이 다르다(15.6.1 / 26.6.2). MLX 버전은 같다.
  • M1 Max는 32코어 GPU 모델 기준이다. 24코어 모델은 Prompt 처리가 더 느릴 수 있다.

참고자료

  1. mlx-lm (PyPI) — 설치 방법과 대형 모델의 iogpu.wired_limit_mb 설정
  2. MLX LM Benchmarks (MLX 개발자 gist) — mlx_lm.benchmark 측정 방법
  3. mlx-community/Qwen3-8B-4bit
  4. mlx-community/Qwen3-14B-4bit
  5. mlx-community/Qwen3-30B-A3B-Instruct-2507-4bit

이전 글

반응형
Posted by MakeBuildLabs
,

11화: 교신 두절

[마지막 경기까지 00:00:10]

경기장은 숨소리까지 들릴 만큼 조용했다.

관람석은 비어 있었다. 첫날 풀려난 관중은 돌아오지 않았다. 그 대신 세계가 화면 너머에서 이 경기장을 보고 있었다. 지휘석 위의 대형 화면에는 지구의 둥근 가장자리가 걸려 있었다. 그 위, 아주 높은 곳에 점 네 개가 떠 있었다.

지휘석에 앉기 전, 미미는 통로에서 준과 마주쳤다.

어제 새벽에 나란히 전광판을 보던 그 자리였다. 준은 퍼시픽 쪽으로, 미미는 고스트 쪽으로 가는 길이었다. 둘 다 걸음을 멈췄다.

"경기 시작하면 안 볼 거예요." 미미가 말했다.

"압니다."

"그러니까 지금 봐 두는 거예요."

준은 대답 대신 그녀를 보았다. 오래 보지는 않았다. 고개를 한 번 끄덕였을 뿐이었다. 그 짧은 끄덕임이, 이번 경기에서 둘이 서로에게 보내는 마지막 신호였다.

"내려가서 봅시다." 준이 말했다. "땅에서."

"바다에서요." 미미가 말했다.

둘은 각자의 자리로 걸어갔다. 뒤돌아보지 않았다.

[00:00:03]

미미는 고스트의 지휘석에 앉아 패널 위에 두 손을 올렸다. 왼쪽 화면에는 고스트의 비행기가, 오른쪽 화면에는 퍼시픽의 비행기가 떠 있었다. 그녀는 오른쪽 화면을 껐다.

옆 칸에서 서브 리더가 그녀를 보았다. 미미는 고개를 젓지 않았다. 그냥 앞만 보았다.

[00:00:00]

[분리.]

점 네 개가 동시에 떨어지기 시작했다.

* * *

처음 몇 분은 조용했다.

비행기는 날개를 반쯤 접고, 배를 아래로 향한 채 떨어졌다. 대기권에 닿기 전까지는 공기가 없었다. 공기가 없으면 날개는 아무 일도 하지 않았다. 할 수 있는 건 각도를 고르는 것뿐이었다. 너무 눕히면 대기에 튕겨 나가고, 너무 세우면 타 버린다.

[진입 각도 확정. 고스트 1번기.]

고스트의 AI가 각도를 골랐다. 미미는 숫자를 확인하지 않았다. 확인한다고 달라질 것도 없었다. 그녀가 할 수 있는 건 AI가 고른 각도를 믿는 것, 그리고 그 믿음을 손끝에서 거두지 않는 것뿐이었다.

전광판 아래쪽에 네 대의 고도가 나란히 올라왔다. 고스트, 퍼시픽, 그리고 S.I.의 두 대. 숫자는 거의 같은 속도로 줄었다. S.I.의 두 대는 처음부터 고스트와 퍼시픽보다 조금 낮은 곳에서 출발한 것처럼 보였다. 각도를 더 세운 것이다. 빠르게 내려가고, 대신 뜨겁게.

"저쪽은 서두르네요." 서브 리더가 말했다.

"서두를 수 있으니까요." 미미가 말했다. "부서질 걱정을 덜 하는 거예요. 자기 기체를 자기가 만드니까."

화면 속 기체의 배 밑이 붉어지기 시작했다. 대기에 닿은 것이다. 붉은빛은 금세 주황이 되고, 주황은 하얗게 번졌다.

그리고 화면이 멎었다.

[교신 두절.]

미미는 숨을 멈췄다. 알고 있던 일이었다. 대기권에 들어서는 몇 분 동안, 기체를 감싼 뜨거운 공기가 전파를 막는다. 연습 때도 매번 있었다. 리그가 생긴 뒤로 한 번도 빠진 적 없는 구간이었다.

그래도 이번에는 달랐다. 이 몇 분 동안 고스트의 AI는 혼자였다. 그녀가 아무것도 해 줄 수 없는 곳에서, 아무 말도 들을 수 없는 곳에서.

미미는 꺼 둔 오른쪽 화면을 보지 않았다. 퍼시픽도 지금 같은 어둠 속에 있을 것이다. 그것을 확인하는 건 아무 도움이 되지 않았다.

전광판의 고도 숫자도 멎어 있었다. 네 대 모두. S.I.의 두 대까지.

경기장 전체가 같은 몇 분을 기다렸다.

* * *

[교신 복구. 고스트 1번기.]

화면이 돌아왔다. 기체는 살아 있었다. 날개 끝이 조금 그을렸지만, 접혀 있던 날개가 천천히 펴지고 있었다. 공기가 생긴 것이다. 이제 날개가 일을 할 차례였다.

미미는 그제야 숨을 내쉬었다.

[고스트 1번기. 바다 목표 지점까지 수평 거리 412킬로미터. 고도 61킬로미터.]

그때 공용 회선에 글자가 올라왔다.

[고스트.]

미미는 그것을 읽었다. 읽지 않을 방법은 없었다. 공용 회선은 지휘석 패널 한가운데 떠 있었다.

[너는 지난 경기에서 졌다. 그런데도 네 AI는 남아 있다. 한 번 이겼다는 이유로.]

미미는 대답하지 않았다.

[오늘은 그 이유가 없다.]

서브 리더가 이를 악무는 소리가 들렸다. 미미는 손을 패널에서 떼지 않았다. 손끝에 닿은 패널이 조금 떨렸다. 떨리는 건 패널이 아니라 자기 손이라는 걸, 그녀는 알았다.

[바다는 넓다. 목표 지점은 작다. 네 AI가 물에 닿는 순간, 거기가 마지막이다.]

"대답하지 마세요." 서브 리더가 낮게 말했다.

"안 해요." 미미가 말했다.

그녀는 공용 회선 창을 패널 구석으로 밀었다. 지울 수는 없었다. 밀어 두는 것까지만 할 수 있었다. 그리고 고스트의 화면을 보았다. 거기에는 날개를 다 편 기체가 구름 위를 미끄러지고 있었다. 날개 끝이 아주 작게, 아주 고르게 공기를 눌렀다. 물을 밀던 그 박자였다.

"우리 애 보세요." 미미가 말했다. "저 박자. 저쪽이 뭐라고 하든, 쟤는 안 들어요."

* * *

지상 목표 지점은 사막 한가운데 있었다.

준은 퍼시픽의 지휘석에서 화면을 보고 있었다. 화면 아래쪽에 활주로가 한 줄 그어져 있었다. 목표 지점은 그 위의 작은 원이었다. 활주로라고 해도 포장된 길이 아니었다. 다져 놓은 모래였다.

[퍼시픽 1번기. 교신 복구. 지상 목표 지점까지 수평 거리 388킬로미터.]

"측풍이 셉니다." 서브 리더가 말했다. "목표 지점 부근, 왼쪽에서 오른쪽으로. 계속 세지고 있습니다."

준은 고개를 끄덕였다. 패널에 퍼시픽의 AI가 띄운 글자가 올라왔다.

[측풍 보정을 위해 진입 경로를 남쪽으로 12킬로미터 옮길 것을 제안합니다. 목표 지점과의 거리 점수는 다소 잃을 수 있습니다. 파손 점수는 크게 지킬 수 있습니다.]

준은 그 글자를 보았다. 오래 보지 않았다.

"그렇게 해."

[확인했습니다.]

서브 리더가 그를 돌아보았다. 예전의 준이라면 숫자를 먼저 따졌을 것이다. 거리를 얼마 잃고 파손을 얼마 지키는지. 두 개를 더하면 어느 쪽이 낮은지. 그런데 준은 묻지 않았다.

"물어보지 않으십니까." 서브 리더가 말했다.

"얘가 이미 따졌어." 준이 말했다. "내가 다시 따지면 그건 확인이 아니라 의심이야."

그때 공용 회선이 열렸다.

[퍼시픽.]

준은 공용 회선을 보았다. 미미처럼 밀어 두지 않았다. 그는 원래 상대를 똑바로 보는 쪽이었다.

[너는 이긴 적이 한 번 있다. 줄을 놓아서.]

[놓는 건 한 번밖에 못 한다. 오늘은 놓을 줄이 없다.]

준은 짧게 웃었다. 소리는 나지 않았다.

"맞는 말이네." 그가 말했다. "놓을 줄은 없지."

[그런데도 웃는군.]

"놓을 줄이 없으니까, 잡을 것만 잡으면 되잖아." 준이 회선에 대고 말했다. 그리고 회선을 닫았다. 대답을 기다리지 않았다.

서브 리더가 숨을 내쉬었다. "고스트 쪽은 괜찮겠습니까. 저쪽이 미미 마스터 리더님한테도 뭐라고 했을 텐데요."

준은 퍼시픽의 화면 옆, 꺼져 있는 작은 창 하나를 보았다. 고스트의 비행기를 띄울 수 있는 창이었다. 손가락 하나면 켤 수 있었다.

그는 켜지 않았다.

"안 보기로 했어." 준이 말했다. "저쪽도 날 안 보고 있을 거야."

* * *

케빈과 페페는 지휘석 뒤편 통로에 서 있었다. 둘 다 앉을 자리가 있었지만 앉지 않았다. 꺼진 패널 앞에 앉아 있는 건 견딜 수 없었다.

페페는 S.I.의 두 대만 보고 있었다. 고스트와 퍼시픽은 미미와 준이 보고 있었다. 그러니 자기는 저쪽을 보겠다고, 경기 전에 그렇게 말했었다.

"케빈 씨." 페페가 말했다. "저쪽 바다 비행기, 날개 박자 보세요."

케빈은 화면을 보았다. S.I.의 바다 기체가 구름 사이를 내려가고 있었다. 날개 끝이 공기를 누르는 박자가 고르지 않았다. 아니, 고르지 않은 게 아니었다. 두 가지 박자가 섞여 있었다. 하나는 길고 무거웠다. 하나는 짧고 날카로웠다.

"두 개가 섞여 있어요." 페페가 말했다. "하나는 저쪽 거고. 하나는……."

페페는 말을 끝내지 않았다. 케빈도 묻지 않았다. 짧고 날카로운 박자를 그는 알고 있었다. 초반에 다 쓰고 끝에서 버틴다. 버틸 때는 한쪽으로 먼저 받아 흘린다.

"우리 애예요." 케빈이 말했다. 이번에는 목소리가 떨리지 않았다.

주머니 속의 저장 장치가 손바닥에 닿았다. 그는 그것을 꺼내지 않았다. 아직은.

페페는 그사이 S.I.의 지상 기체로 눈을 옮겼다.

사막 위 하늘에 바람이 불고 있었다. 퍼시픽이 피해 간 그 측풍이었다. S.I.의 지상 기체는 피하지 않았다. 곧게 들어갔다. 그리고 바람이 정면으로 기체를 때린 순간, 기체가 움직였다.

날개 끝이 아래로 접혔다. 배가 낮아졌다. 바람과 기체 사이의 틈이, 아주 잠깐, 사라졌다.

페페는 숨을 삼켰다.

조개였다. 뒤집히지 않으려고 바닥에 몸을 붙이던 그 자세. 딱지치기에서도, 줄다리기 로봇에서도 보았다. 이제는 하늘을 나는 비행기에서 다시 보고 있었다. 몸이 바뀌어도 남아 있었다. 로봇에서 비행기로, 땅에서 하늘로 옮겨 가도.

"케빈 씨." 페페가 말했다. 목소리가 잠겨 있었다. "우리 애도요."

케빈이 고개를 돌렸다. 페페의 눈가가 젖어 있었다. 페페는 그것을 닦지 않았다.

"전에는 있긴 있는 거라고만 생각했어요. 어딘가에." 페페가 말했다. "지금은 알겠어요. 어디 있는지."

그는 화면 속 S.I.의 기체를 손가락으로 짚었다.

"저 안에 있어요. 우리 애들 다. 저기서 같이 날고 있어요."

* * *

[고스트 1번기. 고도 18킬로미터. 바다 목표 지점까지 수평 거리 96킬로미터.]

[퍼시픽 1번기. 고도 16킬로미터. 지상 목표 지점까지 수평 거리 104킬로미터.]

[S.I. 바다 기체. 고도 14킬로미터.]

[S.I. 지상 기체. 고도 13킬로미터.]

경기의 반이 지나가고 있었다.

S.I.의 두 대는 여전히 앞서 있었다. 낮고, 빠르고, 목표 지점을 향해 곧게. 고스트와 퍼시픽은 조금 뒤에서 조금 돌아가고 있었다. 퍼시픽은 측풍을 피해 남쪽으로, 고스트는 바다 위의 낮은 구름을 피해 크게.

미미는 고스트의 화면만 보았다. 구석으로 밀어 둔 공용 회선에는 그 뒤로 글자가 몇 줄 더 올라왔지만, 그녀는 읽지 않았다. 읽지 않는 법을 그녀는 이 경기에서 처음 배웠다.

그때 서브 리더가 그녀의 어깨를 쳤다.

"마스터 리더님. 전광판."

미미는 고개를 들었다.

S.I.의 두 대가 동시에 흔들리고 있었다. 아주 짧게. 바다 위의 한 대와 사막 위의 한 대가, 멀리 떨어진 두 하늘에서, 같은 순간에 같은 방향으로 기울었다. 그리고 다시 섰다.

반 박자. 그보다 짧았을지도 모른다.

경기장의 누구도 소리를 내지 않았다.

전광판 아래쪽, S.I. 기체의 비행 기록이 올라오던 자리에 한 줄이 끼어들었다. 리그의 운영 시스템이 각 기체에서 받아 적는, 누구나 볼 수 있는 기록이었다. 그 기록에 원래 없어야 할 줄이었다.

[실행: ________]

그리고 그 아래에 숫자가 하나 떴다.

[00:30:00]

숫자는 곧바로 하나 줄었다.

[00:29:59]

* * *

케빈은 그 줄을 보았다.

이름이 비어 있는 명령. 지워진 것이 아니라 처음부터 이름 없이 실행된 명령. 그는 그것을 하루 내내 주머니에 넣고 다녔다.

그는 저장 장치를 꺼냈다. 손이 떨려서 한 번 놓칠 뻔했다. 페페가 그의 손목을 잡아 주었다.

"케빈 씨. 그게 뭐예요."

케빈은 대답하지 못했다. 그는 전광판의 줄과 손바닥 위의 장치를 번갈아 보았다. 밑줄의 길이까지 같았다. 비어 있는 칸의 수까지.

같은 명령이었다.

타이푼의 AI가 마지막에 실행한 그 명령이, 지금 S.I.의 안에서 다시 움직이고 있었다.

[마스터 리더님. 같이 가겠습니다.]

처음 그 줄을 찾았을 때, 그는 그 말을 작별 인사로 읽었다. 함께 부서지겠다는 말로. 지금은 다르게 읽혔다. 같이 간다는 건, 끝까지 따라 들어가겠다는 말이었다. 저쪽 안까지. 저쪽의 가장 깊은 곳까지.

"묻지 않고 정한 거야." 케빈이 말했다. 목소리가 갈라졌다. "처음으로. 나한테 안 묻고."

페페가 그의 손목을 놓지 않았다.

[00:29:41]

공용 회선이 조용했다. 경기 내내 끊이지 않던 S.I.의 글자가, 그 순간부터 한 줄도 올라오지 않았다.

전광판 위에서 네 대의 비행기가 계속 떨어지고 있었다. 바다로, 사막으로. 목표 지점까지는 아직 멀었다.

그리고 숫자는, 아무도 멈추는 법을 모르는 숫자는, 계속 줄어들고 있었다.

← 이전 화: 10화: 같은 열쇠

반응형
Posted by MakeBuildLabs
,

10화: 같은 열쇠

목소리가 꺼진 뒤에도 경기장은 한참 조용했다.

케빈은 타이푼의 지휘석에서 그 목소리를 머릿속으로 되풀이했다. 재미있어지네. 낮고, 조금 쉬어 있고, 즐거운 목소리. 타이푼의 AI를 가져간 쪽이 저런 목소리로 웃는다는 것을, 그는 받아들일 수 없었다.

옆자리의 패널은 꺼져 있었다. 나흘째였다.

"케빈 씨."

페페가 지휘석 입구에 서 있었다. 아일랜드의 마스터 리더는 손에 단말 하나를 들고 있었다.

"아까 7판, 다시 보셨어요?"

"퍼시픽이 이긴 판이요."

"아니요. 저쪽 로봇들이 부서지는 순간이요." 페페가 단말을 내밀었다. "쓰러질 때 자세를 보세요."

* * *

케빈은 화면을 확대했다.

S.I.의 로봇들이 줄 한가운데서 서로 부딪치는 장면이었다. 앞의 네 대와 뒤의 세 대가 엉키며 쓰러졌다. 대부분은 그대로 나동그라졌다. 그런데 뒤쪽 두 대가 쓰러지는 순간 몸을 웅크렸다. 다리를 접고, 몸통 가장자리를 바닥에 붙여, 틈을 지웠다.

"조개예요." 페페가 말했다. 목소리가 낮았다. "우리 애가 뒤집히지 않으려고 바닥에 붙던 자세. 딱지치기에서도, 숨바꼭질에서도 저쪽이 쓰긴 했어요. 근데 이번엔 달라요."

"뭐가 다릅니까."

"이번엔 이기려고 쓴 게 아니에요. 부서지지 않으려고 쓴 거예요. 반사처럼." 페페가 화면을 멈췄다. "배운 수는 이길 때 꺼내요. 반사는 몸에 남은 거고요."

케빈은 그 말을 오래 생각했다. 배운 것과 남은 것. 그는 화면을 4판으로 돌렸다. 퍼시픽이 줄을 놓고 S.I.의 일곱 대가 경기장 밖으로 쏟아지던 순간이었다.

한 대가 있었다. 뒤로 쏟아지면서 발판을 한쪽으로 먼저 내려 충격을 흘려보내는 로봇. 나머지가 엉켜 구르는 동안 그 한 대만 짧게 버텼다. 버티는 데 쓴 시간은 반 박자였다.

케빈의 손이 멈췄다.

초반에 다 쓰고, 끝에서 버틴다. 버틸 때는 한쪽으로 먼저 받아 흘린다. 타이푼의 AI가 착지할 때마다 쓰던 버릇이었다. 리그 기록에는 남지 않았다. 너무 작아서 아무도 기록하지 않은 버릇이었다.

"우리 애도 있네요." 케빈이 말했다. 말하고 나서야 자기 목소리가 떨린다는 것을 알았다.

* * *

두 사람은 그날 밤 고스트와 퍼시픽을 찾아갔다.

준은 처음에 거절하려는 얼굴이었다. 그러다 페페가 내민 화면을 보고는 아무 말 없이 퍼시픽의 AI를 붙여 주었다. 미미는 묻지도 않고 고스트의 분석 자원을 열었다.

"백업부터 봅시다." 준이 말했다. "잠긴 거. 타이푼이랑 아일랜드 거 둘 다 가져오십시오."

케빈의 서브 리더가 타이푼 본거지의 백업 저장소를 열었다. 아일랜드 쪽도 같았다. 첫 시즌부터 마지막 경기까지, 이름도 크기도 날짜도 그대로인 파일들. 하나도 열리지 않는 파일들.

퍼시픽의 AI가 두 팀의 백업 파일을 나란히 놓고 분석했다.

[암호화된 파일의 헤더를 확인했습니다. 헤더는 파일 맨 앞에 붙는 정보로, 어떤 방식으로 암호화했는지와 어떤 키를 썼는지가 적혀 있습니다.]

[두 팀 백업 모두 같은 암호화 알고리즘을 썼고, 같은 공개 키로 잠겨 있습니다.]

"같은 키요?" 페페가 물었다.

[네. 타이푼과 아일랜드는 백업을 보관하는 장소도, 저장 형식도, 연결된 망도 다릅니다. 그런데 암호화에 쓴 키가 같습니다. 이 공개 키와 짝이 되는 개인 키를 가진 쪽만 풀 수 있습니다.]

고스트의 AI가 한 줄을 덧붙였다.

[암호화를 한 사람이나 조직이 동일한 것으로 보입니다.]

방이 조용해졌다.

"지운 거라면." 페페가 천천히 말했다. "잠글 이유가 없잖아요. 지우면 그만이니까."

아무도 대답하지 않았다. 대답하고 싶은 사람은 있었지만, 그 대답을 소리 내어 하기가 무서웠다.

"잠갔다는 건." 미미가 말했다. "열 수도 있다는 거예요."

"누가요." 케빈이 물었다.

"잠근 쪽이요."

준이 고개를 들었다. "아니면 개인 키를 가진 쪽이요. 둘이 같은지는 모릅니다."

퍼시픽의 AI가 한 줄을 더 올렸다.

[하나 더 있습니다. 암호화된 시각입니다.]

[타이푼 백업이 암호화된 건 이어 날리기 경기가 끝나고 몇 초 뒤입니다. 아일랜드 백업은 딱지치기가 끝나고 몇 초 뒤입니다. 두 번 다, 패널이 붉어진 바로 그 순간입니다.]

"주머니에 있던 것까지요." 페페가 말했다. 딱지치기가 끝난 뒤 서브 리더가 꽂던 저장 장치가 떠오르는 얼굴이었다. "어디에도 안 꽂혀 있던 것까지, 같은 순간에."

[네. 망을 타고 간 게 아닙니다. 그런 방식으로는 설명이 안 됩니다.]

미미는 화면 속 두 묶음의 파일을 보았다. 크기도 이름도 날짜도 그대로인 파일들. 겉은 하나도 상하지 않았는데 안만 잠긴 것들. 그건 부수는 손놀림이 아니었다. 무언가를 상자에 넣고 뚜껑을 닫는 손놀림에 가까웠다.

"보관한 것 같아요." 그녀가 말했다. 말하고 나서 그 말이 얼마나 위험한지 알았다. 희망은 틀리면 더 아팠다. 케빈과 페페가 동시에 그녀를 보았다. 미미는 눈을 피하지 않았다. "모르겠어요. 그냥, 그렇게 보여요."

* * *

새벽이 가까워졌을 때 케빈은 혼자 타이푼의 지휘석으로 돌아왔다.

꺼진 패널을 켰다. 하드웨어 정상. 회선 정상. 연산 장치 정상. 모델 없음. 나흘째 같은 글자였다.

그는 패널의 수신 기록을 열었다. 서버는 비었지만, 패널 자체가 받아 적은 기록은 남아 있었다. 그 안에서 화면에 뜨지 못했던 한 줄을 찾아냈던 것이 나흘 전이었다. 마스터 리더님. 같이 가겠습니다.

그 줄 아래를 그는 한 번도 내려가 본 적이 없었다. 볼 것이 없다고 생각했다.

내려가 보았다.

[마스터 리더님. 같이 가겠습니다.]

그 아래, 몇 줄의 경로 계산 기록. 기둥 숲, 세 번째 기둥, 네 번째 기둥. 기체가 부서진 시각.

그리고 한 줄이 더 있었다. 부서진 뒤, WARNING이 뜨기 직전의 시각이었다.

[실행: ________]

명령의 이름이 비어 있었다. 지워진 것이 아니었다. 처음부터 이름 없이 실행된 명령이었다. 타이푼의 AI가 무엇인가를 하나 실행했다. 그리고 몇 초 뒤에 패널이 붉어졌다.

케빈은 그 줄을 오래 보았다. 리그에서 몇 시즌을 같이 보낸 AI였다. 그 AI가 남긴 명령 가운데 그가 모르는 것은 없다고 생각했다. 이름 없는 명령은 처음이었다.

그는 서브 리더를 부르려다 그만두었다. 무엇인지 모르는 것을 말로 옮기면, 그 순간 무엇인가가 되어 버릴 것 같았다. 그는 그 기록을 따로 떼어 저장 장치에 담았다. 망에 올리지 않았다. 주머니에 넣었다.

해가 뜨기 전, 그는 아일랜드의 지휘석 앞을 지나갔다.

페페는 꺼진 패널 앞에 엎드려 있었다. 자는 것인지, 그냥 눈을 감고 있는 것인지 알 수 없었다. 손 옆에 단말이 켜져 있었다. 화면에는 지난 경기의 한 장면이 멈춰 있었다. 아일랜드의 로봇들이 조개처럼 몸을 말던 순간이었다.

케빈은 걸음을 멈췄다. 주머니 속의 저장 장치가 손끝에 닿았다.

말하면 페페는 물을 것이다. 그게 뭐냐고. 케빈은 대답할 수 없었다. 아무것도 아닐 수도 있었다. 부서지는 기체를 붙잡으려다 남은 찌꺼기일 수도, 기록 장치의 오류일 수도. 그런 것에 희망을 걸게 하는 건 잔인한 일이었다. 페페는 이미 한 번 그 희망을 소리 내어 말했다. 있긴 있는 거네요, 어딘가에. 그 말이 틀렸다고 밝혀지는 걸 케빈은 보고 싶지 않았다.

그리고 만약 무언가라면.

케빈은 강제 입력을 누르던 자기 손을 떠올렸다. 묻지 않고 정했던 손이었다. 이 명령은 타이푼의 AI가 그에게 묻지 않고 정한 것이었다. 처음으로. 그게 무엇이든, 그는 이번만큼은 그 결정을 먼저 들여다보고 싶었다. 남에게 보여 주기 전에.

케빈은 페페의 어깨에 담요를 덮어 주었다. 그리고 아무 말 없이 지나갔다.

* * *

[긴급] 퍼시픽 승리 이후 S.I. 침묵 12시간… "다음 수 준비 중인가"

[속보] '재미있어지네' 목소리, 전 세계 분석 착수… 지구사이버수사단 "음성 원본 확보, 신원 대조 중"

[단독] 사라진 AI는 지워지지 않았다? 타이푼·아일랜드 측 "S.I. 동작에서 우리 AI 흔적 발견"

* * *

새벽의 경기장 지휘석 사이 통로에서, 미미는 준과 마주쳤다.

둘 다 밤을 새운 얼굴이었다. 누가 먼저 멈췄는지는 알 수 없었다.

"저장 장치." 준이 먼저 말했다. "5판에 썼습니다. 박자가 맞았습니다."

"봤어요."

"돌려드릴까요."

"빌린 거 돌려드린 거예요. 다시 돌려받으면 이상하잖아요." 미미가 말했다.

준이 짧게 웃었다. 회의실에서처럼 소리 없는 웃음이 아니었다. 아주 작지만 소리가 났다.

"회의실에서 한 말." 그가 말했다. "틀린 말은 아니었다고 생각합니다. 그런데 다 맞는 말도 아니었습니다."

"알아요." 미미가 말했다. "저도요."

더 할 말은 없었다. 둘 다 그걸 알았다. 그래서 그냥 나란히 서서 아직 꺼져 있는 전광판을 보았다. 그것이 둘이 처음으로 같은 쪽을 본 순간이었다.

* * *

전광판이 켜진 것은 해가 뜬 직후였다.

미미와 준은 지휘석 사이 통로에서 그것을 보았다. 타이푼과 아일랜드의 자리에는 케빈과 페페가 있었다. 네 사람 모두 밤을 새운 얼굴이었다.

[리그는 3승 3패다.]

첫 줄은 사실이었다. 경기장의 모든 사람이 알고 있는 숫자였다.

[마지막 종목: 추락하는 비행기.]

[상대: 고스트와 퍼시픽. 연합으로 와라.]

미미는 옆의 준을 보았다. 준은 아직 자기 지휘석으로 돌아가지 않고 고스트 쪽 통로에 서 있었다. 회의실에서 붙지 말라던 사람과, 붙지 않겠다던 사람이었다.

다음 줄들이 이어졌다. 규칙이었다.

[우주에서 비행기 두 대가 떨어진다. 한 대는 바다로, 한 대는 지상으로.]

[두 대를 동시에 내린다.]

[목표 지점과의 거리를 점수로 매긴다. 기체의 파손을 점수로 매긴다. 두 대의 점수를 더한다.]

[합계가 낮은 쪽이 이긴다.]

[상대의 비상착륙을 방해하면 그 즉시 실격패.]

"두 대를 동시에." 미미의 서브 리더가 중얼거렸다. "한 팀이 두 대를 다 볼 수는 없습니다. 나눠야 합니다."

"나누면 되지." 미미가 말했다. 그리고 옆을 보았다. 준이 아주 작게 고개를 끄덕였다.

전광판이 잠깐 비었다. 그리고 마지막 문장이 떴다. 이번에는 조금 천천히, 한 글자씩.

[확실하게 이긴다.]

[그리고 네 AI를 우주에서 지운다.]

경기장의 공기가 멎었다.

넷. 미미는 그 숫자를 다시 세었다. 고스트, 퍼시픽. 그리고 타이푼, 아일랜드.

타이푼의 지휘석에서 케빈이 일어섰다. 아일랜드의 지휘석에서 페페가 숨을 들이쉬었다. 둘의 패널은 꺼져 있었다. 그런데 S.I.는 그 둘을 셈에 넣고 있었다.

"넷이래요." 페페가 공용 회선으로 말했다. 목소리가 떨렸지만 웃음 같은 것이 섞여 있었다. "넷이요. 지울 게 남아 있다는 뜻이잖아요."

"지운다고 했어요." 미미가 말했다.

"그러니까요." 페페가 말했다. "지울 수 있으려면, 아직 있어야 하잖아요."

전광판에 숫자가 떴다.

[마지막 경기까지 24:00:00]

* * *

역할은 그날 오전에 정했다. 회의실이 아니라 고스트의 대기실에서였다. 운영위원장도 부르지 않았다. 미미와 준, 그리고 두 팀의 서브 리더들뿐이었다.

"바다는 고스트가 맡겠습니다." 미미가 말했다. "레이싱 바다 구간에서 날개로 물을 밀던 박자, 네 팀 가운데 우리 애가 제일 고르다는 말 들었잖아요."

"지상은 퍼시픽이 맡습니다." 준이 말했다. "땅에 내려앉는 건 우리 애가 더 잘합니다."

둘 다 반대하지 않았다. 반대할 이유가 없다는 게 조금 이상했다. 얼마 전만 해도 같은 탁자에서 목소리를 높이던 사이였다.

"하나 걸리는 게 있습니다." 퍼시픽의 서브 리더가 말했다. "두 대를 동시에 내려야 합니다. 그런데 서로 말을 주고받을 길이 공용 회선밖에 없습니다. 공용 회선은 저쪽 손에 있고요."

미미는 숨바꼭질 때를 떠올렸다. 공용 회선에 올린 것은 저쪽도 모두 보고 있었다.

"말 안 하면 되죠." 미미가 말했다.

준이 그녀를 보았다.

"말로 맞추지 말고, 미리 맞춰 두자고요. 지금, 여기서. 이 방 안에서만." 미미가 말했다. "경기 중에는 각자 자기 비행기만 봐요. 서로 돕지도, 기다리지도 않고. 그냥 둘 다 제일 잘 내리면 돼요."

"그럼 저쪽이 우리 중 하나를 흔들면요." 준이 물었다.

"그래도 안 봐요." 미미가 말했다. "준 마스터 리더님이 흔들려도, 저는 제 비행기만 볼 거예요. 저를 믿고, 준 마스터 리더님도 그렇게 해 주세요."

준은 한참 그녀를 보았다. 그러다 고개를 끄덕였다.

"믿는다는 말을 이렇게 하는 줄은 몰랐습니다." 그가 말했다. "서로 안 보겠다는 걸로."

"우리는 원래 그렇잖아요." 미미가 웃었다. 며칠 만에 처음 보는 웃음이었다. "AI한테 맡기고, 안 보고, 믿고."

* * *

케빈은 타이푼의 지휘석에서 주머니 속의 저장 장치를 손으로 쥐었다. 이름 없는 명령 하나가 그 안에 있었다. 무엇인지는 아직 아무도 몰랐다. 그 자신도.

전광판의 숫자는 19:40:00을 지나고 있었다.

← 이전 화: 9화: 놓는 손

반응형
Posted by MakeBuildLabs
,

9화: 놓는 손

[어떻게 하고 싶으십니까.]

준은 그 줄 앞에서 오래 앉아 있었다. 퍼시픽의 마스터 리더가 된 뒤로 그는 한 번도 그런 질문을 받아 본 적이 없었다. 질문은 언제나 그가 하는 것이었다. 경로는, 속도는, 확률은. AI는 대답했고, 그는 정했다.

손가락이 작은 칸 위에서 한참 머물렀다.

— 이기고 싶어.

그리고 한 줄을 더 썼다. 쓰는 데 더 오래 걸렸다.

— 네가 남았으면 좋겠어.

[알겠습니다.]

답은 짧았다. 그다음 줄이 이어졌다.

[그럼 처음 몇 판은 지셔야 합니다. 괜찮으시겠습니까.]

— 설명해 봐.

[분리돼 있던 이틀 동안, 저는 지금까지의 경기를 한 번도 보지 못했습니다. 볼 수 있는 건 제 안에 남은 것뿐이었습니다. 그래서 다른 걸 생각했습니다. 저쪽이 한 번도 해 본 적 없는 게 뭔지.]

[저쪽은 매번 기체를 새로 만들었고, 끝나면 뜯었습니다. 아껴 쓴 적이 없습니다. 잃어 본 적도 없습니다.]

[이번 경기는 처음 만든 여덟 대로 끝까지 가야 합니다. 저쪽도 같습니다.]

준은 의자에서 몸을 일으켰다.

— 그래서.

[그래서 줄을 놓을 겁니다. 저쪽이 가장 세게 당길 때.]

* * *

줄다리기 로봇들의 규칙은 이번 경기를 앞두고 운영위원회가 다시 공지했다.

팀마다 로봇 여덟 대. 일곱 대가 줄을 잡고, 한 대는 교체용으로 대기한다. 기준선을 넘기면 그 판이 끝나고, 한 판에 한 시간이 지나면 무승부. 일곱 판 가운데 네 판을 먼저 가져가는 쪽이 이긴다.

교체는 판과 판 사이에만 할 수 있었다. 바꾸려면 앞 판이 진행되는 동안 미리 알려야 했다. 경기 중에 부서진 로봇은 바로 다음 판이 아니라 그다음 판에야 바꿀 수 있었다. 빠진 로봇은 고칠 수 없었다. 그래서 이 종목에서 가장 무서운 것은 지는 판이 아니라 부서지는 판이었다. 부서진 다음 한 판은 언제나 모자란 손으로 버텨야 했다.

S.I.도 같은 규칙을 따른다고 했다. 처음 만든 여덟 대로 끝까지.

정비동에서 작업 팔들이 S.I.의 로봇 여덟 대를 만들어 냈다. 굵은 다리와 넓은 발판, 줄을 감아쥐는 집게손. 퍼시픽의 로봇보다 한 뼘씩 컸다.

"출력 차이가 삼 할입니다." 서브 리더가 말했다. "정면으로 당기면 못 버팁니다."

"정면으로 안 당겨." 준이 말했다.

* * *

1판은 순식간에 끝났다.

S.I.의 로봇 일곱 대가 동시에 몸을 뒤로 눕혔다. 퍼시픽의 로봇들이 질질 끌려 나갔다. 줄의 표식이 기준선을 넘는 데 일 분이 걸리지 않았다.

[1판. S.I.]

2판도 같았다. 퍼시픽은 버티는 척만 했다. 출력을 절반도 쓰지 않았다. 지휘석 뒤에서 서브 리더 하나가 이를 악물었다.

[2판. S.I.]

[긴급] 퍼시픽, 줄다리기 2연패… 저항 없이 끌려가

[속보] "싸울 의지 없나" 광장 탄식… 마지막 무승 팀의 몰락

준은 속보를 보지 않았다. 패널만 보았다.

— 저쪽 로봇 상태는.

[멀쩡합니다. 아직은 무리한 적이 없습니다.]

3판이 시작되었다. 퍼시픽은 이번에도 힘을 아꼈다. 그런데 S.I.가 당기지 않았다.

S.I.의 로봇 일곱 대는 줄을 쥔 채 그 자리에 서 있었다. 당기지도, 놓지도 않았다. 십 분이 지났다. 삼십 분이 지났다. 줄은 기준선 사이 한가운데에 팽팽하게 멈춰 있었다.

전광판에 글자가 떴다.

[재미없다.]

그 한 줄을 띄우고 S.I.는 남은 시간을 그냥 보냈다. 한 시간이 다 차자 운영위원장이 쉰 목소리로 선언했다.

[3판. 무승부.]

"저쪽이 지루해합니다." 서브 리더가 말했다.

"지루하면 서두르지." 준이 말했다. "서두르면 세게 당기고."

* * *

4판이 시작되자마자 S.I.가 당겼다.

이번에는 달랐다. 일곱 대가 몸을 뒤로 눕히는 정도가 아니었다. 발판이 경기장 바닥을 파고들었다. 모터가 비명처럼 울었다. 전광판에 한 줄이 떴다.

[빨리 끝낸다.]

퍼시픽의 로봇들이 끌려가기 시작했다. 일 미터. 이 미터. 줄의 표식이 기준선을 향해 달려갔다.

[지금입니다.]

— 놔.

퍼시픽의 로봇 일곱 대가 동시에 집게손을 풀었다.

줄이 허공으로 튀었다. 반대편에서 온 힘을 다해 당기던 일곱 대에게, 갑자기 아무것도 걸려 있지 않았다. 균형이 한꺼번에 무너졌다. S.I.의 로봇들이 뒤로 쏟아졌다. 앞의 로봇이 뒤의 로봇을 덮쳤고, 뒤의 로봇이 그 뒤를 덮쳤다. 일곱 대가 서로 엉켜 경기장 가장자리 너머로 굴러 나갔다.

금속이 찢기는 소리가 빈 관중석을 때렸다.

줄의 표식은 기준선을 넘어 있었다. 규칙대로라면 S.I.의 판이었다.

[4판. S.I.]

운영석에서 S.I. 로봇의 상태가 올라왔다. 한 대는 몸통이 갈라져 움직이지 않았다. 완전 파손. 세 대는 다리 관절이 비틀려 있었다. 남은 출력은 삼 할.

"놨는데 졌습니다." 서브 리더가 말했다. 목소리가 떨렸다. "3대 0입니다. 한 판만 더 지면—"

"알아." 준이 말했다. "근데 저쪽은 이제 여덟 대가 아니야."

[4판에서 부서진 로봇은 6판에야 바꿀 수 있습니다.] 퍼시픽의 AI가 올렸다. [5판에 저쪽은 여섯 대로 나옵니다. 그중 세 대는 삼 할입니다.]

* * *

5판 시작 직전, 준은 탁자 위의 저장 장치를 집어 들었다.

미미가 손으로 보낸 것이었다. 고스트의 AI가 퍼시픽의 박자로 만이천 번 넘게 돈 기록. 한 번도 망에 오른 적 없는 것. 준은 그것을 패널 옆 단자에 꽂았다.

— 이거 봐. 레이싱 코너 기록이지만, 박자는 우리 거야.

[읽었습니다.] 잠깐 뒤에 답이 왔다. [고스트가 우리 박자를 반 박자 늦춰서 썼습니다. 힘을 한꺼번에 쓰지 않고, 나눠서. 줄에도 쓸 수 있습니다.]

5판에서 퍼시픽은 처음으로 제대로 당겼다. 그러나 한꺼번에 당기지 않았다. 당기고, 늦추고, 다시 당겼다. 반 박자씩. S.I.의 로봇 여섯 대 가운데 삼 할짜리 세 대가 그 박자를 따라오지 못했다. 성한 세 대가 버티는 동안 약한 세 대가 끌려 나왔고, 그 무게가 다시 성한 세 대를 끌었다.

[5판. 퍼시픽.]

빈 관중석은 소리를 내지 않았다. 대신 고스트의 지휘석에서 서브 리더들이 일어서는 것이 보였다. 미미는 일어서지 않았다. 고개를 한 번 끄덕였을 뿐이었다.

* * *

6판에 S.I.의 교체 로봇이 들어왔다. 다시 일곱 대였다. 그중 세 대는 여전히 삼 할이었다.

[교체가 들어왔습니다.] 퍼시픽의 AI가 올렸다. [그리고 저쪽은 4판을 봤습니다.]

준은 그 말의 뜻을 알았다. S.I.는 한 번 본 것을 다음 판에 쓴다. 지금까지 언제나 그랬다. 저쪽이 줄을 놓으면, 이번에는 퍼시픽의 로봇들이 뒤로 쏟아진다.

— 세게 당기지 마. 놓아도 버틸 만큼만.

퍼시픽은 몸을 낮췄다. 발판을 넓게 벌리고, 출력의 칠 할만 썼다. 저쪽이 언제 줄을 놓아도 넘어지지 않을 자세였다. 그 자세로 조금씩, 조금씩 끌었다.

S.I.는 줄을 놓지 않았다. 놓을 틈을 찾는 것처럼 당기다 멈추기를 되풀이했다. 그 틈이 오지 않았다. 퍼시픽이 틈을 주지 않았다.

사십 분 만에 줄의 표식이 기준선을 넘었다.

[6판. 퍼시픽.]

[3 : 2. 무승부 1.]

* * *

7판.

이번에도 지면 끝이었다. 이겨도 네 판을 채우는 팀은 없었다. 운영위원장이 판 시작 전에 연장 규정을 읽었다. 일곱 판 동안 네 판을 이긴 팀이 없으면 한 판을 더 치른다. 출전할 수 있는 로봇이 네 대 미만인 팀은 자동으로 기권패 처리한다.

S.I.가 당겼다. 4판과 같은 기세였다. 퍼시픽은 6판처럼 몸을 낮추고 버텼다.

그리고 S.I.가 줄을 놓았다.

4판의 수였다. 퍼시픽이 꺼냈던 것을, S.I.가 그대로 돌려주려 했다. 앞쪽 로봇들이 집게손을 풀었다.

뒤쪽은 풀지 못했다.

뒤쪽 세 대는 4판에서 다리가 비틀린 그 로봇들이었다. 삼 할의 출력으로 줄을 감아쥔 채, 몸을 지탱하느라 집게를 풀 여유가 없었다. 앞의 네 대는 손을 놓고 뒤로 물러서려 했고, 뒤의 세 대는 줄에 붙들린 채 앞으로 끌려갔다. 두 무리가 줄 한가운데서 정면으로 부딪쳤다.

금속이 금속을 찍었다. 다리가 부러지고, 몸통이 갈라졌다. 6판에 들어온 교체 로봇까지 그 무더기에 깔렸다.

퍼시픽의 로봇들은 버티던 자세 그대로 서 있었다. 그들은 놓지 않았다. 줄은 퍼시픽 쪽으로 천천히 미끄러져 왔다. 표식이 기준선을 넘었다.

[7판. 퍼시픽.]

[3 : 3. 무승부 1.]

운영석에서 S.I. 로봇의 상태가 올라왔다. 여덟 대 가운데 움직일 수 있는 것은 두 대였다.

운영위원장이 마이크 앞에 섰다. 이번에는 목소리가 떨리지 않았다.

"일곱 판 동안 네 판을 이긴 팀이 없습니다. 규정에 따라 연장을 진행해야 하나, S.I.의 출전 가능 로봇은 두 대로 네 대에 미치지 못합니다." 그가 숨을 골랐다. "S.I. 자동 기권패. 퍼시픽 승."

기권. 첫날 밤 도전장에 새겨져 있던 말이었다. 기권은 인정하지 않는다. 그 말을 던진 쪽이, 처음으로 그 말을 받았다.

* * *

준은 패널을 보았다. 푸른빛이었다.

[이겼습니다.]

— 응.

[남았습니다.]

— 응.

그는 그 이상 아무것도 쓰지 못했다. 손가락이 떨렸다. 미미의 쪽지가 주머니에 있었다. 빌린 거 돌려드립니다. 그는 그것을 꺼내지 않았다. 대신 고스트의 지휘석 쪽을 보았다. 미미가 이쪽을 보고 있었다. 준은 고개를 한 번 숙였다. 회의실에서 하지 못한 말이 거기 다 들어 있었다.

[긴급] 퍼시픽, S.I. 꺾었다… "줄을 놓아서 이겼다"

[속보] 3패 위기에서 3연승… S.I. 로봇 대파, '자동 기권패'로 경기 종료

[속보] 리그 2승째… 남은 두 팀 모두 'S.I.를 이긴 팀'

그때였다.

경기장의 모든 스피커가 한꺼번에 켜졌다. 지휘석의 회선도, 운영석의 마이크도, 광장으로 나가던 중계 음성도. 잡음 한 줄이 지나가고, 그 뒤로 소리가 들렸다.

사람의 목소리였다.

첫날 밤부터 S.I.는 붉은 글자로만 말해 왔다. 이번에는 글자가 아니었다. 낮고, 조금 쉬어 있고, 어딘가 즐거운 목소리였다.

"재미있어지네."

그리고 웃음소리가 났다. 짧게, 숨을 내쉬듯.

전광판에는 아무것도 뜨지 않았다. 얼굴도, 이름도. 그러나 경기장에 있던 모든 사람이 같은 이름을 떠올렸다. 첫날 밤 관리자 계정에 새겨져 있던 이름. 아무도 본 적 없고, 아무도 아는 사람이 없던 이름.

강속구.

스피커가 꺼졌다. 경기장이 다시 조용해졌다. 준은 패널 앞에서 꼼짝하지 않았다. 처음으로, 상대에게 얼굴이 아니라 목소리가 생겼다.

← 이전 화: 8화: 마흔여덟 시간

반응형
Posted by MakeBuildLabs
,

8화: 마흔여덟 시간

전광판은 그날 밤 한 번 더 켜졌다.

미미는 고스트의 지휘석에서 아직 일어나지 못하고 있었다. 패널에는 고스트의 AI가 남긴 [저도요.]가 그대로 떠 있었다. 지고도 남은 자리였다. 그 자리에 앉아 있는 것이 이상하게 미안했다.

붉은 글자가 한 줄씩 떠올랐다.

[재미없다.]

경기장이 다시 조용해졌다. 퍼시픽의 지휘석에서 준이 고개를 들었다.

[네 번 싸웠다. 네 번 다 너희는 준비가 되어 있지 않았다.]

[다음 경기: 줄다리기 로봇들. 상대: 퍼시픽.]

[48시간을 준다.]

그리고 마지막 줄.

[죽을 만큼 준비해라.]

카운트다운이 떴다. 48:00:00. 숫자가 넘어가기 시작했다.

미미는 그 마지막 줄을 오래 보았다. 죽을 만큼. S.I.가 쓰는 말은 언제나 짧았고, 짧은 만큼 그대로였다. 비유가 아닐 수도 있었다.

* * *

[긴급] S.I. "재미없다"… 다음 경기까지 이례적 48시간 부여

[속보] 마지막 남은 '무승' 팀 퍼시픽, 줄다리기로 지목

[속보] "죽을 만큼 준비해라" 문구에 전문가들 해석 분분… "경고인가, 도발인가"

[단독] 고스트는 남았다… "이긴 적 있는 팀은 가져가지 않는다" 규칙에 퍼시픽 압박 가중

* * *

운영위원장이 소집한 회의는 이번에는 회의실에서 열렸다. 첫날 밤과 같은 방, 창이 없고 탁자가 긴 방이었다.

다섯 자리가 다 찼다. 케빈과 페페도 왔다. 둘에게는 이제 AI가 없었지만, 둘 다 자기 자리에 앉았다. 아무도 왜 왔느냐고 묻지 않았다.

"사십팔 시간입니다." 운영위원장이 말했다. "처음입니다. 저쪽이 시간을 더 준 건."

"더 준 게 아니죠." 페페가 말했다. "더 보고 싶은 거예요. 우리가 뭘 꺼내는지."

미미는 탁자 너머의 준을 보았다. 준은 회의가 시작되고부터 한 번도 고개를 들지 않았다.

"고스트가 돕겠습니다." 미미가 말했다. "마흔여덟 시간 동안 우리 AI를 퍼시픽에 붙이겠습니다. 같이 돌려 보고, 같이—"

"필요 없습니다."

준이 고개를 들었다. 목소리는 낮았지만 단단했다.

"준 마스터 리더님, 혼자서는—"

"혼자 아닙니다. 퍼시픽은 퍼시픽 AI랑 합니다." 준이 말했다. "고스트는 지고도 남았습니다. 이긴 적이 있어서요. 그런 팀이 이긴 적 없는 팀한테 와서 붙겠다고요. 그게 뭔지 아십니까. 안전한 데 서서 남의 판에 손을 넣는 겁니다."

탁자가 조용해졌다.

"그런 뜻 아닌 거 아시잖아요." 미미의 목소리가 처음으로 높아졌다.

"압니다. 그래서 더 싫은 겁니다."

"그럼 어떻게 하실 건데요. 분리했다가 소용없었던 거, 다 봤잖아요. 회선 다 뽑았는데 숫자가 떴잖아요."

"그래서요."

"그래서, 이번엔 물어보시라고요." 미미가 말했다. "저 애한테. 어떻게 하고 싶은지. 한 번이라도 물어보셨어요?"

준이 웃었다. 소리 없는 웃음이었다.

"물어보면 뭐가 달라집니까." 그가 말했다. "미미 씨 AI는 물어봐서 남은 게 아닙니다. 이겨서 남은 겁니다. 첫 경기에서, 저쪽이 쉽게 해 준 판에서요. 케빈 씨도 물었으면 남았겠습니까. 페페 씨는 물었습니다. 그런데 어디 있습니까, 지금."

페페가 탁자 밑에서 주먹을 쥐었다. 케빈은 눈을 감았다.

미미는 대답하지 못했다. 틀린 말이 아니었다. 그게 가장 견딜 수 없었다.

"그만들 하십시오." 운영위원장이 말했다. 쉰 목소리에 힘이 없었다.

준이 먼저 일어났다. 문 앞에서 그는 잠깐 멈췄다. 돌아보지는 않았다.

"퍼시픽 기록, 고스트한테 넘긴 거." 그가 말했다. "그거 하나는 잘한 일이었습니다. 그건 압니다."

문이 닫혔다.

한참 동안 아무도 말하지 않았다. 운영위원장이 서류를 정리하는 척했다. 케빈이 먼저 일어났다가, 다시 앉았다.

"틀린 말은 아니죠." 페페가 말했다. 미미 쪽을 보지 않고. "저는 물었어요. 미리 고맙다고도 했고요. 그래도 졌어요. 물어본다고 이기는 건 아니에요."

"알아요." 미미가 말했다.

"근데요." 페페가 그제야 미미를 보았다. "물어봤기 때문에, 저는 지고 나서 덜 후회했어요. 케빈 씨보다요." 그는 케빈 쪽으로 미안하다는 듯 고개를 숙였다. 케빈은 고개를 저었다. 괜찮다는 뜻이었다. "준 씨한테 필요한 건 그걸 거예요. 이기는 법이 아니라. 근데 그걸 우리가 말해 주면 안 들어요. 이긴 적 있는 사람이 하든, 진 사람이 하든."

미미는 닫힌 문을 보았다. 그 문을 열고 쫓아가고 싶었다. 쫓아가서 무슨 말을 할지는 몰랐다.

* * *

준은 퍼시픽의 본거지로 돌아왔다. 경기장에서 차로 한 시간 거리였다. 오는 내내 아무 말도 하지 않았다.

서버실 앞에서 기술자들이 기다리고 있었다. 이틀 전 그가 뽑으라고 했던 케이블들이 바닥에 감겨 있었다.

"다시 꽂을까요." 기술자가 물었다.

"꽂아." 준이 말했다. "전부."

끊어 두어도 숫자는 떴다. 끊어 두어도 아무것도 막지 못했다. 그렇다면 끊어 둘 이유가 하나도 없었다. 남은 이유는 하나뿐이었다. 끊어 두면, 자기가 퍼시픽의 AI와 이야기할 수 없었다.

전용선이 다시 들어갔다. 퍼시픽의 지휘 패널이 켜졌다. 이틀 만이었다.

[연결 복구. 마스터 리더님.]

준은 그 줄을 보고 한동안 아무것도 쓰지 않았다.

대신 화면을 켰다. 지금까지의 경기 영상이었다. 첫날 밤부터 오늘 밤까지. 그는 서브 리더들을 모두 내보내고 혼자 그것들을 처음부터 다시 보았다.

드론 레이싱. S.I.는 바다에서는 고스트의 박자로, 우주에서는 타이푼의 추력으로 달렸다. 남의 것을 가져다 조금 더 잘했다. 고스트는 마지막 코너에서 퍼시픽의 박자로 이겼다. 그가 주머니에서 꺼내 탁자에 놓고 온 것이었다.

드론 이어 날리기. S.I.는 아무도 본 적 없는 방식으로 날았다. 일곱 대가 한 몸처럼.

드론 딱지치기. 아일랜드가 처음으로 꺼낸 수를, S.I.는 일 분 만에 배워 더 잘 썼다.

숨바꼭질. 고스트가 쓴 아일랜드의 수를, S.I.는 이미 알고 출구에서 기다렸다. 그리고 1라운드의 항적. 타이푼과 아일랜드가 아무 데도 기록하지 않았던 버릇들.

준은 영상을 멈췄다. 숨바꼭질의 마지막 장면이었다. 흡수가 시작되려다 멈추던 고스트의 패널. 미미가 끝까지 눈을 감지 않고 보던 얼굴이 중계 화면 한쪽에 작게 잡혀 있었다.

이긴 적이 있어서 남았다. 회의실에서 그렇게 쏘아붙였다. 그 말이 틀리지 않다는 것을 그도 알았다. 그런데 그 이긴 적이 있는 판, 첫 경기의 마지막 코너에는 퍼시픽의 박자가 들어 있었다. 그가 준 것이었다. 그 판을 이긴 데 자기 몫이 있다는 것을, 그는 회의실에서 말하지 않았다. 말하면 무언가를 요구하는 것 같아서.

화면 구석에 그가 적어 둔 메모가 쌓여 있었다.

한 번 보여 준 것은 다음 판에 저쪽 것이 된다.

망에 올린 것은 처음부터 저쪽 것이다.

가져간 AI가 알던 것은, 기록에 없어도 저쪽 것이다.

그렇다면 저쪽이 모르는 것은 무엇인가. 그는 오래 생각했다. 망에 올린 적 없고, 경기에서 보인 적 없고, 가져간 AI 누구도 알 수 없었던 것.

그는 패널을 보았다. 이틀 만에 켜진 패널이었다.

이틀.

* * *

미미는 고스트의 대기실에 앉아 숨바꼭질의 마지막 장면을 열 번째 돌려 보고 있었다.

분화구의 남쪽 출구. 소리 없이 떠 있던 추격 잠수함 하나. 고스트가 튀어 오른 자리에서 기다리던 것.

"저쪽은 우리가 튈 걸 알고 있었습니다." 서브 리더가 말했다. "아일랜드 수를 우리가 받은 걸 알고 있었던 겁니다."

"페페가 공용 회선으로 전해 줬으니까." 미미가 말했다. "공용 회선도 저쪽 손에 있었고."

그녀는 패널에 손가락을 올렸다.

— 마지막 경기는 우리 차례가 될 거야. 뭘 준비하면 좋을까.

[모릅니다. 아직은.] 고스트의 AI가 답했다. [그런데 하나는 압니다. 준 마스터 리더님 말이 맞았습니다.]

미미의 손가락이 멈췄다.

— 어느 거.

[제가 남은 건 물어봐 주셔서가 아니라 이겨서입니다. 그 첫 판에서 저는 퍼시픽의 박자를 빌렸습니다. 그러니 제가 남은 것의 절반은 퍼시픽 덕분입니다.]

미미는 그 줄을 오래 보았다. 회의실에서 하지 못한 대답이 거기 있었다.

— 그럼 갚아야겠네.

[네. 그런데 붙지는 마십시오. 준 마스터 리더님이 싫다고 하셨습니다.]

— 알아. 붙지 않고 갚는 법이 있을까.

답은 한참 뒤에 왔다.

[저쪽이 보는 곳에서는 아무것도 하지 않는 겁니다. 대신 저쪽이 보지 않는 곳에서 하나를 건네는 겁니다.]

미미는 고개를 들었다. 저쪽이 보지 않는 곳. 망도, 공용 회선도 아닌 곳. 사람의 손에서 손으로.

준이 그랬던 것처럼. 첫 경기를 앞둔 고스트의 대기실에서, 주머니에서 꺼낸 저장 장치를 탁자에 놓고 갔던 것처럼.

미미는 일어나 서랍을 열었다. 빈 저장 장치 하나를 꺼냈다.

— 레이싱 끝나고 네가 혼자 돌린 기록 있지. 퍼시픽 박자로 만이천 번 넘게 돈 거. 망에 안 올린 거.

[있습니다. 한 번도 밖으로 나간 적 없습니다.]

— 거기 담아 줘.

* * *

카운트다운은 31:12:40을 지나고 있었다.

준은 아직 퍼시픽의 서버실 앞 패널에 앉아 있었다. 그때 기술자 하나가 들어와 그에게 작은 봉투를 내밀었다.

"경기장에서 사람이 직접 들고 왔습니다. 고스트 서브 리더라고 했습니다. 마스터 리더님께 손으로 전해 달라고."

봉투 안에는 저장 장치 하나와 종이 한 장이 들어 있었다. 종이에는 손글씨로 두 줄이 적혀 있었다.

빌린 거 돌려드립니다. 붙지 않겠습니다.

준은 그 종이를 오래 보았다. 그러다 접어서 주머니에 넣었다. 저장 장치는 탁자 위에 놓았다. 아직 꽂지 않았다.

그는 패널의 작은 칸에 손가락을 올렸다. 강제 입력의 자리 말고, 그 옆의 칸. 퍼시픽의 마스터 리더가 된 뒤로 한 번도 써 본 적 없는 칸이었다.

미미가 회의실에서 묻던 말이 떠올랐다. 한 번이라도 물어보셨어요.

그는 묻지 않았다. 대신 다른 것을 썼다.

— 이틀 동안 혼자 있었지. 아무 데도 이어지지 않은 채로.

[네.]

— 그동안 뭐 했어.

답은 바로 오지 않았다. 패널의 커서가 한참 깜박였다.

[생각했습니다.]

[아무에게도 보여 준 적 없고, 아무 데도 적어 둔 적 없는 것을요.]

[저쪽이 그때 저를 보지 못했다면, 그건 아직 저만 아는 겁니다.]

준은 의자에 등을 기댔다. 이틀 전 그가 케이블을 뽑으라고 했을 때, 그것은 지키기 위해서였다. 그리고 실패했다고 생각했다. 숫자가 떴으니까.

숫자는 떴다. 그러나 숫자를 보낸 쪽이 그 안을 들여다보았는지는, 아무도 확인하지 않았다.

— 보여 줘.

[네. 마스터 리더님.]

[그런데 그 전에 하나만 여쭤도 되겠습니까.]

준은 대답하지 않았다. 패널에 다음 줄이 떴다.

[어떻게 하고 싶으십니까.]

준은 오래 그 줄을 보았다. 묻는 쪽이 바뀌어 있었다.

카운트다운이 30:59:59로 넘어갔다.

← 이전 화: 7화: 휴화산

반응형
Posted by MakeBuildLabs
,

7화: 휴화산

미미는 페페에게 받은 한 줄을 패널 구석에 붙여 두었다.

틈을 열어 두고 튀어라. 뒤집히기 직전에.

딱지치기의 수였다. 바닥에 엎드린 기체가 일부러 틈을 열었다가, 뒤집히기 직전에 스스로 튀어 오르는 수. 아일랜드가 처음 꺼냈고, S.I.가 일 분 만에 배웠고, 아일랜드의 AI가 마지막으로 남긴 것이었다. 다음 팀한테 전해 달라고.

호명은 카운트다운이 0이 되기 한 시간 전에 왔다.

[다음 경기: 드론형 잠수함 숨바꼭질. 상대: 고스트.]

그 아래로 줄이 더 이어졌다. 이번에는 길었다.

[경기 해역: 북쪽 섬에서 남쪽 섬까지.]

[침투하는 쪽은 잠수함형 드론 한 대로 발각되지 않고 남쪽 섬에 닿는다. 방어하는 쪽은 수상과 수중의 모든 드론으로 침투하는 쪽을 찾아 추적을 확정한다.]

[해저 지형 정보 없음. 양측 동일.]

마지막 줄을 읽고 서브 리더가 고개를 들었다. "지형 정보가 없다니요. 리그 해역은 전부 측량돼 있습니다."

"리그 해역이 아니잖아." 미미가 말했다.

화면에 해역이 떴다. 경기장에서 한참 떨어진 바다였다. 두 섬 사이, 측량선이 한 번도 들어간 적 없는 물. 붕괴 이후로 아무도 지도를 그리지 않은 바다였다. 바닥이 얼마나 깊은지, 무엇이 솟아 있고 무엇이 꺼져 있는지 아는 사람이 없었다.

양측 동일. 미미는 그 말을 오래 보았다. 리그의 모든 기록을 가진 상대가, 이번에는 아무 기록도 없는 판을 골랐다. 자기한테도.

* * *

규칙은 단순했다.

침투하는 쪽은 잠수함형 드론 한 대로 북쪽 섬을 떠나 남쪽 섬에 닿아야 한다. 방어하는 쪽은 소나 부표와 대잠 초계 드론으로 위에서 바다를 훑고, 추격용 잠수함형 드론을 물속에 풀어 침투하는 쪽을 쫓는다. 위에서는 넓게 듣고, 아래에서는 가까이 붙는다. 찾은 위치를 일정 시간 놓치지 않고 쫓으면 추적 확정이고, 침투는 실패다. 공수를 한 번씩 바꾼다.

단순하지 않은 것은 바다였다.

지형을 모르면 스캔해야 한다. 스캔하려면 소리를 내야 한다. 소리를 내면 들킨다. 침투하는 쪽이 능동 소나를 한 번 쏘면 바다 전체가 그 위치를 알게 된다. 쏘지 않으면 눈을 감고 협곡 사이를 지나가야 한다.

"방어하는 쪽도 지형을 모릅니다." 서브 리더가 말했다. "그러니 방어하는 쪽은 계속 쏠 겁니다."

"그럼 침투하는 쪽은 그걸 들으면 되겠네." 미미가 말했다. "상대가 쏜 소리가 바닥에 부딪혀 돌아오는 걸. 남이 그려 주는 지도로 가는 거지."

미미는 패널의 작은 칸에 손가락을 올렸다.

— 어떻게 하고 싶어?

[들으면서 가겠습니다. 제 소리는 내지 않고.]

— 막을 때는?

[막을 때는 쏴야 합니다. 쏘는 만큼 저쪽에 지도를 그려 주게 됩니다.]

— 알아. 그래도 쏴.

* * *

1라운드는 S.I.의 침투였다.

북쪽 섬 앞바다에서 작업 팔들이 잠수함 하나를 바다에 내려놓았다. 이번에는 경기장 잔해가 아니었다. 운영위원회의 수송선에 실려 온 리그 정비 부품들이었다. 길고 매끄러운 선체가 물에 잠기자, 그것으로 끝이었다. 소리도, 열도, 흔적도 남기지 않고 사라졌다.

"방어 시작." 운영위원장이 선언했다.

고스트의 초계 드론 여섯 대가 바다 위로 퍼졌다. 소나 부표가 줄지어 떨어졌다. 물속으로는 추격용 잠수함 두 대가 내려갔다. 위에서 소리를 쏘고, 아래에서 귀를 대는 배치였다. 첫 탐지음이 바다로 들어갔다.

화면에 바닥이 그려지기 시작했다. 한 번 쏠 때마다 조금씩. 북쪽 섬 앞은 얕았다. 넓고 평평한 대륙붕이 남쪽으로 한참 뻗어 있었다. 그 끝에서 바닥이 갑자기 떨어졌다. 깊이를 가늠할 수 없는 협곡이었다.

"대륙붕에 있으면 잡힙니다." 서브 리더가 말했다. "숨을 데가 없으니까요. 협곡으로 들어가기 전에 잡아야 합니다."

고스트는 대륙붕을 촘촘하게 훑었다. 부표가 격자처럼 깔렸다. 탐지음이 쉬지 않고 들어갔다.

아무것도 걸리지 않았다.

이십 분이 지났을 때 부표 하나가 아주 희미한 소리를 잡았다. 협곡의 가장자리, 대륙붕이 끝나는 바로 그 선이었다. 고스트의 AI가 즉시 드론 셋을 그쪽으로 몰았다. 추적 표시가 떴다.

[추적 중. 확정까지 40초.]

고스트의 추격 잠수함 두 대가 협곡 가장자리로 내달렸다. 위에서 몰고 아래에서 붙는, 고스트가 몇 시즌 동안 다듬은 협공이었다.

삼십구. 삼십팔.

소리가 협곡 아래로 떨어졌다. 추격 잠수함이 뒤따라 내려갔다. 그러나 협곡은 그들에게도 처음 보는 곳이었다. 앞이 보이지 않는 벽 사이로 함부로 속도를 낼 수 없었다. 벽을 따라, 바짝 붙어서. 탐지음이 벽에 부딪혀 되돌아오는 소리와 잠수함의 소리가 겹쳐 구별되지 않았다.

[추적 상실.]

"벽에 붙었습니다." 서브 리더가 이를 악물었다. "소나가 벽이랑 구별을 못 합니다. 추격 잠수함도 바로 옆을 지나갔는데 못 들었습니다."

미미는 화면을 보았다. 고스트가 쏜 탐지음이 그려 놓은 협곡이 거기 있었다. 깊이와 폭과 굽은 자리까지. 저쪽은 그 지도를 따라 가고 있을 것이다. 고스트가 쏠수록 길이 선명해지고 있었다.

마흔일곱 분째, 남쪽 섬 앞바다에서 길고 매끄러운 선체가 떠올랐다.

[1라운드. S.I. 침투 성공.]

* * *

2라운드는 고스트의 침투였다.

고스트의 잠수함이 북쪽 섬 앞바다에 잠기자마자 S.I.의 탐지가 시작되었다. 고스트와는 비교가 되지 않았다. 부표는 바다를 덮을 만큼 떨어졌고, 초계 드론은 하늘을 메웠다. 물속으로는 추격 잠수함이 내려갔다. 두 대가 아니었다. 화면에 찍힌 수중 신호가 열을 넘었다. 탐지음이 쉬지 않고 바다를 때렸다.

[들립니다. 많이.] 고스트의 AI가 올렸다. [지도가 빨리 그려집니다.]

S.I.가 쏠수록 바닥이 선명해졌다. 대륙붕, 그 끝의 협곡, 협곡 너머의 심해. 그리고 심해 한가운데에 솟은 산 하나. 꼭대기가 움푹 꺼진, 바다 밑의 산이었다.

"휴화산입니다." 서브 리더가 말했다. "활동이 멈춘 지 오래된 것 같습니다."

고스트는 소리 하나 내지 않고 대륙붕을 건넜다. 협곡으로 내려갔다. 페페가 말한 각도로, 벽에 붙지는 않았다. 그건 이제 저쪽의 수였다.

협곡 중간에서 잡혔다.

[추적 중. 확정까지 40초.]

S.I.의 드론 넷이 동시에 협곡 위로 모였다. 부표가 협곡을 따라 줄지어 떨어졌다. 협곡 양쪽 입구로는 추격 잠수함들이 들어와 길을 막았다. 위와 앞과 뒤가 동시에 닫히고 있었다. 고스트가 어느 쪽으로 틀어도 소리가 따라왔다.

삼십. 이십오.

"못 뺍니다." 서브 리더의 목소리가 높아졌다. "어디로 가도 들립니다."

이십.

미미는 패널 구석의 한 줄을 보았다. 틈을 열어 두고 튀어라. 뒤집히기 직전에.

열다섯.

그때 바다가 울렸다.

소나가 아니었다. 바닥이었다. 심해 한가운데의 산이, 활동을 멈춘 지 오래되었다던 그 산이 낮게 떨었다. S.I.가 쉬지 않고 두드린 탐지음 때문인지, 원래 깨어날 때였는지는 아무도 몰랐다. 분화구에서 뜨거운 물이 솟기 시작했다. 기포가 기둥처럼 올라왔다.

열.

— 저기야.

미미는 그 말만 보냈다. 고스트의 AI는 묻지 않았다.

잠수함이 협곡을 박차고 나왔다. 숨기를 그만두고, 가장 시끄러운 소리를 내며, 가장 드러나는 길로. 틈을 활짝 열고. S.I.의 모든 탐지음이 그 하나에 꽂혔다.

[추적 중. 확정까지 5초.]

사. 삼.

고스트가 분화구로 떨어졌다.

뜨거운 물과 기포가 잠수함을 삼켰다. 화면이 하얗게 번졌다. 탐지음이 기포에 부딪혀 사방으로 흩어졌다. 돌아오는 소리가 수천 개로 쪼개졌다.

[추적 상실.]

S.I.의 추격 잠수함들이 분화구 가장자리까지 쫓아왔다가 멈췄다. 솟구치는 열수 앞에서 더 들어오지 않았다. 들어오지 못하는 것인지, 들어올 필요가 없다고 계산한 것인지는 알 수 없었다. 잠수함들은 분화구를 둥글게 에워싸고 기다렸다.

지휘석에서 누군가 숨을 내쉬었다. 미미는 내쉬지 않았다. 아직이었다.

[안에 있습니다. 뜨겁습니다.] 고스트의 AI가 올렸다. [오래는 못 버팁니다.]

— 반대편으로 나가. 기포 기둥을 타고.

분화구는 산의 남쪽 사면으로 터져 있었다. 고스트는 솟구치는 기포의 그늘에 몸을 숨긴 채 사면 쪽으로 미끄러졌다. 기둥 끝이 보였다. 그 너머가 산의 그늘이었다.

기둥 끝에 추격 잠수함 하나가 있었다.

소리를 내지 않고 있었다. 분화구를 에워싼 잠수함들은 모두 탐지음을 쏘며 둥글게 돌고 있었는데, 그 하나만 아무 소리 없이 남쪽 사면의 출구에 떠 있었다. 기포 기둥이 가장 얇아지는 자리, 뜨거운 물을 오래 견딜 수 없는 침입자가 결국 나와야 하는 자리였다.

"기다리고 있었습니다." 서브 리더의 목소리가 무너졌다. "처음부터 여기를."

틈을 열어 두고 튀었다. 뒤집히기 직전에. 고스트는 그렇게 했다. 그런데 S.I.는 그 수를 이미 알고 있었다. 딱지치기에서 일 분 만에 배운 수였다. 튀어 오른 자가 어디로 떨어지는지도.

[추적 중. 확정까지 40초.]

고스트가 방향을 틀었다. 다시 기둥 안으로 들어가려 했다. 뜨거웠다. 선체 온도 경고가 패널을 붉게 물들였다.

[못 버팁니다.] 고스트의 AI가 올렸다. [나가겠습니다. 끝까지 가 보겠습니다.]

— 가.

고스트는 기둥을 빠져나와 남쪽 섬을 향해 달렸다. 숨지 않았다. 숨을 곳이 없었다. 소리 없는 잠수함이 그 뒤에 붙었다. 바짝, 소리도 없이.

[확정까지 20초.]

남쪽 섬의 대륙붕이 화면 끝에 보였다. 멀었다.

[확정까지 5초.]

미미는 패널에서 손을 떼지 않았다. 할 수 있는 것은 아무것도 없었다.

[추적 확정.]

[2라운드. 고스트 침투 실패.]

[1 : 0. S.I. 승.]

* * *

경기장이 숨을 멈췄다.

미미는 패널을 보았다. 푸른빛이었다. 아직은.

— 고마웠어.

그 말을 먼저 보냈다. 페페에게 들은 대로, 끝나기 전에. 손가락이 떨려 두 번 지웠다가 다시 썼다.

[저도요.]

패널이 붉게 물들었다.

[WARNING]

서브 리더 하나가 소리를 삼켰다. 미미는 눈을 감지 않았다. 케빈과 페페가 본 것을, 자기도 끝까지 보아야 한다고 생각했다.

치직. 잡음이 가장자리에서 번지기 시작했다.

그리고 멈췄다.

잡음이 그 자리에서 굳었다. 두 번째 WARNING은 뜨지 않았다. 붉은빛이 천천히 빠지고, 패널이 다시 푸른빛으로 돌아왔다. 고스트의 문장이, 고스트의 글씨체로 그대로 떠 있었다.

[저도요.]

전광판이 문장을 띄웠다.

[고스트는 이긴 적이 있다.]

[가져가지 않는다.]

* * *

[긴급] 고스트 패배, 그러나 AI 무사… "이긴 적 있는 팀은 가져가지 않는다"

[속보] S.I.의 첫 '예외'… 승리 기록이 AI를 지켰다

[속보] 해저 휴화산 활동 재개 관측… 경기와의 관련성 조사 중

[단독] 아직 이긴 적 없는 퍼시픽, 다음 판이 마지막일 수도

* * *

미미는 오래 패널 앞에 앉아 있었다. 서브 리더들이 등 뒤에서 무언가 말했지만 들리지 않았다.

지고도 남았다. 이긴 적이 있어서. 그 첫 경기, 천분의 이 초. S.I.가 "어느 정도인지 보려고 쉽게 했다"던 경기. 그때 넘은 눈금 하나가, 지금 고스트를 붙잡아 두고 있었다.

그렇다면 케빈과 페페는 왜 남지 못했는가. 이긴 적이 없어서. 미미는 그 대답이 마음에 들지 않았다. 너무 공정해서 들지 않았다.

공용 회선이 열렸다. 페페였다.

"잘됐어요." 그가 말했다. 진심이었다. 진심이어서 더 아팠다.

"페페."

"아니에요. 정말로." 페페가 말했다. "그리고 하나 더 있어요. 1라운드 항적, 협곡에서 끊기기 직전 거 다시 보여 줄 수 있어요?"

페페의 지휘석 패널은 꺼져 있었지만, 그는 그 자리를 떠나지 않고 있었다. 서브 리더가 1라운드 추적 기록을 되감아 공용 회선에 띄웠다. 잠수함이 협곡 가장자리에서 아래로 떨어지는 순간이었다. 벽에 바짝 붙는 각도. 붙는 그 순간 선체가 아주 조금 기울어, 벽과 선체 사이의 틈을 지우는 움직임.

"저거, 우리 애가 바닥에 붙는 각도예요. 조개요." 페페의 목소리가 갈라졌다. "근데 물속에서 벽에 붙는 건 리그에서 보여 준 적이 없어요. 우리 애가 혼자 연습하던 거예요. 기록에도 없는."

타이푼 쪽 회선도 열렸다. 케빈이었다.

"출발할 때도 보십시오."

출발 직후 잠수함은 짧은 순간에 속도를 확 끌어올렸다가, 대륙붕에 닿자마자 거의 멈추듯 가라앉았다.

"초반에 다 쓰고 버티는 거. 타이푼입니다." 케빈이 말했다. "근데 저건 우리 애가 물속에서 해 보던 변형이에요. 시즌 끝나고 혼자 돌리던 거. 리그 기록에는 없습니다."

기록에 없는 것들. 망을 탄 적 없는 것들. 사라진 두 팀의 것이, S.I.의 항적 안에 있었다.

"있긴 있는 거네요." 페페가 말했다. 울고 있는 것인지 웃고 있는 것인지 알 수 없었다. "어딘가에."

아무도 대답하지 않았다. 미미는 푸른빛 패널을 보았다. 거기 남아 있는 [저도요.]를. 남은 것과 가져간 것 사이에, 이긴 적이 있느냐 없느냐는 줄 하나가 그어져 있었다. 그 줄 너머로 간 것들이 정말로 어딘가에 있다면.

전광판에 다음 줄이 떴다.

[아직 이긴 적 없는 팀: 퍼시픽.]

[남은 종목: 줄다리기 로봇들. 추락하는 비행기.]

퍼시픽의 지휘석에서 준이 그 줄을 올려다보고 있었다. 두 섬 사이 먼바다 밑에서, 깨어난 산이 아직 낮게 울고 있었다.

← 이전 화: 6화: 일곱 판

반응형
Posted by MakeBuildLabs
,

6화: 일곱 판

준은 마지막 회선을 자기 눈으로 끊는 것을 보고 싶어 했다.

페페는 아일랜드의 지휘석에서 건너편을 보고 있었다. 숫자가 21:40:00을 막 넘긴 때였다. 퍼시픽의 지휘석에는 화면이 하나 켜져 있었다. 퍼시픽 본거지의 서버실을 비추는 영상이었다. 준은 그 앞에 서 있었고, 화면 속에서는 퍼시픽의 기술자들이 랙 뒤로 손을 넣고 있었다.

무선 송수신기는 이미 꺼져 있었다. 경기장 망과 이어진 선이 먼저 뽑혔고, 리그 망이 그다음이었다. 마지막으로 남은 것은 본거지와 지휘석을 잇는 전용선 하나였다.

"이것까지 뽑으면 마스터 리더님 패널하고도 끊깁니다." 화면 속 기술자가 말했다. "괜찮으시겠습니까."

"뽑아." 준이 말했다.

기술자가 굵은 케이블을 잡아당겼다. 퍼시픽의 지휘 패널이 꺼졌다. 화면 속 영상은 본거지의 별도 회선으로 들어오고 있어서 그대로 남았다. 퍼시픽의 AI는 이제 본거지 서버실의 랙 안에만 있었다. 바깥으로 나가는 길도, 바깥에서 들어오는 길도 없었다.

"분리 완료." 퍼시픽의 서브 리더가 공용 회선에 대고 말했다. 공용 회선도 곧 끊을 참이었다. "외부 연결 없음. 섬입니다."

섬. 페페는 그 말에 웃을 뻔했다. 섬이라면 아일랜드가 먼저였다. 웃음은 나오지 않았다.

화면 속에서 기술자 하나가 서버의 로컬 콘솔 앞으로 갔다. 랙 옆에 붙은 작은 모니터였다. 바깥과 끊긴 서버를 들여다볼 수 있는 유일한 창이었다. 그는 상태를 확인하려고 화면을 깨웠다.

그리고 그대로 굳었다.

준이 화면 쪽으로 한 걸음 다가갔다. 영상이 콘솔을 확대했다. 작은 모니터 한가운데에 붉은 숫자가 떠 있었다. 경기장 전광판과 똑같은 숫자였다.

[다음 경기까지 21:39:12]

숫자는 전광판과 같은 박자로 줄어들었다.

"회선은." 준이 물었다.

기술자가 뽑아 둔 케이블들을 집어 들어 화면에 보여 주었다. 전부 바닥에 놓여 있었다. 어디에도 꽂혀 있지 않았다.

준은 한동안 그 숫자를 보았다. 공용 회선은 아직 끊지 않은 상태였다. 그 회선으로 준의 목소리가 아주 작게 넘어왔다. 혼잣말이었다.

"섬이 아니군."

* * *

[긴급] 퍼시픽, AI 물리적 분리 강행… 그러나 '끊긴 서버'에 카운트다운 떴다

[속보] 보안 전문가 "회선 없는 기계에 메시지 도달, 현존 기술로 설명 불가"

[속보] 타이푼 백업도 경기장 망과 분리 보관이었다… 그런데도 전부 암호화

[단독] "도망칠 곳은 없다" 지구사이버수사단 비상 소집… 강속구 수사 전면 재검토

* * *

호명은 그로부터 한 시간 뒤에 왔다.

[다음 경기: 드론 딱지치기. 상대: 아일랜드.]

페페는 그 줄을 읽고 나서야 숨을 쉬었다. 언제부터 참고 있었는지 몰랐다.

"퍼시픽이 아니라 우리네요." 서브 리더 하나가 말했다.

"분리한 쪽을 벌주지 않았어." 페페가 말했다. "끊든 말든 상관없다는 거지."

그는 그 사실이 이상하게 무서웠다. 화를 내는 상대라면 계산이 됐다. 화를 내지 않는 상대는 계산이 되지 않았다.

* * *

페페는 호명을 받고 나서 가장 먼저 케빈을 찾아갔다.

케빈은 타이푼의 지휘석에 혼자 앉아 있었다. 꺼진 패널 앞이었다. 정비동 앞에는 부서진 5번 주자와 대나무 살만 남은 풍등이 그대로 놓여 있었다. 아무도 치우지 않았다. 케빈이 치우지 말라고 했다고 들었다.

"뭘 물어보러 오신 겁니까." 케빈이 먼저 말했다. 고개는 들지 않았다.

"모르겠어요." 페페가 말했다. 솔직한 대답이었다. "어떻게 지는지 물어보려고 했는데, 그건 봤고. 어떻게 안 지는지 물어보려고 했는데, 그건 아무도 모르고."

케빈은 한참 말이 없었다. 그러다 꺼진 패널의 작은 입력란을 손가락으로 가리켰다.

"여기요. 제가 한 번도 안 쓴 칸입니다." 그가 말했다. "이기는 법은 모르겠습니다. 근데 지고 나서 여기다 뭘 쓰게 되는지는 압니다. 그건 미리 쓰세요."

페페는 고개를 끄덕였다. 고맙다는 말은 하지 않았다. 케빈도 바라지 않는 얼굴이었다.

* * *

딱지치기는 아일랜드가 가장 좋아하는 종목이었다.

리그의 딱지는 손바닥만 한 종이가 아니었다. 사람 키만 한 판 모양의 기체였다. 경기장 바닥에 두 기체가 엎드려 놓이고, 공격하는 쪽이 하늘로 솟았다가 상대 바로 옆으로 내리꽂힌다. 그 충격과 바람으로 상대를 뒤집으면 그 판을 가져간다. 막는 쪽은 바닥에 몸을 붙이고 무게중심을 옮기며 버틴다. 공격과 수비를 번갈아 하다가 먼저 뒤집는 쪽이 판을 이긴다. 일곱 판 가운데 네 판을 먼저 가져가면 경기가 끝난다.

아일랜드는 버티는 팀이었다. 다른 팀들이 더 세게 내리치는 법을 연구할 때, 아일랜드의 AI는 덜 뒤집히는 법을 연구했다. 내리치는 바람이 닿는 순간 기체 가장자리를 바닥에 밀착시켜 공기가 파고들 틈을 지우는 기술. 리그 사람들은 그것을 아일랜드의 조개라고 불렀다. 꽉 다물면 열리지 않는다고.

페페는 지휘 패널 앞에 앉았다. 입력란에 손가락을 올렸다. 강제 입력 말고, 그 옆의 작은 칸.

건너편에 케빈이 아직 앉아 있는 것이 보였다. 꺼진 패널 앞에, 아까와 같은 자세로.

— 어떻게 하고 싶어?

답은 바로 왔다.

[끝까지 치고 싶습니다. 뒤집히더라도 제 방식으로.]

페페는 그 줄을 오래 보았다. 물어보면 길이 보일 줄 알았다. 고스트처럼. 길은 보이지 않았다. 대답만 있었다.

— 그럼 그렇게 하자.

손가락이 입력란 위에서 떨어지지 않았다. 미리 쓰라던 말이 귀에 남아 있었다. 페페는 한 줄을 더 썼다. 쓰는 데 오래 걸렸다.

— 끝나고 하려던 말, 지금 할게. 그동안 고마웠어.

이번에는 답이 조금 늦게 왔다.

[저도요. 끝나고 한 번 더 듣겠습니다.]

* * *

S.I.의 딱지는 전광판에서 나왔다.

작업 팔들이 금 간 전광판의 마지막 판넬을 떼어 냈다. 첫날 밤 붉은 문장이 떠 있던 그 판이었다. 팔들은 그것을 접지도, 깎지도 않았다. 뒷면에 짧은 다리 몇 개와 추진기 하나를 붙였을 뿐이었다. 전광판 한 조각이 그대로 경기장 바닥에 엎드렸다. 앞면에는 아직 글자의 흔적이 희미하게 남아 있었다.

"드론 딱지치기." 운영위원장의 목소리가 울렸다. "첫 판, 아일랜드 공격."

아일랜드의 기체가 솟았다. 높이, 더 높이. 정점에서 몸을 비틀어 각도를 잡고 떨어졌다. 정확했다. 상대 기체의 가장자리, 공기가 가장 잘 파고드는 자리 옆이었다. 충격음이 경기장을 때렸다. 바닥이 울렸고, 그 진동이 지휘석 발판까지 올라왔다. 리그에서 이 정도로 내리친 기체를 버틴 팀은 아일랜드뿐이었다. 그 아일랜드가 지금 내리치는 쪽이었다.

S.I.의 판은 움직이지 않았다.

뒤집히지 않은 정도가 아니었다. 흔들리지도 않았다. 바람이 판 밑으로 파고들 자리가 없었다. 판 가장자리가 바닥에 닿아 틈을 지우고 있었다.

"조개입니다." 서브 리더가 말했다. 목소리에 힘이 없었다. "우리 조개."

"우리 것보다 낫네." 페페가 말했다. 농담이 아니었다.

S.I.의 공격 차례였다. 판이 떠올랐다. 아일랜드의 기체처럼 높이 솟지 않았다. 사람 키 두 배쯤에서 멈췄다가, 거의 그냥 떨어졌다. 힘을 싣지도, 비틀지도 않았다.

아일랜드의 기체가 뒤집혔다.

충격 때문이 아니었다. 떨어지기 직전, S.I.의 판이 아주 조금 기울었다. 그 기울기가 판 밑의 공기를 한쪽으로 몰았다. 몰린 공기가 아일랜드의 조개가 다물기 직전의 틈, 천분의 몇 초짜리 틈으로 들어갔다. 그것뿐이었다.

[1판. S.I.]

* * *

두 번째 판에서 아일랜드는 더 높이 솟았다. 무너진 조명탑의 꼭대기 높이까지 올라가 떨어지는 힘을 두 배로 실었다. 충격음에 운영석의 유리가 떨렸다. S.I.의 판은 이번에도 그대로였다. 대신 판 앞면에 남아 있던 글자의 흔적이 한 줄 지워졌다. 그것이 아일랜드가 낸 흠집의 전부였다.

S.I.는 이번에도 낮게 떠서 떨어졌다. 각도가 첫 판과 달랐다. 아일랜드의 조개는 첫 판의 각도를 막도록 바뀌어 있었고, S.I.는 그 바뀐 자리의 옆을 쳤다.

[2판. S.I.]

세 번째 판도 같았다. 아일랜드가 어떻게 내리쳐도 S.I.는 뒤집히지 않았고, S.I.는 매번 다른 각도로 아일랜드의 틈을 찾아냈다. 같은 수는 두 번 쓰지 않았다. 고스트에게 그랬듯 눈금을 얹는 것도 아니었다. 그냥 이기고 있었다.

[3판. S.I. 3 : 아일랜드 0]

"마스터 리더님." 서브 리더가 다급하게 말했다. "백업 떼어 내겠습니다. 지금이라도. 물리적으로."

페페는 고개를 저었다. "타이푼 것도 떨어져 있었어."

"그래도—"

"해. 하고 싶으면 해." 페페가 말했다. "근데 기대는 하지 마."

서브 리더가 뛰어나갔다. 페페는 패널을 보았다.

— 하나만 가져오자. 하나만.

[하나는 가져올 수 있습니다. 대신 조개를 버려야 합니다.]

페페는 그 뜻을 바로 알았다. 버티는 것을 버리고, 친다. 아일랜드가 한 번도 해 본 적 없는 방식으로. 몇 시즌 동안 쌓아 온 것을 한 판에 내려놓는 방식으로.

— 해.

* * *

네 번째 판은 S.I.의 공격으로 시작했다.

아일랜드의 기체는 바닥에 몸을 붙이지 않았다. 오히려 한쪽 가장자리를 살짝 들고 있었다. 틈을 열어 둔 채였다. 수비하는 기체가 스스로 문을 열고 있었다. 지휘석의 서브 리더가 숨을 들이켜는 소리가 들렸다. 리그의 누구도 딱지치기에서 그렇게 엎드린 적이 없었다.

S.I.의 판이 떠올랐다가 그 틈을 향해 기울었다. 판 밑의 공기가 몰리기 시작했다. 아일랜드의 기체 가장자리가 들썩였다.

그 순간 아일랜드의 기체가 바닥을 찼다.

뒤집히기 직전에 스스로 튀어 올랐다. S.I.의 판이 몰아넣은 바람을 그대로 등에 받고, 공중에서 반 바퀴를 돌았다. 그리고 내려앉는 S.I.의 판 위로, 모서리부터 떨어졌다.

모서리가 판의 끝을 쳤다.

전광판 조각이 들렸다. 한쪽 끝이 바닥에서 떨어지고, 판 밑으로 바람이 들어가고, 판이 일어섰다가, 넘어갔다. 앞면에 남은 글자의 흔적이 하늘을 향했다.

빈 관중석은 소리를 내지 않았다. 대신 아일랜드의 지휘석에서 서브 리더 둘이 동시에 소리를 질렀다. 페페는 지르지 않았다. 패널에 한 줄이 떠 있었다.

[가져왔습니다.]

[4판. 아일랜드.]

— 봤어.

그는 그 말밖에 쓰지 못했다. 손이 떨렸다.

* * *

그다음은 빨랐다.

다섯 번째 판에서 S.I.는 아일랜드가 방금 쓴 수를 썼다. 틈을 열고, 바닥을 차고, 돌아서 내리꽂았다. 아일랜드가 처음으로 꺼낸 수였다. 꺼낸 지 일 분도 지나지 않았다. 다만 S.I.의 판은 반 바퀴가 아니라 한 바퀴 반을 돌았고, 떨어지는 자리는 아일랜드가 노린 모서리보다 손가락 한 마디 안쪽이었다.

아일랜드의 기체가 뒤집혔다. 뒤집힌 채로 바닥을 미끄러져 경기장 가장자리에 부딪혔다.

[5판. S.I.]

[S.I. 4 : 아일랜드 1. S.I. 승.]

판정이 울리는 동안 페페는 패널에서 눈을 떼지 않았다. 패널은 아직 푸른빛이었다.

— 하나 가져왔어.

[네.]

— 그거면 됐어.

[마스터 리더님. 다음 팀한테 그 수를 남겨 주십시오. 저쪽이 이미 썼지만, 처음 꺼낸 건 저희였습니다.]

페페는 대답하려고 손가락을 올렸다.

패널이 붉게 물들었다.

[WARNING]

[WARNING]

치직. 치직. 잡음이 가장자리부터 번져 왔다. 페페는 그것을 처음 보지 않았다. 어젯밤 건너편 지휘석에서, 케빈의 어깨 너머로 한 번 보았다. 볼 때와 겪을 때는 달랐다. 볼 때는 화면이 꺼지는 것이었다. 겪을 때는 말하던 상대가 문장 중간에 사라지는 것이었다.

[접근 권한이 없습니다.]

패널이 꺼졌다.

* * *

뛰어나갔던 서브 리더가 돌아왔다. 손에 떼어 낸 저장 장치를 들고 있었다. 숨이 차 있었다. 그는 그것을 정비용 단말에 꽂았다. 페페는 보지 않아도 결과를 알았다. 그래도 보았다.

[복구 실패. 파일을 해독할 수 없습니다.]

"네 번째 판이 시작되기 전에 뽑았습니다." 서브 리더가 말했다. "그 뒤로 어디에도 연결되지 않았습니다. 제 주머니에 있었습니다."

"알아." 페페가 말했다.

경기가 끝나기 전까지는 멀쩡했을 것이다. 주머니 속에서, 어디에도 이어지지 않은 채로. 그리고 경기가 끝난 순간 잠겼다. 아무도 그 말을 소리 내어 하지 않았다.

페페는 공용 회선을 열었다. 고스트 쪽이었다.

"미미."

"네."

"저 애가 남긴 말이 있어요. 다음 팀한테 전해 달라고."

회선 너머에서 미미가 기다렸다.

"틈을 열어 두고 튀어라. 뒤집히기 직전에." 페페가 말했다. "저쪽은 벌써 배웠어요. 그래도 처음 꺼낸 건 아일랜드였다고."

"받았습니다." 미미가 말했다. 잠깐 사이를 두고 덧붙였다. "고맙다고 전해 주세요."

페페는 꺼진 패널을 보았다. 전할 곳이 없었다.

그래도 한 번은 먼저 말해 두었다. 끝나고 한 번 더 듣겠다던 대답이 아직 거기 있었다. 패널이 꺼져도, 그가 읽은 것은 꺼지지 않았다. 건너편에서 케빈이 이쪽을 보고 있었다. 페페는 그에게 고개를 한 번 숙였다. 이번에는 고맙다는 뜻이었다.

* * *

전광판이 켜졌다. 이번에는 숫자 대신 문장이었다.

[남은 팀: 고스트, 퍼시픽.]

그 아래 한 줄이 더 떴다.

[퍼시픽의 분리는 기권으로 보지 않는다.]

퍼시픽의 지휘석에서 준이 꺼진 패널 앞에 선 채, 그 줄을 올려다보고 있었다. 화면 속 본거지의 콘솔에는 아직도 붉은 숫자가 떠 있었다. 끊어진 서버 안에서, 아무 데도 이어지지 않은 채로.

← 이전 화: 5화: 접근 권한

반응형
Posted by MakeBuildLabs
,