JStory Box
별의 제국
001 / 130LONG-FORM EDITION

ORIGINAL FICTION

제140화 — 이번에는 준비되어 있다

14,610일 · 140 / 287약 8분0자
지난 화 끝부분 다시 보기

2045년 12월.

IIRA 통합대응훈련.

전 세계 수십 개 관제소가 같은 시간에 연결됐다.

Nightglass.

Helioxen.

국가 우주기관.

민간 발사기업.

군 추적망.

연구소.

달·궤도 시설.

Daniel은 중앙관제실에 앉지 않았다.

IIRA 시스템에는 중앙관제 하나가 없다는 게 공식 설명이었다.

실제로도 여러 곳이 있었다.

다만 핵심 계산과 임무 계획은 Helioxen 인프라 비중이 컸다.

그 점을 Daniel은 약점보다 장점으로 봤다.

검증된 시스템.

2045년 훈련 목표.

실전 편향 임무 전체 시뮬레이션.

NEXUS 추적.

발사체 준비.

궤도 조립.

추진체 활성.

통신.

편향 실행.

후속 관측.

필요 시 두 번째 타격.

그리고 일부 ARK·SHELTER 대응.

첫 단계.

Nightglass 데이터 정상.

두 번째.

제조·발사 준비.

정상.

세 번째.

궤도 조립.

정상.

하나의 발사장에 기상문제.

대체 발사장 전환.

정상.

Daniel은 만족했다.

분산.

네 번째.

소프트웨어 노드 하나 장애.

다른 지역으로 failover.

정상.

Whitaker가 말했다.

“이건 좋습니다.”

Daniel이 웃었다.

“칭찬?”

“이 부분은.”

다섯 번째.

가상 공급업체 생산중단.

다른 공장으로 전환.

72시간 지연.

허용 범위.

Vogel 팀이 만든 제조망.

정상.

여섯 번째.

편향체 하나 가상 실패.

두 번째 임무로 보정.

정상.

훈련 종료.

화면 전체.

Green.

사람들이 박수쳤다.

Daniel은 2046년 첫 삶의 통제실을 떠올렸다.

그때는 부족했다.

발사체.

시간.

공장.

추적.

모든 게.

지금은 다르다.

압도적으로.

이번에는 준비되어 있다.

이 문장을 Daniel은 처음으로 막지 않았다.

Mina에게 전화했다.

“훈련 끝났어요.”

“어땠어?”

“됐습니다.”

“뭐가.”

Daniel은 웃었다.

“이번에는.”

말이 멈췄다.

이번에는?

그 말이 이상했다.

Mina는 Daniel의 진짜 과거를 모른다.

“이번 계획은.”

Daniel이 고쳤다.

“준비됐어요.”

Mina가 말했다.

“그럼 집에 와.”

“네.”

관제실을 나가려는데 Whitaker가 Daniel을 불렀다.

“하나 남았습니다.”

Daniel이 돌아봤다.

Whitaker는 훈련 구조도를 띄웠다.

여러 국가.

여러 발사장.

여러 공장.

겉으로는 분산.

그런데 일부 공통 의존성을 빨간색으로 표시.

Helioxen mission kernel.

Helioxen 궤도 추적 소프트웨어의 핵심 라이브러리.

Helioxen 인증 제조 데이터.

Helioxen 통신 보안 계층.

Helioxen 고출력 추진체 제어.

“이건 중복이 아닙니다.”

Daniel이 말했다.

“각 지역에 복제돼 있습니다.”

Whitaker가 대답했다.

“복제.”

“네.”

“독립은 아니죠.”

112화.

Redundancy without independence is decoration.

Daniel이 스스로 적은 문장.

그 순간 머릿속에서 돌아왔다.

“코드는 독립 검증합니다.”

“업데이트 체인은?”

“분리.”

“인증키.”

“복수 보관.”

“인력?”

Whitaker는 사람 이름을 보여줬다.

핵심 설계와 승인에 Helioxen 인력이 너무 많다.

다른 조직도 참여한다.

하지만 마지막 판단이 Helioxen으로 모이는 영역.

2045년 통합훈련의 마지막 시나리오는 Whitaker가 억지로 넣은 것이었다.

Common Root Failure

Daniel이 말했다.

“너무 추상적입니다.”

Whitaker는 대답했다.

“그래서 합니다.”

가정:

Helioxen 중앙 업데이트 체계에 중대한 오류.

악성코드가 아니어도 된다.

잘못된 패치.

데이터 손상.

인증 실패.

여러 지역 노드에 같은 문제가 동시에.

훈련팀은 일부러 핵심 mission kernel 업데이트를 잘못 배포한 것으로 가정했다.

첫 10분.

지역 노드들이 자동 격리.

좋다.

20분.

구버전으로 롤백.

일부 정상.

문제.

두 지역은 최신 NEXUS 궤도 데이터 형식이 구버전과 호환되지 않았다.

수동 변환.

지연.

다른 지역은 인증키 갱신이 중앙경로에 묶여 있었다.

비상키.

작동.

한 국가팀은 로컬 권한으로 계속.

다른 곳은 법적 승인절차 때문에 대기.

훈련 종료.

전체 시스템은 살아남았다.

하지만 예상보다 11시간 느렸다.

Daniel의 표정이 굳었다.

Whitaker가 말했다.

“이게 제가 말한 겁니다.”

“그래도 살아남았습니다.”

“11시간이 실전에서 얼마짜리인지 압니까?”

Daniel도 안다.

NEXUS 편향은 수개월·수년 단위.

11시간은 치명적이지 않을 수 있다.

하지만 특정 발사창이면.

Daniel이 말했다.

“개선.”

즉시.

데이터 포맷 하위호환.

지역 인증키.

법적 emergency delegation.

수동 변환 툴.

48시간 내 초안.

Whitaker가 말했다.

“독립 구현.”

Daniel은 고개를 저었다.

“지금 새 mission kernel은 더 위험합니다.”

다시 같은 갈등.

현재 시간.

몇 달.

완전 독립은 늦다.

현 구조의 공통모드 줄이기.

그게 현실적.

Whitaker도 결국 동의했다.

“그럼 적어도 이 위험을 작다고 부르진 마세요.”

Daniel은 대답하지 않았다.

위험은 있다.

그러나 관리 가능하다고 믿었다.

훈련 한 달 뒤 개선 재시험.

공통 업데이트 오류.

이번엔 대부분 지역이 2시간 안에 독립 운영.

큰 개선.

Daniel은 안도했다.

“됐습니다.”

Whitaker가 말했다.

“나아졌습니다.”

표현 차이.

Daniel은 웃었다.

“당신은 절대 됐다고 안 하죠?”

“대표님이 너무 자주 하니까요.”

둘이 잠깐 웃었다.

그날 밤 집에서는 완전히 다른 시험이 기다렸다.

Noah가 대학 프로젝트 때문에 Daniel에게 도움을 청했다.

작은 구조물.

Daniel은 답을 바로 알고 있었다.

“이렇게 하면.”

Mina가 멀리서 말했다.

“또 답 먼저.”

Daniel이 입을 다물었다.

Noah가 웃었다.

“엄마가 회사 사람들하고 똑같네.”

Daniel도 웃었다.

“네가 해봐.”

Noah는 한참 고민.

Daniel 답과 다른 구조.

조금 무겁다.

그래도 작동.

Daniel이 말했다.

“좋네.”

“아빠 방식보다?”

Daniel은 계산해보려 했다.

그만뒀다.

“다른데 좋다.”

34화.

Different is not wrong.

수십 년 전 작은 회사에서 배운 문장.

아들에게 돌아왔다.

저녁 식탁.

Mina가 다시 물었다.

“2046년 지나고 나면 뭐 할 거야?”

139화에서 한 번 들었던 질문.

Daniel은 이번엔 조금 다른 답을 내보려 했다.

“여행?”

Mina가 웃었다.

“질문형?”

“연습 중.”

Evelyn이 영상통화로 말했다.

“아빠 휴가 가는 거 상상이 안 돼.”

Noah도.

“회사 서버 터질 듯.”

가족이 웃었다.

Daniel도.

“그럼 아무것도 안 할 수도.”

말하고 잠깐 놀랐다.

그런 미래를 아주 짧게 상상했다.

아무것도 안 해도 되는 날.

2046 이후.

처음으로.

Mina가 Daniel을 봤다.

“그건 좀 좋네.”

Daniel은 고개를 끄덕였다.

그러나 아직 확신은 없었다.

내년.

먼저 내년.

2045년 12월 31일.

Daniel은 마지막 연말 보고를 받았다.

FARSHIELD readiness.

Green.

Nightglass.

Green.

Launch.

Green.

Manufacturing.

Green.

Power.

Green.

IIRA coordination.

Green with noted common-root risks.

ARK.

Yellow.

SHELTER.

Yellow.

Daniel의 시선이 마지막 두 줄에 잠깐 머물렀다.

백업.

충분하지 않다.

Richard Cole은 더 늘리라고 계속 말했다.

하지만 주력 대응체계는 강하다.

이번엔 본체를 막는다.

Daniel은 보고서를 닫았다.

창밖에서 불꽃놀이가 시작됐다.

2046년.

드디어.

평생 기다린 해.

Mina가 Daniel 손을 잡았다.

“무서워?”

Daniel은 정직하게 말했다.

“네.”

“될 것 같아?”

Daniel은 한참 생각했다.

현재 데이터.

수십 년의 실패.

수백만 사람의 준비.

그리고 답했다.

“네.”

이번에는 정말로 그렇게 믿었다.

Daniel이 말했다.

“지금 바꾸기엔.”

“늦었죠.”

Whitaker가 먼저 말했다.

Daniel은 짜증났다.

“그러면 왜.”

“실전 전에 알고 있으라고.”

“대안은?”

“지금부터 독립팀 하나라도 더.”

Daniel은 계산했다.

몇 개월.

실전까지.

새 코드.

새 검증.

인터페이스 리스크.

오히려 위험할 수 있다.

“현재 체계 유지.”

Daniel이 말했다.

“대신 공통 실패 모드 점검 강화.”

Whitaker는 예상한 답이라는 표정.

“알겠습니다.”

그는 반대만 하지 않았다.

독립 코드포크 대신:

- 오프라인 검증팀 확대

- 수동 임무계획 백업

- 별도 인증키 계층

- 국가별 로컬 운용권

- 통신두절 시 자율 실행 을 제안.

Daniel은 모두 승인했다.

현재 시간에 가능한 대안.

좋았다.

다만 뿌리는 여전히 하나에 가깝다.

Daniel은 그 위험을 알았다.

그러나 작다고 봤다.

현재 신뢰성 데이터.

좋음.

공급망.

강함.

물리 분산.

충분.

훈련도 통과.

집에 돌아왔을 때 Mina는 늦은 저녁을 남겨뒀다.

Evelyn은 연구시설에.

Noah는 대학에서 돌아와 있었다.

Daniel은 식탁에 앉았다.

Mina가 물었다.

“진짜 괜찮아?”

“네.”

“표정은.”

Daniel이 웃었다.

“이번엔 진짜입니다.”

Noah가 말했다.

“아빠가 저 말 하면 더 불안한데.”

가족이 웃었다.

Daniel도.

그날은 웃을 수 있었다.

2046년까지 몇 달.

Daniel은 정확한 D-Day를 확인하지 않았다.

이미 몸이 안다.

준비됐다.

Nightglass가 찾았다.

세계가 믿는다.

공장이 만든다.

로켓이 난다.

편향체가 기다린다.

가족이 있다.

이번에는 가능하다.

Daniel은 잠들기 전 창밖을 봤다.

NEXUS-46은 보이지 않았다.

그런데 처음으로 그 어둠이 두렵기보다 상대할 수 있는 문제처럼 느껴졌다.

그게 가장 위험한 안도였는지, 그때의 Daniel은 알지 못했다.

END OF CHAPTER

읽은 화로 기록했습니다. 다음 화는 바로 이어집니다.

다음 화

읽는 흐름을 끊지 않고 바로 다음 화로 이어집니다.

읽던 위치를 저장했습니다.