
인류 최초의 약속
10만 년 전, 누군가가 손가락으로 무언가를 가리키며 소리를 냈다. 그 소리를 들은 다른 누군가가 같은 것을 떠올렸다.
이것이 언어의 시작이다.
“저것"을 “사자"라고 부르기로 한 약속. 이 약속이 없으면 두 사람은 같은 세계에 살면서 다른 세계를 본다. 약속이 있으면 한 사람의 경험이 다른 사람에게 전달된다.
언어는 인류 최초의 계약이다.
글자는 시간을 넘는 계약이다
5천 년 전, 메소포타미아의 누군가가 젖은 점토판에 쐐기 모양을 눌렀다. 곡물 재고를 기록하기 위해서였다.
말은 사라지지만 기록은 남는다. 기록이 남으면 관료제가 가능하고, 법이 가능하고, 국가가 가능하다.
글자는 현재의 약속을 미래로 전달하는 장치다. 오늘 만든 계약이 내일에도 유효하려면 글자가 필요하다.
말이 부족을 만들었다. 글자가 국가를 만들었다.
법치주의: 피로 쓴 약속
인간 사회는 밀도의 문제다.
150명의 부족에서는 서로의 얼굴을 안다. 약속을 어기면 모두가 안다. 사회적 압력만으로 질서가 유지된다.
1만 명의 도시에서는 얼굴을 모른다. 약속을 어겨도 아무도 모른다. 사회적 압력이 작동하지 않는다.
그래서 법이 필요했다.
법은 약속을 문서화한 것이다. “이것을 하면 이런 결과가 따른다.” 모든 사람이 같은 규칙 아래 있다. 규칙은 기계적으로 검증 가능하다. 위반은 정의되어 있다. 위반에는 결과가 따른다.
이 시스템이 작동하기까지 수천 년이 걸렸다. 혁명, 전쟁, 학살, 타협. 인류는 피로 이 약속을 썼다.
그 결과 80억 인간이 한 행성 위에서 공존한다. 완벽하지 않다. 하지만 작동한다. 법치주의가 없었다면 이 밀도는 불가능했다.
법치주의의 세 가지 조건
법치주의가 작동하는 이유는 법이 똑똑해서가 아니다. 세 가지 조건을 만족하기 때문이다.
1. 검증 가능하다. 법을 어겼는지 아닌지를 판정할 수 있다. 판사의 직관이 아니라, 조문과 증거로 판정한다. 판정 절차가 정의되어 있다.
2. 위반이 정의되어 있다. 무엇이 허용되고 무엇이 금지되는지 명시적이다. “나쁜 행동을 하지 마라"가 아니라 “제50조 제1항에 해당하는 행위를 하지 마라"다. 이산적이다. 위반이거나 아니거나.
3. 강제할 수 있다. 위반에 결과가 따른다. 결과가 없는 약속은 약속이 아니라 희망이다.
이 세 조건은 놀라울 정도로 보편적이다.
같은 패턴, 다른 도메인
| 도메인 | 약속 | 검증 | 위반 정의 | 강제 |
|---|---|---|---|---|
| 인간 사회 | 법률 | 재판 | 조문 | 형벌/배상 |
| 프로그래밍 | 타입 시스템 | 컴파일러 | 타입 에러 | 컴파일 거부 |
| 코드 포맷 | gofmt | gofmt -d | 포맷 불일치 | CI 실패 |
| 코드 구조 | filefunc | validate | 22개 룰 위반 | ERROR |
| 지식 표현 | GEUL 스펙 | mechanical verification | 스펙 불일치 | context 진입 거부 |
모든 작동하는 시스템에는 약속이 있다. 약속은 검증 가능하고, 위반이 정의되어 있고, 강제할 수 있다.
이것이 없는 시스템은 — 혼돈이다.
LLM에게 약속이 없다
2026년 현재, AI 코드 에이전트에게 “코드를 개선하라"고 지시하면 에이전트는 무언가를 바꾼다.
하지만:
- 언제 끝인가? 모른다.
- 결과가 충분한가? 판정 기준이 없다.
- 다시 실행하면 같은 결과인가? 아니다.
이것은 법 없는 사회와 같다. 각자의 판단으로 행동하고, 결과의 기준이 없고, 매번 다르다.
“코드 품질"은 스펙트럼이다. 스펙트럼에는 종료 조건이 없다. 종료 조건이 없으면 수렴이 보장되지 않는다.
이것은 인치주의다. 현명한 왕(똑똑한 모델)에 의존하는 것이다. 왕이 현명하면 잘 되고, 그렇지 않으면 안 된다.
제약이 수렴한다
filefunc은 22개의 약속을 정의했다.
1파일 1함수. 깊이 2 이하. 어노테이션 필수. control은 sequence, selection, iteration 중 하나.
이 약속은:
- 검증 가능하다.
filefunc validate가 기계적으로 판정한다. LLM 불필요. - 위반이 정의되어 있다. ERROR 또는 통과. 스펙트럼이 아니다.
- 강제할 수 있다. ERROR가 0이 될 때까지 코드를 수정해야 한다.
이 세 조건을 만족하면, LLM은 while ERROR > 0: fix 루프만으로
임의의 코드베이스를 약속이 지켜지는 상태로 수렴시킬 수 있다.
LLM의 역할은 판단자가 아니다. 실행자다. 무엇이 위반인지는 약속(validate)이 말하고, 위반이 해소되었는지도 약속(validate)이 말한다. LLM은 약속이 지적한 위반을 고치는 일만 한다.
왕이 아니라 법이 지배한다. 이것이 법치주의다.
혼돈과 질서의 황금비
약속이 없으면 혼돈이다. 코드에 구조가 없고, 함수가 뒤섞이고, 깊이가 제한 없이 깊어진다. AI 에이전트는 매번 전체를 읽고, 매번 다른 결과를 낸다.
약속이 과하면 억압이다. 모든 것을 규정하면 유연성이 사라진다. 3줄짜리 함수에 10줄짜리 어노테이션을 강제하면 본말이 전도된다.
filefunc의 22개 룰은 그 사이를 찾았다. 충분히 제약하되 과도하지 않은 지점.
그 증거: 1,275개 함수가 세 가지 제어구조로 수렴한다. 순차, 선택, 반복. Böhm-Jacopini가 1966년에 증명한 세 가지. 22개 약속이 수학적 분류로 수렴한다는 것은 약속이 과하지도 부족하지도 않다는 증거다.
혼돈도 아니고 억압도 아닌 상태. 충분한 자유 안의 충분한 질서. 이것이 황금비다.
세 번째 언어
말이 부족을 만들었다. 인간과 인간 사이의 약속. 글자가 국가를 만들었다. 현재와 미래 사이의 약속.
세 번째 언어는 무엇을 만들 것인가.
GEUL은 인공지능과 인공지능 사이의 약속이다. 그리고 인공지능과 인간 사이의 검증 가능한 약속이다.
SIDX는 의미의 약속이다. 같은 비트 패턴은 같은 의미를 가진다. 16비트 스트림은 형식의 약속이다. 네트워크, 저장소, AI가 같은 단위를 공유한다. source, confidence, time은 신뢰의 약속이다. 메타데이터가 구조에 내장되어 생략이 불가능하다. mechanical verification은 약속의 이행 검증이다. 스펙을 위반한 정보는 컨텍스트에 들어갈 수 없다.
자연어에는 “무효인 문장"이라는 개념이 없다. GEUL에는 있다. 무효가 정의되어 있다는 것이 약속이 존재한다는 증거다.
코드에서 먼저 증명한다
같은 원리가 코드와 지식 양쪽에 적용된다.
하지만 코드가 먼저다.
코드에는 컴파일러가 있다. AST가 있다. 타입 시스템이 있다. “유효한 코드"와 “무효한 코드"의 경계가 이미 존재한다. 이 위에 22개 약속을 추가하는 것은 자연스럽다.
자연어 지식에는 이 기반이 없다. “유효한 문장"이라는 개념 자체가 없다. GEUL은 이 기반을 처음부터 만들어야 한다.
쉬운 곳에서 먼저 증명하고, 어려운 곳으로 확장한다. filefunc이 코드에서 증명하고, GEUL이 지식으로 확장한다.
이것이 공학이다.
인류에게 상기시키는 것
문제는 심플하다.
우리는 이미 법치주의를 발명했다. 피로 쓴 약속이다. 그 약속 덕분에 80억 인간이 이 엄청난 밀도에도 불구하고 공존한다.
LLM도 다르지 않다.
합리적 제약은 약속이다. 약속이 있어야 혼돈과 질서가 황금비를 이룬다. 약속이 검증 가능하고, 위반이 정의되어 있고, 강제할 수 있으면 어떤 시스템이든 수렴한다.
인간 사회가 그랬듯이. 코드가 그랬듯이. 지식이 그럴 것이듯이.
새로운 발명이 필요한 게 아니다. 이미 발명한 것을 새로운 도메인에 적용하는 것이다.
약속을 설계하라. 그러면 수렴한다.