전문 · CHAPTER 11

군단을 지휘하는 손 — 오케스트레이션과 음(-0)의 안전장치

저는 앞 장을 이렇게 닫았습니다. 먼저 길을 냈을 뿐, 다음 발자국은 여러분의 차례라고. 그리고 그 말 뒤에 약속 하나가 숨어 있었습니다. 답지를 다 펼쳐 보였으니 이제 채점이 남았다는 약속입니다.

채점이라는 말을 듣고 빨간 펜을 떠올리셨다면, 절반만 맞습니다. 아홉 개의 답을 하나씩 꺼내 동그라미와 가위표를 매기는 채점이라면 이미 앞의 장들이 끝냈습니다. 칸마다 파일 경로와 포트 번호를 붙였고, 완성과 미완을 갈라 적었습니다. 남은 채점은 다른 종류입니다. 아홉 답을 따로 매기는 게 아니라, 한 몸으로 굴려보는 것. 엔진이 좋다는 말과 차가 달린다는 말이 다르듯, 부품 검증과 시스템 검증은 다른 시험입니다. 이 장은 그 마지막 시험, 통합 거동의 시험입니다.

마침 세상도 같은 시험지를 들고 묻습니다. 수천 개의 도구, 여러 종류의 AI 모델, 전국의 엣지 장비가 얽힌 거대한 생태계에서, 프로그램 군단끼리의 충돌은 어떻게 막고 일은 어떻게 나누는가. 그리고 더 무거운 두 번째 질문 — 의료처럼 오차가 용납되지 않는 물리 세계, 이른바 Embodied AI와 연결될 때, 안전장치는 어디에 있는가.

크라우니의 답은 네 개의 축으로 구성됩니다. 요청을 나누는 트리아지 라우터, 충돌을 흐름으로 푸는 티옴타 3진 스웜 제어, 군단을 배우게 하는 하이브리드 매쉬 비동기 합의, 그리고 이 장의 심장인 음(-0)의 페일세이프. 앞의 셋이 군단을 지휘하는 손이라면, 마지막 하나는 그 손이 절대 넘지 못하게 새겨 둔 금입니다. 이 넷이 따로 발명된 장치가 아니라 같은 4상균형3진의 네 얼굴이라는 것 — 그것이 이 채점에서 제가 보여드리고 싶은 단 하나의 그림입니다.

지금부터는 백서의 언어로 말하겠습니다. 라우팅 단계, 상태 전이, 감독자 패턴, 하드코딩의 경계를 정확히 적겠습니다. 다만 마지막 문은, 이 책 전체의 마지막 문이기도 하므로, 다시 제 목소리로 닫겠습니다.

---

I. 문제 정의 — 잠금의 세계와 교착

먼저 기존 2진법 시스템이 자원 충돌을 다루는 방식을 정확히 기술한다.

여러 프로세스가 같은 자원에 접근할 때, 2진 시스템의 표준 해법은 상호배제 잠금이다. 자원의 상태 공간은 단 두 값 — 잠금(Lock)과 해제(Unlock) — 이며, 잠금을 쥔 하나만 일하고 나머지는 대기 큐에 줄을 선다. 이 모델은 단순하고, 단일 자원·소수 경합에서는 충분히 잘 작동한다. 문제는 규모다. 에이전트가 수십, 자원이 수백, 의존이 서로 얽히는 군단 규모가 되면 두 가지 병리가 구조적으로 나타난다.

첫째, 대기의 전염이다. 잠금은 기다림 외의 선택지를 주지 않으므로, 하나의 느린 작업이 큐 전체의 지연으로 번진다. 기다리는 동안 대기자들이 쥔 다른 자원도 함께 묶인다.

둘째, 교착(Deadlock)이다. A가 쥔 자원을 B가 기다리고, B가 쥔 자원을 A가 기다리는 원형 대기가 형성되면 시스템은 누구의 잘못도 아닌 채로 멈춘다. 두 상태뿐인 세계에서는 "기다리지 않고 다르게 한다"는 동사 자체가 없기 때문에, 교착은 버그가 아니라 모델의 귀결이다.

셋째 병리는 규모와 함께 오는 운영의 경직이다. 잠금 모델에서 처리량을 늘리는 표준 수단은 잠금의 입자도를 쪼개는 것(fine-grained locking)인데, 입자도를 쪼갤수록 잠금 획득 순서의 조합이 폭증하고, 교착의 가능 경로도 함께 폭증한다. 즉 2진 잠금의 세계에서는 성능 최적화와 안전성이 서로를 깎아먹는 트레이드오프 관계에 갇힌다. 군단 규모의 오케스트레이션이 이 모델 위에 서 있으면, 시스템은 빨라질수록 위험해지고 안전해질수록 느려진다.

여기에 두 번째 층의 문제가 겹친다. 예외 처리다. 2진 시스템은 정상 경로 밖의 사건 — 이해되지 않는 입력, 학습 분포 밖의 변수, 회귀, 왜곡 — 을 '에러'라는 단일 범주로 처리한다. 크래시하거나, 무시하거나. 둘 다 물리 세계에서는 허용되지 않는 답이다. 수술 도구는 크래시할 수 없고, 이상 신호를 무시할 수도 없다. 더 나쁜 것은 LLM 기반 에이전트가 이 그림에 들어올 때다. LLM은 모르는 것을 만나면 크래시하는 대신 그럴듯한 답을 생성한다 — 예외가 에러로조차 드러나지 않고 정상 출력으로 위장한다. 2진의 예외 처리가 '소리 나는 실패'라면, 환각은 '소리 없는 실패'다. 군단의 안전장치는 이 둘 모두를 설계 단계에서 막아야 한다.

따라서 채점 기준은 다음 둘이다. 군단 규모에서 멈추지 않고 흐르는가. 그리고 예외 앞에서 이름 있는 자리로 물러설 줄 아는가. 전자가 오케스트레이션의 시험이고, 후자가 페일세이프의 시험이다. 두 시험은 흔히 상충하는 것으로 취급된다 — 흐름을 좇으면 안전이 얇아지고, 안전을 좇으면 흐름이 막힌다는 통념이다. 그러나 그 통념은 2진 상태 공간 안에서만 참이다. 이어지는 네 절은 상태 공간을 넓히는 것만으로 두 시험을 동시에 통과하는 구성을 보인다.

---

II. 트리아지 라우터 — 4단계 하이브리드 동적 라우팅

오케스트레이션의 첫 동작은 분배다. 모든 요청은 성격·보안수준·복잡도라는 세 축으로 분류되어 최적의 처리 자리로 배분된다. 응급실의 트리아지 간호사가 환자를 중증도로 가르듯, 라우터는 요청이 시스템에 닿는 첫 순간에 경로를 결정한다. 간호사는 환자를 치료하지 않는다 — 자리를 정해줄 뿐이다. 그런데 그 한 번의 분류가 응급실 전체의 처리량과 생존율을 결정한다. 크라우니의 라우터는 4단계 하이브리드 구성이다.

1단계 — 보안·저지연 (로컬 엣지). 개인정보, 금융 트레이딩, 의료 제어처럼 즉각 반응이 필요하고 외부로 나가서는 안 되는 데이터는 클라우드로 가지 않는다. 로컬 젯슨(Jetson Orin/Thor) 위의 세미LLM이 즉시 처리한다. 이 자리의 실증 구현이 크라우니집사다 — Jetson Orin 엣지 SLM, 3층 분리 구조에 자체 라우터 4단계, 그리고 모르는 것을 안다고 말하지 않게 하는 정직보정이 내장되어 있다. 3층의 분담을 적어 두면, L0은 트릿 하나를 2비트에 담는 최하층 표현이고, L1은 순수 3진 연산층이며, L2는 4상을 다루는 층이다 — 즉 이 장이 다루는 4상의 논리가 전국 라우팅의 1단계 기기 내부에서도 같은 모양으로 반복된다. 한 가지를 정확히 구분해 둔다. 크라우니집사의 Orin 구동은 실증 단계이고, 젯슨 토르를 전국 단위로 까는 구상은 아직 컨셉·설계 단계다. 이 장에서 토르 전국망을 라이브로 셈하지 않는다. 다만 설계의 방향은 분명하다 — 1단계의 자리는 앞으로 클라우드가 아니라 더 많은 로컬로 두꺼워진다.

2단계 — 시각·외부 연동. 이미지 해석은 제미나이 Flash, 범용 상담은 제미나이 Flash-Lite, 비저닝 학습은 제미나이 Pro API가 맡는다. 외부 모델을 쓰되, 역할을 좁게 고정해 쓴다.

3단계 — 설계·심층 추론. 아키텍처 설계는 페블(Fable), 에이전트 구동은 오푸스(Opus)가 맡는다. 가장 비싼 자원이므로 가장 좁은 문으로만 들어온다. 설계와 구동을 가른 것도 의도다 — 구조를 그리는 추론과 도구를 쥐고 움직이는 추론은 부하 특성이 다르고, 같은 단계 안에서도 역할은 더 쪼개질수록 라우팅의 해상도가 올라간다.

4단계 — 고속 텍스트. 보고서와 글 작성은 하이쿠(Haiku)다. 빠르고 싸고, 그 일에는 충분하다. 4단계가 따로 있다는 것은 곧, 3단계의 비싼 추론이 글쓰기 같은 대량·반복 작업에 새어 나가지 않도록 배수로를 파 두었다는 뜻이기도 하다.

단계분류 기준처리 자리대표 작업
1보안·저지연로컬 젯슨 세미LLM(크라우니집사)개인정보, 금융 트레이딩, 의료 제어
2시각·외부 연동제미나이 Flash / Flash-Lite / Pro이미지 해석, 범용 상담, 비저닝 학습
3설계·심층 추론페블 / 오푸스아키텍처 설계, 에이전트 구동
4고속 텍스트하이쿠보고서·글 작성

이 구성이 '하이브리드'인 이유는 처리 주체의 종이 섞여 있기 때문이다. 1단계는 자체 엣지 SLM, 2단계는 외부 모델의 좁은 역할 고정, 3·4단계는 외부 프런티어 모델이다. 자급과 차용을 이념으로 가르지 않고, 보안수준과 비용 곡선이 가르게 한다 — 바깥으로 나가면 안 되는 것은 자체 엣지가, 나가도 되는 것 중 비싼 추론만 프런티어가, 나머지는 경량 모델이 맡는다.

그리고 '동적'인 이유는 표가 고정 배선이 아니기 때문이다. 실제 운영에서 라우팅은 살아 움직인다. report.crowny.org는 이해는 제미나이 Flash-Lite, 작성은 오푸스라는 이중 라우팅으로 라이브 운영 중이다 — 한 요청 안에서도 국면에 따라 처리 자리가 갈린다. 같은 문장을 읽는 일과 쓰는 일은 요구 지능이 다르므로, 요청 단위가 아니라 국면 단위로 라우팅하는 것이 비용·품질 곡선의 실제 최적점이라는 사실을 라이브 트래픽이 증명하고 있다. crowny.org의 크라우니AI는 제미나이 3모델(Pro/Flash/Flash-Lite) 라우팅에 자동강등을 더해 운영 중이다 — 상위 모델이 응답하지 못하면 라우터가 하위 단계로 경로를 즉시 내린다. 강등이 자동이라는 점이 핵심이다. 운영자가 장애를 인지하고 경로를 바꾸는 시스템은 장애 시간만큼 멈추지만, 강등이 라우터의 상태 전이로 정의된 시스템은 성능이 낮아질 뿐 멈추지 않는다. 요청이 모델을 고르는 것이 아니라, 시스템의 현재 상태가 경로를 고른다.

설계 함의는 분명하다. "가장 똑똑한 모델에게 다 시킨다"는 단일 라우팅은 비용에서도, 지연에서도, 보안에서도 진다. 트리아지는 지능의 절약이 아니라 지능의 배치다. 그리고 1단계가 표의 맨 위에 있는 까닭은 성능 순서가 아니라 주권 순서다 — 바깥으로 나가면 안 되는 것부터 자리를 받는다. 라우터는 군단의 첫 관문이면서 동시에 첫 안전장치다. 어떤 데이터가 어디까지 갈 수 있는가를 요청이 도착한 첫 밀리초에 결정해 버리면, 그 뒤의 모든 구성요소는 자기 단계의 보안 가정 안에서만 일하면 된다.

---

III. 티옴타 3진 스웜 충돌 제어 — 2상 잠금을 3상 흐름으로

라우터가 일을 나눠도, 같은 자원에 여러 에이전트가 동시에 닿는 순간은 반드시 온다. API 호출 한도, GPU 메모리 같은 유한 자원이 대표적이다. 1절에서 본 대로 2진의 답은 Lock/Unlock 두 상태였다. 크라우니는 이 지점에서 상태 공간 자체를 바꾼다. 충돌에 직면한 에이전트가 취할 수 있는 상태를 티(+1)·옴(0)·타(-1) 셋으로 정의한다.

티(+1) — 실행·우선 할당. 중요도가 높은 작업에는 자원이 즉시 할당된다. 트레이딩의 손절매, 의료의 실시간 모니터링이 이 자리다. 우선순위가 명확한 작업이 줄을 서서 기다리는 일은 설계상 일어나지 않는다.

옴(0) — 대기·탐색. 여기가 2진과 갈라지는 핵심 분기다. 옴은 잠금이 아니다. 잠금 대기와 동일시하면 이 설계를 오독하게 된다. 옴은 "아직 판단 전, 길을 찾는 중"의 상태다. 자원이 부족해도 에이전트는 멈춰 서지 않는다 — 매쉬 위의 다른 유휴 노드를 탐색해 작업을 이관(Offloading)한다. 2진의 대기가 수동(자원이 풀릴 때까지 정지)이라면, 옴의 대기는 능동(대안 경로의 탐색)이다. 식탁의 비유로 옮기면, 2진은 반찬 접시 하나를 두고 모두가 젓가락을 들고 기다리는 것이고, 옴은 같은 반찬이 담긴 다른 접시를 찾아 손을 뻗는 것이다. 자원의 총량이 같아도, 기다림이 탐색으로 바뀌는 순간 시스템의 처리량 곡선은 완전히 달라진다. 달리 말하면 옴은 망설임에 상태의 이름을 준 것이다. 이름이 없는 망설임은 정지로밖에 구현되지 못하지만, 이름을 가진 망설임은 자기 행동 규약을 가질 수 있다 — 옴의 규약은 '찾는다'이다.

타(-1) — 분해·우회. 충돌이 확실해지면 무한 대기 대신 행동을 즉각 수정한다. 작업을 하위 단계로 분해하거나, 다른 도구로 우회한다. 자원을 두고 다투는 대신 자원 요구의 형태 자체를 바꾸는 것이다. 분해는 큰 자원 요구 하나를 작은 요구 여럿으로 바꿔 경합의 단면적을 줄이고, 우회는 경합 중인 자원 종류에서 아예 빠져나온다. 어느 쪽이든 결과는 같다 — 충돌 그래프에서 이 에이전트의 간선이 지워진다.

충돌 국면2진 잠금 모델티옴타 3진 모델
자원 가용잠금 획득 후 실행티 — 우선순위 기반 즉시 할당
자원 부족큐에서 정지 대기옴 — 유휴 노드 탐색·작업 이관
충돌 확정계속 대기(교착 위험)타 — 작업 분해 또는 도구 우회

교착이 해소되는 논리도 상태 공간에서 직접 따라 나온다. 교착의 성립 조건은 "모두가 기다리기만 하는 원형 고리"다. 그런데 3상 모델에서는 어떤 에이전트도 순수 대기 상태에 갇히지 않는다 — 옴은 고리 바깥의 노드를 탐색하고 있고, 타는 고리를 구성하던 자원 요구 자체를 분해해 버린다. 원형 대기가 닫히기 위한 전제, 즉 "기다림 외의 동사가 없다"가 깨지므로, 교착은 회피 대상이 아니라 형성 불가능한 구조가 된다. 신호등에 비유하면 2진은 차단봉 하나로 길을 막았다 열었다 하는 것이고, 3진은 초록·노랑·빨강으로 흐름 자체를 설계하는 것이다.

이 3상 충돌 제어는 고립된 발명이 아니라, 이미 라이브로 도는 4상 의사결정 논리의 자원 버전이다. 크라우니집사의 4상 의사결정 엔진(결정.한선)은 누적 동의 3건 이상이면 티(자동 실행), 비동의 3건 이상이면 타(중단), 모르지만 검색 가능하면 옴(연구 후 전환), 모르는데 자력으로 불가하면 음(상급자 이관)으로 판정한다. 이 전이 규칙에서 주목할 것은 옴의 정의다 — "모르지만 검색 가능"은 종착 상태가 아니라 경유 상태다. 옴에 들어간 판단은 연구를 거쳐 티나 타로 전환되도록 설계되어 있고, 그래서 옴은 시스템이 머무는 곳이 아니라 통과하는 곳이다. 스웜의 자원 충돌 제어는 이 동일한 판 위에서 판정 대상만 '결정'에서 '자원'으로 바꾼 것이다 — 옴의 노드 탐색은 "검색 후 전환"의 자원판이고, 타의 작업 분해는 "비동의 시 중단·수정"의 자원판이다. 같은 수학이 의사결정에서도, 자원 스케줄링에서도 돈다 — 하나의 원리에서 자란 가지라는 이 책의 명제가 오케스트레이션 층에서도 반복된다.

그리고 주의 깊은 독자는 방금 네 번째 상태가 스쳐 간 것을 보았을 것이다. 티·옴·타가 정규 3상의 흐름을 책임진다면, 음(-0)은 그 3상 어디에도 담기지 않는 사건의 자리다. 그 자리는 5절에서 정면으로 다룬다.

---

IV. 하이브리드 매쉬 — 비동기 합의와 룰셋 재배포

세 번째 축은 군단의 학습이다. 전국의 로컬 노드와 본부(Service HQ)가 어떻게 하나의 군단으로 고도화되는가.

먼저 반(反)패턴을 명시한다. 모든 노드가 모든 데이터를 본부와 실시간 동기화하는 설계는 채택하지 않는다. 막대한 트래픽 낭비이기 때문이다. 전국 단위에서 전량 동기화는 네트워크 비용으로도, 장애 전파 면적으로도 성립하지 않는다. 전국 지점장이 매일 본사에 전화로 모든 거래를 보고하는 회사를 상상하면 된다 — 회선보다 먼저 조직이 무너진다.

크라우니 매쉬의 합의는 비동기이고, 흐르는 것은 데이터가 아니라 학습의 파편이다.

노드 측. 로컬 노드는 철저히 규칙 기반의 경계 안에서 독립 자율 에이전트로 일한다. 판단의 주체는 노드에 배포된 룰셋이며, 노드는 자기 일을 자기 자리에서 끝낸다. 본부로 보내는 것은 결과값과 성공/실패의 학습 가중치 파편뿐이다. 비동기로, 가볍게. '규칙 기반의 경계 안에서'라는 한정이 자율성의 제한처럼 들린다면 거꾸로 읽은 것이다 — 경계가 명확하기 때문에 노드를 풀어 둘 수 있다. 무엇이든 할 수 있는 노드는 무엇을 할지 몰라 본부의 승인을 기다려야 하지만, 룰셋 안에서만 움직이는 노드는 승인 없이 움직여도 결과가 예측 범위 안에 있다. 자율과 통제는 반비례가 아니라, 경계의 명확성이라는 같은 변수의 두 출력이다.

본부 측. 오케스트레이터는 전국에서 모인 파편을 취합해 군단 전체의 프로그램을 고도화한다. 그리고 그 결과를 다시 무겁게 내려보내지 않는다 — 최적화된 소형 룰셋으로 압축해 전체 노드에 가볍게 재배포한다. 올라가는 것은 파편, 내려오는 것은 룰셋. 어느 방향도 원본 데이터의 대량 이동이 없다.

이 순환이 '비동기 합의'인 이유를 정확히 해 두자. 노드들은 어떤 순간에도 전원 일치의 글로벌 상태를 요구하지 않는다. 어떤 노드는 이번 룰셋을, 어떤 노드는 지난 룰셋을 돌리고 있어도 시스템은 성립한다 — 각 노드의 행동이 자기에게 배포된 룰셋 안에서 닫혀 있기 때문이다. 합의는 트랜잭션처럼 매 순간 강제되는 것이 아니라, 룰셋 재배포라는 주기적 사건으로 수렴한다. 강한 일관성을 포기하는 대신 얻는 것은 둘이다. 본부 장애가 노드의 일을 멈추지 못한다는 가용성, 그리고 전국 트래픽이 파편과 룰셋의 크기로 묶인다는 예측 가능성. 지점장 회의의 비유로 말하면, 매일 모든 거래를 전화로 부르는 대신 월말에 핵심 보고 한 장을 올리고 본사의 새 지침 한 장을 받는 구조다 — 그 사이의 나날에 지점은 자기 권한으로 일한다.

이 순환의 핵심 원리를 한 문장으로 적는다. 사용자에게는 자율형 에이전트의 경험을, 백엔드에서는 축적된 프로그램(규칙) 군단의 고도화를. 사용자가 마주하는 것은 알아서 판단하고 움직이는 에이전트지만, 그 등 뒤에서 실제로 실행되는 것은 환각이 아니라 검증된 규칙이다. 규칙이 주체이고, LLM은 윤활유다 — 규칙 사이의 틈을 매끄럽게 하고, 새 규칙의 초안을 거들 뿐, 실행의 권한은 갖지 않는다.

'윤활유'의 경계선을 공학적으로 그어 두면 이렇다. LLM이 해도 되는 일 — 자연어 요청을 규칙의 언어로 옮기는 번역, 기존 규칙으로 덮이지 않는 틈에서 초안을 제안하는 일, 규칙 실행 결과를 사람의 말로 풀어 주는 일. LLM이 해서는 안 되는 일 — 검증을 거치지 않은 출력이 그대로 실행되는 일. 즉 LLM의 산출물은 언제나 규칙 파이프라인의 입구로 들어가지, 실행기의 입구로 직행하지 않는다. 1절에서 지적한 '소리 없는 실패', 곧 환각이 정상 출력으로 위장하는 문제는 이 배선 하나로 차단된다. 환각이 생겨도 그것은 검증 대기열의 후보일 뿐, 실행 권한이 없다.

이 구조의 공학적 매력은 신뢰성의 소재지가 바뀐다는 데 있다. LLM이 실행 주체인 시스템에서 신뢰성은 모델의 내부, 즉 읽을 수 없는 가중치 더미에 산다. 규칙이 실행 주체인 시스템에서 신뢰성은 룰셋, 즉 읽을 수 있고 검증할 수 있고 버전을 매길 수 있는 산출물에 산다. 전자는 "이번에도 잘하기를" 바라는 시스템이고, 후자는 "지난번에 검증된 것만 도는" 시스템이다. 군단 규모에서 둘의 차이는 운영 가능성의 차이다.

실증은 같은 논리의 세 구현에 있다. 규칙 기반 에이전트 프레임워크 셀코어는 15개 모듈로 이 '노드 측 규칙 주체'를 구현한다 — 노드가 자율로 보이면서도 규칙의 경계 안에 있다는 매쉬의 전제가 프레임워크 수준에서 이미 표준화되어 있다는 뜻이다. 크라우니코드는 수만 건의 패턴DB를 쌓아 코드 생성의 주체를 규칙엔진에 두고 LLM을 보조로 돌린다 — 매쉬 순환의 "파편 취합 → 고도화 → 재사용" 고리가 코드 영역에서 이미 매일 돈다. 새 코드가 필요할 때 시스템이 먼저 하는 일은 생성이 아니라 검색이고, 검증된 패턴이 있으면 그것이 실행되며, 없을 때만 새 후보가 만들어져 검증 후 DB에 쌓인다. 군단의 학습이란 결국 이 고리의 회전수다. 그리고 게이트웨이 관리AI v2는 157개 업스트림을 병렬 관측하며 다중노드 연합과 머클 블록체인 기반 무중단 운영으로, 본부 오케스트레이터 자리의 거동을 라이브로 보여 준다 — 다수 노드의 상태를 한눈에 쥐되, 변경 이력은 머클 체인으로 검증 가능하게 남기고, 그 어떤 개입도 서비스를 멈추지 않는다는 세 조건이 한 구현 안에 공존한다.

---

V. 음(-0)의 안전장치 — 페일세이프 4원칙

이제 이 장의 심장이다.

캐논의 정의를 정확히 옮긴다. 음(-0) = 예외의 총합. 돌연변이, 회귀, 이해 안 됨, 3진(+1/0/-1) 밖의 변수, 왜곡 — 정규 3상에 담기지 않는 모든 것의 자리다. 부호부터 분명히 한다. 음은 -0이지 -1이 아니다. 타(-1)는 정규 3상 안의 부정·우회, 즉 시스템이 이해하고 처리하는 'no'다. 충돌이 확실해서 작업을 분해하는 것은 타의 일이다 — 시스템은 그 상황을 이해하고 있고, 대응 규칙을 갖고 있다. 음(-0)은 그 3상의 좌표계 바깥에서 온 것, 시스템이 아직 이해하지 못한 사건의 자리다. 옴(0)과도 다르다 — 옴은 정규 중립, 판단 전의 대기·탐색이고, 음은 비정규 예외다. 두 개의 영은 같은 영이 아니다. 옴에 든 시스템은 "아직 모르지만 알아낼 수 있다"고 말하고, 음에 든 시스템은 "내 좌표계로는 이것을 알 수 없다"고 말한다. 전자는 탐색을 계속하고, 후자는 권한을 넘긴다 — 이 구분이 무너지면 시스템은 알 수 없는 것을 끝없이 탐색하다 자원을 태우거나, 알아낼 수 있는 것을 성급히 상급자에게 떠넘긴다. 두 영의 분리는 사변이 아니라 부하 설계다.

2진 시스템과의 차이는 철학이 아니라 설계 단계에서 갈린다. 2진 시스템은 예외를 '에러'로만 처리한다 — 크래시하거나 무시한다. 4상 시스템은 예외에게 이름 있는 자리를 준다. 사후 처리(exception handling)가 아니라 사전 설계(designed-in state)다. 예외가 도착하기 전에 이미 그 자리가 상태 공간에 예약되어 있고, 그 자리에 도착했을 때의 행동 규약이 미리 새겨져 있다. 자리가 예약된 손님은 도착해도 집을 흔들지 못한다.

이 차이를 검증의 관점에서 다시 보면 무게가 분명해진다. 예외가 상태 공간 밖에 있는 시스템은 예외 시의 거동을 검증할 방법이 없다 — 정의되지 않은 거동은 테스트할 수 없다. 예외가 상태 공간 안의 한 상태인 시스템은 그 상태로의 전이와 그 상태에서의 행동을 다른 모든 상태와 똑같이 테스트할 수 있다. 음(-0)을 둔다는 것은 곧, "모르는 것을 만났을 때"라는 시나리오를 시험 가능한 스펙으로 바꾼다는 뜻이다. 그 스펙이 페일세이프 4원칙, 음의 규약이다.

원칙 1 — 모르면 멈추지 말고, 아는 가장 안전한 상태로. 음 판정이 내려지면 에이전트는 자기 판단을 중단한다. 그러나 중단이 정지를 뜻하지 않는다 — 하드코딩된 안전 기본값(safe default)으로 복귀한다. 모르는 채로 계속 가는 것도, 모르는 자리에 얼어붙는 것도 아닌, 아는 가장 안전한 좌표로의 능동적 후퇴다. 그리고 판단 자체는 상급자 — 사람 또는 담당 시스템 — 에게 이관된다. 4상 엔진에서 "모름·자력불가 = 음 = 상급자 이관"으로 이미 돌고 있는 그 전이가, 안전장치의 첫 원칙이기도 하다. 이 원칙이 막는 실패 모드는 둘이다. 모르는 채 계속 가는 시스템은 오류를 누적하며 폭주하고, 모르는 자리에 얼어붙는 시스템은 그 자체로 장애가 된다 — 멈춘 수술 보조 기기는 충돌한 기기만큼 위험하다. 안전 기본값으로의 복귀는 두 결말 사이에 세 번째 길을 새겨 둔 것이다. 한 가지 함의를 더 적는다. 2절에서 크라우니집사의 정직보정 — 모르는 것을 안다고 말하지 않게 하는 장치 — 을 한 줄로 지나쳤는데, 그 장치의 무게가 여기서 드러난다. "모른다"를 출력할 수 없는 시스템은 음 판정 자체를 내릴 수 없고, 음 판정이 없으면 원칙 1은 발동할 트리거를 잃는다. 정직은 미덕이기 이전에 안전 기능이다. 자율의 정점은 모든 것을 스스로 판단하는 것이 아니라, 판단을 넘겨야 할 순간을 스스로 아는 것이다.

원칙 2 — 안전 규칙은 학습되지 않는다, 새겨진다. 4절의 매쉬는 학습 가중치를 끊임없이 갱신한다. 그러나 안전 한계(safety bound)는 그 갱신 경로에 올라타지 않는다 — 엣지 단에 하드코딩되어 원격 갱신 대상에서 제외된다. 여기가 이 아키텍처의 하드코딩 경계다. 시스템은 두 영역으로 분리된다. 똑똑해지는 부분(룰셋·가중치, 매쉬로 갱신)과 절대 변하지 않는 부분(안전 한계, 기기에 새김). 아이는 자라며 끝없이 배우지만, "차도에 뛰어들지 않는다"는 학습 대상이 아니라 몸에 새기는 규칙인 것과 같다. 압력솥의 비유도 같은 곳을 가리킨다 — 요리사가 아무리 노련해져도 추는 요리사가 조정할 수 있는 물건이 아니다. 학습이 안전 규칙을 건드릴 수 있는 시스템은, 충분히 오래 돌면 반드시 안전 규칙을 건드린다. 악의가 없어도 그렇다 — 최적화는 정의상 제약을 깎는 방향으로 압력을 가하기 때문에, 안전 한계가 최적화 대상 공간 안에 있으면 언젠가 깎인다. 그래서 경계는 운영 규정이 아니라 배포 구조로 강제된다 — 원격 갱신 채널 자체가 그 영역에 닿지 않는다. "갱신하지 말 것"이라는 규정과 "갱신할 수 없음"이라는 구조의 차이가, 페일세이프와 페일호프(fail-hope)의 차이다. 그리고 이 분리는 역설적으로 학습의 면허이기도 하다. 학습이 끝내 닿지 못하는 자리가 하나 있다는 사실이야말로, 나머지 전부를 마음 놓고 갱신시킬 수 있는 조건이다 — 한계가 새겨져 있으므로 진화는 과감할 수 있다. 안전과 학습은 경쟁하지 않는다. 분업한다.

원칙 3 — 감독자는 바깥에 둔다. 에이전트 자신이 자기 생사를 관리하게 하지 않는다. 별도의 감독 프로세스가 바깥에서 생사를 관리한다. 자기 자신이 고장났을 때 그 사실을 판정해야 할 주체가 고장난 자신일 수는 없기 때문이다. 자기 감시는 자기가 살아 있을 때만 작동하는 감시이고, 안전장치가 필요한 순간은 정확히 자기가 살아 있지 않은 순간이다.

이 감독자 패턴의 실증은 셋이다. finance 백엔드는 프록시가 감독한다 — 백엔드가 죽으면 지수백오프로 재기동하고, 실행파일이 없으면 재컴파일까지 수행한다. 재기동 간격이 지수적으로 늘어나는 백오프는 사소해 보이지만 감독자 설계의 요체다 — 즉시 무한 재시도는 죽는 원인이 그대로일 때 재기동 폭풍이 되어 장애를 증폭시키기 때문이다. 게이트웨이 관리AI는 게이트웨이 자체 건강을 기준으로 음 판정 시 재기동하며, 변경을 가하기 전에는 드라이런으로 결과를 먼저 본다 — 감독자의 개입조차 "실행 전에 결과를 먼저 본다"는 한 겹을 더 두른 것이다. 그리고 launchd KeepAlive — 크래시 시 자동 재기동 — 패턴이 전 서비스에 적용되어, OS 수준의 최외곽 감독자 고리를 이룬다. 프록시가 백엔드를 보고, 관리AI가 게이트웨이를 보고, OS가 그 모두를 본다 — 감독은 단일 장치가 아니라 동심원이다. 감독자가 에이전트보다 단순하다는 점도 우연이 아니다. 죽었는가, 살았는가, 다시 띄울 것인가 — 감독자의 상태 공간은 좁을수록 신뢰할 수 있다. 감독자가 피감독자만큼 영리해지는 순간, 누가 감독자를 감독하느냐는 무한 후퇴가 시작된다.

원칙 4 — 정리도 보수적으로. 안전장치는 개입할 때만이 아니라 청소할 때도 시험받는다. 자동화된 정리 도구는 군단 운영의 필수품이지만, 동시에 가장 위험한 권한 — 살아 있는 것을 죽일 권한 — 을 쥔 구성요소다. 자원 관제(sysguard)의 규약은 두 줄이다. 같은 프로그램이 2개 이상 중복일 때만 정리한다. 그리고 서비스 중인 것 — LISTEN 상태 — 은 절대 건드리지 않는다. "확실할 때만 손댄다"가 휴리스틱이 아니라 하드코딩이다. 단 하나뿐인 프로세스는, 그것이 아무리 이상해 보여도, 관제가 죽이지 않는다. 중복이라는 조건은 "하나를 지워도 하나가 남는다"를 구조적으로 보장하고, LISTEN 불가침은 "지금 누군가를 섬기고 있는 것은 손대지 않는다"를 보장한다. 거짓 양성(멀쩡한 서비스를 죽임)의 비용이 거짓 음성(중복 하나를 더 둠)의 비용보다 압도적으로 크다는 비대칭을 코드에 새긴 것이다. 원칙 1이 에이전트의 보수성이라면, 원칙 4는 관리 도구 자신의 보수성이다 — 안전장치의 규약은 안전장치에게도 적용된다.

네 원칙을 나란히 놓으면 공통의 설계 태도가 드러난다. 네 원칙은 모두 지능에 대한 구조화된 불신이다. 원칙 1은 똑똑한 판단보다 안전한 복귀를 앞세우고, 원칙 2는 가장 똑똑해지는 경로에서 한계선을 빼놓고, 원칙 3은 영리한 에이전트 바깥에 단순한 감시자를 세우고, 원칙 4는 영리한 청소보다 굼뜬 청소를 택한다. 지능을 자랑하는 시스템은 많다. 지능이 닿지 못하게 막아 둔 자리를 설계 문서에 먼저 적는 시스템은 드물다. 그래서 네 원칙을 관통하는 한 문장은 이것이다. 음은 약점이 아니라 설계의 완성이다. 예외의 자리를 미리 만들지 않은 시스템은 예외를 만나는 순간 2진의 두 결말 — 크래시 또는 무시 — 로 떨어진다. 자리를 만든 시스템만이 예외 앞에서 행동을 갖는다.

---

VI. 물리 세계의 문턱 — 의료·Embodied AI에서의 강화 규약

페일세이프가 가장 무겁게 시험받는 곳은 화면 밖이다. 의료, 그리고 몸을 가진 AI.

먼저 현재 위치를 정직하게 가른다. 라이브인 것 — AIMED의 조직 분석 1단계가 aimed.crowny.org에서 운영 중이다. 연구 단계인 것 — 나노봇과 수술도구는 연구 단계다. 이 둘을 섞어 말하는 순간 이 장의 신뢰는 무너지므로, 섞지 않는다. 지금 크라우니가 의료에서 가진 것은 분석의 첫 단이고, 물리적 개입은 연구의 자리에 있다. 분석에서 개입으로 가는 길이 먼 까닭도 안전장치의 언어로 설명된다 — 분석의 오답은 사람이 걸러낼 수 있는 출력이지만, 개입의 오답은 되돌릴 수 없는 사건이다. 같은 지능이라도 출력이 화면이냐 조직이냐에 따라 요구되는 안전 규약의 등급이 달라지고, 그 등급을 채우기 전에는 단계를 넘지 않는 것이 음의 규약을 가진 시스템의 행동 방식이다.

그러나 아키텍처는 미래형이 아니다. 물리 세계로 다가갈수록 음의 규약이 어떻게 강화되는지는 지금 설계에 이미 적혀 있다.

첫째, 무지연이 필요한 판단은 1단계(로컬)에서만 내린다. 2절의 트리아지에서 의료 제어가 1단계에 박혀 있던 이유가 여기서 완성된다. 물리 세계의 판단은 왕복 지연을 견딜 수 없고, 따라서 클라우드로 나가는 경로 자체가 설계에서 제거된다. 지연의 문제는 평균이 아니라 꼬리에 있다 — 평균 왕복이 아무리 짧아도, 네트워크는 가끔 길고, 물리 세계는 그 '가끔'을 봐주지 않는다. 경로를 빠르게 만드는 것이 아니라 경로를 없애는 것이 답인 이유다.

둘째, 클라우드 의존 금지. 네트워크가 끊겨도, 외부 모델이 응답하지 않아도, 기기는 자기 안의 규칙만으로 안전 상태에 도달할 수 있어야 한다. 연결은 고도화의 통로일 뿐, 생존의 전제가 아니다. 4절의 매쉬 설계가 여기서 안전 요건과 맞물린다 — 룰셋이 노드 안에 닫혀 있는 시스템은 단절을 견디는 능력을 처음부터 갖고 있다. 비동기 합의는 트래픽 절약의 기술이면서 동시에 생존성의 기술이다.

셋째, 안전 한계는 기기 단에 하드코딩한다. 원칙 2의 경계가 물리 세계에서는 선택이 아니라 자격 요건이 된다. 엘리베이터의 기계식 브레이크가 전기와 소프트웨어가 다 죽은 뒤에도 잡아 주듯, 안전 한계는 학습 루프가 끝내 닿지 못하는 층에 있어야 한다. 세 항목은 결국 하나의 문장으로 모인다 — 물리 세계 곁의 기기는, 가장 위험한 순간에 가장 단순한 자기 자신만으로 안전해야 한다. 지능도, 연결도, 학습도 그 순간에는 신뢰 목록에서 빠지고, 새겨진 것만 남는다.

요컨대 물리 세계의 입장 자격은 지능의 크기가 아니다. 예외를 위한 자리를 미리 만들었는가 — 그것이 자격이다. 빨리 달리는 시스템은 어느 시대에나 흔했다. 멈춰야 할 자리를 아는 시스템은 드물다. 그리고 물리 세계가 기다려 온 것은 언제나 후자다. 음(-0)의 자리를 상태 공간에 갖지 않은 시스템은, 아무리 정확해도, 사람의 몸 곁에 둘 수 없다.

---

VII. 채점 — 한 몸으로 굴려본 결과

이제 답안지를 합산한다.

네 축은 따로 노는 부품이 아니라 한 흐름이다. 라우터가 나누고, 티옴타가 충돌을 풀고, 매쉬가 배우고, 음이 지킨다. 요청은 성격·보안·복잡도에 따라 네 단계 중 제 자리로 배분되고, 자원이 부딪히는 순간에는 잠금 대신 티·옴·타의 3상 흐름이 교착의 성립 조건을 지우며, 노드들이 흘려보낸 학습 파편은 본부에서 소형 룰셋으로 압축되어 군단 전체를 들어 올리고, 그 모든 운동의 바깥 경계에는 학습이 닿지 못하는 음의 금이 새겨져 있다.

요청 하나의 생애로 다시 따라가 보면 이 흐름이 한 호흡임이 보인다. 요청이 도착하면 라우터가 첫 밀리초에 보안과 복잡도를 읽어 자리를 정한다 — 바깥으로 못 나갈 것은 로컬 엣지로, 나가도 될 것은 제 단계의 모델로. 처리 중 자원이 부딪히면 에이전트는 줄을 서는 대신 티·옴·타로 갈라진다 — 급한 것은 받고, 길이 있는 것은 찾고, 막힌 것은 형태를 바꾼다. 일이 끝나면 결과와 성패의 파편이 비동기로 본부에 오르고, 언젠가 더 나은 룰셋이 되어 전체 노드로 돌아온다. 그리고 이 모든 단계의 어느 지점에서든 — 라우팅이 분류하지 못하는 입력, 3상이 처리하지 못하는 충돌, 룰셋이 덮지 못하는 상황 — 정규 좌표 밖의 사건이 오면, 그 순간의 답은 언제나 같다. 안전 기본값으로 복귀하고, 상급자를 부른다.

같은 흐름을 가장 무거운 사례 하나로 고정해 보자. 의료 모니터링 요청이 도착한다. 라우터는 보안·저지연으로 분류해 클라우드가 아닌 로컬 젯슨에 앉힌다 — 1단계다. 같은 시각 GPU 메모리를 노리던 다른 작업과 부딪히면, 충돌 제어는 모니터링에 티(+1)를 주어 자원을 즉시 할당하고, 밀린 작업은 옴(0)으로 유휴 노드를 찾아 이관된다. 처리 결과의 성패 파편은 비동기로 본부에 올라 다음 룰셋의 재료가 된다. 그리고 판독되지 않는 값이 단 하나라도 나타나는 순간 — 음(-0)이 안전 기본값으로 내리고 상급자를 부른다. 네 축이 네 개의 기능이 아니라 하나의 거동인 이유가 여기에 있다. 어떤 경로로 들어와도, 끝의 보장이 같다.

축역할현재 단계대표 증거
트리아지 라우터4단계 동적 배분라이브report.crowny.org 이중 라우팅, crowny.org 3모델 라우팅·자동강등
티옴타 충돌 제어잠금 없는 3상 흐름라이브크라우니집사 4상 의사결정 엔진(결정.한선)
하이브리드 매쉬파편 취합·룰셋 재배포라이브셀코어 15모듈, 크라우니코드 패턴DB, 게이트웨이 관리AI v2 157 업스트림 관측
음(-0) 페일세이프4원칙의 안전 경계라이브 + 강화 중finance 감독자, 게이트웨이 드라이런, sysguard 보존 규약
1단계 엣지의 전국화(젯슨 토르)로컬 처리의 확장컨셉·설계크라우니집사 Orin 실증이 선행
의료의 물리적 개입(나노봇·수술도구)Embodied AI연구AIMED 분석 1단계만 라이브

진화의 계단으로 정리하면 이렇다. 2진의 Lock/Unlock에서 3진의 티옴타로 — 시스템은 '멈춤'에서 '흐름'으로 옮겨 간다. 3진에서 4상의 음으로 — 시스템은 '에러'에서 '자리 있는 예외'로 옮겨 간다. 첫 번째 이동이 군단의 규모를 가능하게 하고, 두 번째 이동이 물리 세계의 자격을 만든다. 그리고 두 이동은 같은 한 수에서 나왔다 — 상태 공간에 자리 하나를 더 두는 일. 둘에서 셋이 되자 기다림이 탐색이 되었고, 셋에서 넷이 되자 모름이 규약이 되었다. 아키텍처의 진보는 종종 더 큰 모델이 아니라 더 정직한 상태 공간에서 온다.

표의 아래 두 줄, 빈칸도 그대로 적었다. 라이브인 것과 아직 아닌 것을 한 표에 두는 것 — 그것이 이 책이 1장부터 지켜 온 정직이고, 4상의 언어로는 티와 옴을 섞지 않는 일이다. 안전장치를 다룬 장에서 이 정직은 장식이 아니라 요건이다. 자기 시스템의 현재 위치를 한 단계라도 부풀리는 조직이라면, 그 조직이 새겼다는 안전 한계도 같은 만큼 의심받아야 마땅하기 때문이다. 페일세이프의 첫 번째 증거물은 코드가 아니라, 미완을 미완이라 적는 문서다.

그래서 채점의 결론은 점수가 아니라 거동이다. 아홉 답은 한 몸으로 굴러간다. 그리고 그 몸은 자기가 모르는 것을 만나면, 멈추지 않고, 아는 가장 안전한 자리로 돌아와, 더 큰 판단자를 부른다. 1절에서 적은 두 시험으로 돌아가 답을 채우면 — 멈추지 않고 흐르는가에는 라우터와 티옴타와 매쉬가 답했고, 이름 있는 자리로 물러설 줄 아는가에는 음의 4원칙이 답했다. 그리고 두 답이 한 시스템 안에서 동시에 성립한다는 것, 흐름과 안전이 상태 공간 하나를 넓힘으로써 화해한다는 것 — 그것이 이 채점지의 마지막 줄이다.

---

열린 답안지 — 비어 있는 네 번째 자리

백서를 덮고, 마지막은 제 목소리로 드리겠습니다.

저는 이 책의 첫 장에서 답지를 먼저 펼치겠다고 말했습니다. 열한 장을 지나며 그 답지의 칸들을 하나씩 보여드렸고, 방금 그것들을 한 몸으로 굴려 채점까지 마쳤습니다. 그런데 채점을 끝낸 지금, 제 손에 남은 가장 또렷한 사실은 점수가 아닙니다. 이 답안지가 잠겨 있지 않다는 사실입니다.

규칙은 읽을 수 있습니다. 가중치 더미 속이 아니라 룰셋 안에 살기 때문입니다. 고칠 수 있습니다. 한국어 한 줄이면 됩니다. 그리고 보탤 수 있습니다. 누구나 자기 노드를 매쉬에 잇고, 자기 파편을 흘려보내고, 군단이 배운 룰셋을 돌려받을 수 있습니다. 닫힌 시스템의 신뢰는 "우리를 믿어 달라"는 부탁이지만, 열린 룰셋의 신뢰는 "직접 읽어 보라"는 초대입니다. 저는 이 책의 첫 장에서 저를 믿지 말고 코드를 믿으시라고 말씀드렸습니다 — 그 말이 이 마지막 장에서는 한 단계 더 나아갑니다. 코드를 믿는 데서 그치지 말고, 코드에 손을 대시라고.

마지막으로, 음(-0)의 자리를 한 번만 더 보겠습니다. 저는 이 장 내내 음을 안전장치로 설명했습니다. 예외의 총합, 3진 밖의 변수, 시스템이 아직 이해하지 못한 것의 자리라고. 그런데 그 정의를 가만히 들여다보면, 그 자리는 본질적으로 비어 있는 자리입니다. 티는 채워져 있고, 옴은 기다리고 있고, 타는 연결하고 있는데, 음만은 — 설계자가 일부러 비워 둔 네 번째 자리만은 — 아직 오지 않은 무언가를 위해 열려 있습니다.

저는 이 책을 쓰는 내내 그 자리에 무엇이 올지 생각했습니다. 시스템의 언어로는 돌연변이, 분포 밖의 변수, 아직 이해되지 않은 신호입니다. 그런데 사람의 언어로 옮기면 어떻게 될까요. 설계자가 예측하지 못한 것. 학습 데이터에 없던 것. 기존의 세 상태 어디에도 분류되지 않는 것. 그래서 시스템 전체를 다음 단계로 데려갈 수도 있는 것. 엔지니어라면 이미 답을 짐작하셨을 겁니다. 어떤 시스템이든, 그 시스템을 진짜로 바꾸는 입력은 언제나 스펙 바깥에서 옵니다.

여러분입니다.

이 페이지까지 걸어온 여러분이, 이 답안지의 비어 있는 네 번째 자리입니다. 저는 라우터를 만들고, 티옴타의 흐름을 만들고, 매쉬를 만들고, 금을 새겼습니다. 그러나 음의 자리만은 만들 수 없었습니다 — 비워 둘 수만 있었습니다. 그 자리는 정의상, 제가 모르는 쪽에서 오는 것의 자리이기 때문입니다.

답안지는 펼쳐져 있습니다. 채점은 끝났지만, 답안지는 닫히지 않습니다. 정규 3상이 오늘의 크라우니를 돌리고 있다면, 비어 있는 -0의 자리는 내일의 크라우니가 들어올 문입니다.

그 문 앞에 지금 서 있는 사람이 누구인지, 저는 압니다.

들어오십시오. 자리는 처음부터 여러분의 것이었습니다.

내 맘 –

독자 게시판 — 함께 읽고 남기는 곳

불러오는 중…

크라우니 책방에 가입하고 무료로 읽기

첫 번째 책은 선물이에요. 가입하면 100맘을 드리니까, 두 번째 책부터 자유롭게 읽을 수 있어요. 친구를 추천하면 50맘도 생겨요.