배들이 같은 바다를 건너면서도 서로 다른 해도를 들고 있던 시절이 있었다. 발목을 잡은 건 경도였다. 위도는 해와 별의 높이로 비교적 쉽게 구했지만, 동서로 얼마나 왔는지를 재려면 먼저 정해야 할 게 있었다. “어디를 0도로 둘 것인가.” 그런데 그 기준이 나라마다 제각각이었다. 영국 배는 런던을, 프랑스 배는 파리를, 어떤 배는 자기가 떠나온 항구를 0도로 삼았다. 그래서 같은 섬이 해도마다 다른 자리에 찍혔다. 누구의 지도도 틀리지 않았는데, 어느 지도도 서로 들어맞지 않았다.

1884년이 되어서야 세계는 영국 그리니치 천문대를 지나는 선 하나를 본초자오선으로 합의했다. 그제서야 모든 해도가 같은 언어로 말하기 시작했다. 흩어져 어긋나던 수많은 기준을, 모두가 똑같이 참조하는 단 하나의 기준으로 모은 사건이었다.

소프트웨어를 다루는 사람들은 이 문제를 매일 만난다. 같은 사실이 여러 군데 적혀 있으면, 시간이 지나면서 슬그머니 서로 달라진다. 그래서 “이 정보의 진짜 기준은 여기 하나”라고 분명히 정해 두는 설계 원칙이 있다. 단일 진실(single source of truth), 줄여서 SSOT라고 부른다. 있으면 좋은 기본기쯤으로 여겨지던 원칙이었는데, AI 에이전트가 일의 주역이 되면서 갑자기 일의 성패를 가르는 문제로 바뀌었다.

하나의 진실이라는 오래된 꿈

단일 진실은 거창한 기술이 아니라 하나의 상태를 가리킨다. 어떤 사실이든 그것을 진짜로 믿을 수 있는 출처가 딱 하나여야 한다는 것. 나머지는 전부 거기서 베껴 오거나 자동으로 만들어지게 한다.

은행 통장을 떠올리면 쉽다. 통장은 “현재 잔액 100만 원”이라는 결과만 저장하지 않는다. “입금 50만, 출금 20만, 입금 70만” 하는 거래 내역을 시간순으로 쌓아 둔다. 잔액은 그 내역을 더해서 계산해 낸 값일 뿐이다. 그래서 진짜 진실은 거래 내역에 있고, 화면에 뜬 잔액은 거기서 파생된 그림자다. 화면이 깨져도 내역만 멀쩡하면 잔액은 언제든 다시 복원된다.

이 구도가 깨지는 건 같은 사실을 여러 곳에 손으로 복사하는 순간이다. 한 곳을 고치고 다른 곳을 깜빡하면, 둘은 조용히 어긋나기 시작한다. 누구도 거짓말을 하지 않았는데 시스템 전체가 무엇이 참인지 말해 주지 못하는 상태, 곧 대항해시대의 해도 같은 상태가 된다.

흩어진 복사본 A = 1 A = 2 A = 3 A = ? 어느 값이 맞는가? 원본 하나에서 파생 원본 A = 1 A = 1 A = 1 A = 1 원본만 고치면 모두 일치
복사본이 흩어지면 값이 서로 어긋나 무엇이 맞는지 모른다. 원본 하나만 두고 나머지를 거기서 파생하면 언제나 일치한다.

그래서 잘 만든 시스템은 진실을 두 종류로 나눠 다룬다. 데이터가 처음 태어나고 주인이 사는 곳을 원본(system of record)이라 부른다. 고객 정보는 고객관리 시스템에서, 회계는 회계 시스템에서 태어나는 식이다. 그리고 그 원본을 정확히 베껴 와 빠르게 보여 주는 사본(system of reference)이 따로 있다. 원본은 하나, 사본은 여럿. 사본이 늘어나도 진실은 원본 하나뿐이라는 약속이 지켜지는 한, 무엇을 믿어야 할지가 흔들리지 않는다.

사람은 멈춰 묻고, 에이전트는 믿고 실행한다

이 오래된 원칙이 왜 지금 다시 절박해졌을까. 일이 점점 사람에서 에이전트에게 넘어가고 있기 때문이다. 여기서 에이전트란 사람을 대신해 여러 단계를 스스로 밟는 AI를 말한다. 그리고 에이전트는 사람과 전혀 다른 방식으로 사실을 받아들인다. 바로 그 차이가 단일 진실을 절박하게 만든다.

사람은 애매하면 멈춘다. 문서에 적힌 숫자가 어제 들은 것과 다르면 “어, 이거 이상한데” 하고 한 번 더 확인한다. 정보가 어긋나 있어도 사람의 상식이라는 그물이 큰 사고를 걸러 낸다. 그런데 에이전트는 다르다. 문서를 찾아 읽고, 그 내용을 근거로 판단하고, 곧장 다음 행동으로 옮긴다. 주어진 정보를 사실로 믿고 바로 실행한다는 뜻이다.

그래서 진실이 흔들리면 그 흔들림이 고스란히 잘못된 행동으로 직결된다. 비유하자면 에이전트는 시키는 대로 정확히 해내는 신입사원이다. 일을 빠르고 꼼꼼히 처리하지만, 잘못된 매뉴얼을 쥐여 주면 잘못된 일을 완벽하게 해낸다. 사람이라면 중간에 갸웃했을 지점을, 에이전트는 의심 없이 통과해 배포하고 주문하고 삭제한다.

여기에 사정을 더 까다롭게 만드는 성질이 하나 있다. 같은 질문에도 에이전트의 답이 매번 조금씩 달라질 수 있다는 것이다. 이걸 비결정성(non-determinism)이라 부른다. 행동이 이렇게 흔들리는 상황에서 정보까지 흔들리면, 무엇이 잘못됐는지 되짚는 일조차 불가능해진다. 그래서 적어도 정보만큼은 단단한 바닥에 고정해 두어야 한다.

뒤집어 보면, 바로 그래서 단단한 단일 진실은 에이전트에게 든든한 버팀목이 된다. 시키는 대로 정확히 해내는 신입도 흔들리지 않는 매뉴얼 한 부만 손에 쥐면 누구보다 빠르고 일관되게 일하는 것과 같다. 그 매뉴얼은 에이전트에게 세 가지를 해 준다. 먼저 신뢰다. 출처가 하나면 에이전트는 여기를 믿으면 된다고 여기고 망설임 없이 움직인다. 다음은 근거다. 아무 근거 없이 채우면 환각이 되지만, 주어진 출처에 딛고 답하면 믿을 만해진다. 흔히 근거 대기(grounding)라 부르는 것이다. 끝으로 단순함이다. 정보가 흩어져 있으면 다 뒤지고 충돌까지 풀어야 하는데, 에이전트는 그 충돌을 사람처럼 상식으로 메우지 못한다.

답은 1991년에 이미 있었다

흥미로운 건 이게 새 문제가 아니라는 점이다. “여러 자율적 행위자가 같은 사실을 공유하며 일할 때 어떻게 모순 없이 진실을 유지할 것인가”라는 질문은, 사실 인공지능 연구가 30년 넘게 붙들어 온 오래된 주제다.

1991년, 인공지능 연구자 마이클 헌스와 데이비드 브리지랜드는 여러 에이전트가 같은 사실을 나눠 믿을 때의 일관성을 다룬 연구를 내놓았다. 핵심은 두 가지 일관성을 동시에 지키는 것이었다. 에이전트 각자가 자기 안에서 앞뒤가 맞아야 하고(로컬 일관성), 모두가 공유하는 사실도 서로 어긋나지 않아야 한다(글로벌 일관성). 이름부터가 진실 유지(truth maintenance)다. 지금 우리가 단일 진실이라 부르는 것의 멀티에이전트 판 원형인 셈이다.

그 뿌리는 더 깊다. 1985년 세 논리학자가 정립한 신념 수정(belief revision) 이론은, 새 정보가 들어와도 기존에 믿던 것을 최소한으로만 포기해 지식 전체를 모순 없는 하나의 상태로 지키는 규칙을 세웠다.

여러 AI 에이전트를 협업시킬 때 요즘 다시 끌어다 쓰는 방식도 이 계보 위에 있다. 에이전트들이 서로 귓속말을 주고받게 두는 대신, 하나의 공유 게시판에만 적고 그 게시판만 보게 하는 구조다. 칠판(blackboard) 구조라고 부르는데, 사실 1970년대 고전 인공지능에서 나온 오래된 설계다. 각자 머릿속에 다른 사실을 품고 엇나가는 일을, 모두가 같은 한 곳을 바라보게 만들어 원천에서 차단한다. 그리니치 자오선을 정한 것과 정확히 같은 발상이다.

그러니 단일 진실은 에이전트 시대가 새로 발명한 유행어가 아니다. 오래전에 던져진 물음이, 이제 실험실 밖 현실의 일감으로 내려온 것에 가깝다.

그래서 Git이 기준이 되었다

추상적인 원칙은 결국 도구로 구현되어야 한다. 그리고 지금 그 자리에 가장 잘 들어맞은 도구가 Git이다. 원래 프로그래머가 코드를 관리하려고 만든 것인데, 마침 그 성질이 에이전트가 원하는 진실의 조건과 맞아떨어졌다.

Git의 세 가지 성질이 그대로 진실의 요건이 된다. 첫째, 한번 기록한 변경은 누가 언제 무엇을 왜 바꿨는지 영원히 남는다(불변성). 둘째, 바꾸려면 누군가의 검토와 승인을 거쳐야 한다(검증). 셋째, 특정 시점의 상태를 번호표 하나로 정확히 다시 가리킬 수 있다(고정). 에이전트가 “이 버전을 믿고 일했다”고 말하려면 정확히 이 세 가지가 필요하다.

비유하자면 Git은 통장을 닮았다. 커밋 기록이 거래 내역이고, 지금 파일들의 상태가 잔액이다. 진짜 진실은 변경 이력에 있고 현재 모습은 거기서 파생된다는 그 구조가, 단일 진실의 이상과 정확히 포개진다. Git은 원래부터 진실의 기준이 되기 좋은 도구였고, 에이전트의 시대가 비로소 그 쓸모를 끌어냈다.

그런데 단일 진실은 신화다

여기까지 오면 “그럼 모든 걸 하나로 모으면 되겠네”라는 결론이 자연스러워 보인다. 그런데 바로 이 지점에서 진지한 반론이 등장한다. 절대적인 단일 진실은 사실 신화에 가깝다는 것이다.

데이터 메시(data mesh)라는 설계 사조를 만든 자막 데가니는 도발적으로 말한다. 여러 개의 진실 원천은 버그가 아니라 기능이라고. 중앙으로 모든 걸 끌어모으는 건 통제의 환상만 줄 뿐, 풍선의 한쪽을 누르면 공기가 다른 쪽으로 부풀 뿐이라는 것이다. 부서마다 같은 데이터를 정당하게 다르게 본다. “매출”이라는 한 단어조차 재무팀, 마케팅팀, 영업팀이 환불 전이냐 후냐, 세금을 넣느냐 빼느냐에 따라 제각각 센다. 누가 틀린 게 아니라 목적이 다른 것이다. 이걸 하나의 정의로 억지로 통일하면, 대부분의 사람에게 그 숫자는 자기 일과 맞지 않아 무용해지고, 결국 다들 자기만의 엑셀을 따로 만들어 우회한다.

그래서 통찰 하나가 나온다. 데이터를 한곳에 모으는 일은 오히려 쉬운 축에 든다. 진짜 어려운 건 그 데이터가 무엇을 뜻하는지 모두가 합의하는 일이다. 진실은 데이터가 아니라 정의에 산다. 단일한 저장소는 단일한 진실의 필요조건일 뿐 충분조건이 못 된다.

실패의 진짜 원인도 대개 기술이 아니라 정치다. “이건 나만 안다”, “내 부서 숫자가 회사의 공식 숫자다”라는 자리싸움. 단일 진실 프로젝트가 깨지는 건 데이터를 못 모아서가 아니라, 통제권을 내놓으라는 요구에 사람들이 저항하기 때문인 경우가 많다.

도구들이 갈라지는 자리

그러니 현실의 해법은 “전부 하나로”가 아니라 더 미묘한 쪽으로 간다. 원본은 깔끔하게 하나로 두되, 맥락에 따라 다른 표현과 합의를 잘 관리하는 방향이다. 요즘 쏟아지는 도구들이 갈라지는 자리도 여기다.

한쪽에는 Git이 약한 부분을 위에 한 겹 얹는 도구들이 있다. Git은 사람에게 불친절하니 노션처럼 예쁜 편집기를 입히고, 표 데이터를 못 다루니 데이터 전용 버전 관리 도구를 두고, 에이전트가 의미와 관계를 빠르게 못 읽으니 지식을 그래프로 엮어 먹여 주는 식이다. 다른 한쪽에는 Git이 잘하는 것(불변성, 검증, 추적)을 코드 바깥의 데이터와 문서와 AI 자산으로 베껴 가는 흐름이 있다. 어느 쪽이든 출발점은 같다. 에이전트가 믿고 행동할 단단한 바닥을 어떻게 만들 것인가.

흥미로운 역설도 보인다. 에이전트가 단일 진실을 더 절실히 요구하는 동시에, 그것을 유지하는 비용을 스스로 낮춰 주기도 한다. 예전엔 사람이 직접 문서를 동기화해야 했던 일을, 이제는 에이전트가 원본에서 파생본을 자동으로 만들어 맞춰 준다. 손이 많이 가서 늘 썩어 가던 단일 진실이, 비로소 살아 있는 채로 유지될 길이 열리는 셈이다.

흔들리지 않는 기준, 다시

대항해시대의 배들은 저마다 옳은 해도를 들고도 서로 어긋났다. 문제는 정확성이 아니라 기준이었다. 흩어진 여러 진실을 하나의 자오선으로 모으고 나서야, 비로소 모두가 같은 바다를 항해할 수 있었다.

에이전트의 시대는 그 오래된 숙제를 다시 책상 위에 올려놓는다. 다만 답이 “무조건 하나로 모으라”는 단순한 명령은 아니다. 1991년의 연구가 이미 알려 주었듯, 핵심은 단일성 그 자체가 아니라 공유하는 진실을 모순 없이 유지하는 일이다. 믿을 수 있는 원본 하나를 두고, 맥락에 따라 파생을 허용하되, 그것들이 어긋나지 않는지 끊임없이 살피는 것. 절대적인 하나의 진실이라는 환상보다, 어긋남을 관리하는 능력이 진짜 목표인 셈이다.

그렇다면 남는 물음은 이것이다. 이 흔들리지 않는 기준을 만들고 유지하는 일에는 누가, 얼마나 큰 값을 치르는가. 그 값에 대한 이야기는 다음 글에서 이어진다.