한선씨라는 이름의 컴퓨터 언어가 있어요. "한국어로 컴퓨터를 짓는다"는 게 뭘까요?
지금까지 모든 컴퓨터는 영어로만 말해요. if(만약), while(동안), print(보여줘). 영어 단어들이 기계어로 변환되어서 컴퓨터가 이해합니다.
그런데 한선씨는 다릅니다. 만약, 동안, 보여줘 — 이렇게 한글로 직접 쓰면 기계가 알아듣습니다. 영어로 먼저 생각하고 그걸 한글로 옮기는 게 아니라, 한글로 생각한 게 그대로 컴퓨터 명령이 되는 거예요.
생각해 보세요. 우리 아이들이 학교에서 영어 선생님을 거쳐야만 수학을 배우고, 한국 엄마가 아이 숙제를 봐줄 수 없다면? 한선씨는 그렇지 않아요. 한국 어린이들도 자신의 모국어로 컴퓨터와 직접 대화할 수 있게 됩니다. 외국 말의 번역자가 아니라 컴퓨터의 진짜 주인이 되는 거죠.
---
컴퓨터는 보통 예/아니오 두 가지만 씁니다. 참(예) 아니면 거짓(아니오). 이걸 2진이라고 해요.
한선씨는 3진입니다. 참, 거짓에 더해서 세 번째 답이 있어요: 모르면.
생각해 보세요. 엄마가 "우리 집에 우유 있어?"라고 물을 때, 우리가 이렇게 답할 수 있잖아요:
인간은 세 가지 답으로 살아가요. 한선씨의 모르면 키워드는 이 사람다운 생각을 컴퓨터 안에서도 그대로 인정한다는 뜻입니다.
---
한선씨의 기본 단위를 큐브라고 부르는데, 이건 레고 블록처럼 작은 정육면체 모양입니다. 이 블록 하나가 27개 작은 알갱이(트릿)로 이루어져 있어요.
이 블록은 네 가지 일을 합니다:
이게 좀 어려우면 이렇게 생각해 보세요. 여행을 갈 때, 우리는 짐(데이터)·지도(명령)·길(연결)을 챙기죠. 그런데 여행 중에 안개 속에서 어디로 가야 할지 모르는 순간이 있어요. 그 "모르는 상태"도 여행의 한 부분이에요. 음(U)은 그 안개처럼, 아직 정해지지 않은 경계이자 가능성의 영역입니다. 마치 블록으로 집을 지을 때 벽(데이터)·문(명령)·계단(연결)·울타리(경계)를 모두 같은 블록으로 만드는 것처럼, 한선씨는 네 가지 일이 한 체계 안에서 균형을 이루고 있어요.
---
멋진 이야기만 해서는 안 되니까, 진짜 지금 작동하는지 봅시다.
한선씨 컴퓨터는 지금 이미:
표준라이브러리)이 있어요말이 아니라 진짜 작동하는 프로그램이 이미 세상에서 쓰이고 있다는 거죠.
---
그렇지만 한선씨도 우리 같아서 배우고 있는 중이에요. 진짜 좋은 건축가는 못 하는 것도 솔직하게 말하는 사람입니다:
이런 벽들을 알고 있다는 게 강점이에요. 다음 단계가 정확하게 보인다는 거거든요. 이게 정직함입니다.
---
지금 한선씨는:
이미 대부분의 일을 한국어로 독립적으로 할 수 있다는 뜻입니다.
앞으로는 소수를 완전히 자유롭게 쓰고, 아직 못 하는 것들을 하나씩 고쳐나갈 거예요.
---
한국어로 컴퓨터를 짓는다는 건 이런 뜻입니다:
외국 언어의 번역자로만 살지 않고, 우리 말로 생각한 게 그대로 명령이 되게 하는 일. 예/아니오만 아니라 "모르면"도 있는 세 가지 답으로 사람다운 생각을 기계에 담는 것.
그 블록 네 개(데이터·명령·연결·경계)가 한 체계 안에서 균형을 이루면서, 보이는 세상(명령·데이터)과 안 보이는 가능성(경계의 경험)을 함께 인정하는 일이에요.
완벽하진 않지만, 이미 정말로 작동하고 있고, 더 나아갈 길도 명확하고, 우리가 배우고 있는 그런 여정입니다.
컴퓨터가 가장 잘하는 일은 뭘까? 네, 셈이야. 그런데 컴퓨터는 지금까지 두 갈래로만 세 왔어 — "예" 또는 "아니오", 0 또는 1처럼.
잠깐, 생각해 보자. 엄마가 물었어. "아이스크림 먹고 싶니?" 넌 대답할 수 있지:
그런데 한 가지 더 있잖아:
두 갈래가 아닌 세 갈래야. 컴퓨터가 이 세 번째 갈래를 몰랐어. 한선씨는 여기서 시작해.
비트(bit)는 0과 1 두 개의 동전이라고 생각해 봐. 그럼 트릿(trit)은? 양팔저울 위에 추를 놓는 거야.
한 개의 트릿이 음수, 0, 양수를 모두 품고 있어. 신기하지? 부호를 따로 그릴 필요가 없어.
이 세 가지는 눈에 보이는 세계에 각각 속해 있어. 티와 타는 "저울의 한쪽이 내려간 상태" — 눈에 띄지? 그런데 옴은 다르다. 저울이 딱 수평인 "명령하는 상태", 마치 우주의 중심처럼 어디로도 기울지 않은 상태야. 이걸 가시선(눈에 보이는 선)이라고 생각해 봐.
그런데 사실 눈에 보이는 세계 바깥에 또 다른 영역이 있어. 그걸 음(U, -0)이라고 하는데, 블랙홀처럼 "어디로 갈지, 얼마나 될지 아무도 모르는" 상태야. 티나 타처럼 명확하지 않은 영역. 비가시선(눈에 안 띄는 선) 너머의 세계지. 한선씨 코드에서는 종종 음을 띄어쓰기(구분자)로 쓰는데, 그건 컴퓨터 칩에 맞게 디자인한 도구일 뿐이야. 음의 진짜 의미는 "알 수 없는, 미지의 영역"이야.
레고 블록을 3×3×3으로 쌓으면 큐브가 되지? 27개 조각이 필요해. 한선씨에서도 마찬가지야.
트릿 27개가 모이면 큐브가 된다. 27 = 3 × 3 × 3. 이 큐브 하나가 한선씨의 기본 단위야. 한 개의 큐브는 한 개의 낱말처럼 일 한다. 큐브가 모여 문장이 되고, 문장이 모여 프로그램이 된다.
한선씨는 종이 위의 꿈이 아니야. crownyc(크라우니씨)라는 엔진이 있어. 이 엔진은 867개의 명령어를 가지고 있고, 27트릿 큐브를 진짜로 읽고 실행한다.
지금 크라우니가 운영하는 서비스들 중에, 71개가 이 한선씨 엔진으로 돌아가고 있어. 학교, 금융, 게임, 설계... 모두.
두 갈래 생각에선 "모른다"가 없어. 0 아니면 1. 참 아니면 거짓.
한선씨는 다르다. 모름을 정직하게 다뤄. "네"(티), "아니오"(타), 그리고 "아직 몰라"(옴) 셋을 모두 셈에 넣는다. 코드에 이런 단어가 있어:
모르면 → 몰라? 그럼 이 길로 가.
신호등 같아. 빨강(타, 아니오), 파랑(티, 네), 노랑(옴, 명령·기다려). 세 개 다 필요하다.
한선씨도 한계가 있었어. 처음엔 약간 약한 곳들이 있었거든. 예를 들어:
그런데 한 가지 알아 둬. 한계는 멈춤이 아니라 시작점이야.
테슬라의 자동차 엔지니어들이 부동소수점 없이 정수로만 계산하는 방법을 썼거든. 돈을 1000배로 키워서 셈한 다음(1.5는 1500으로), 나눗셈·제곱근·사인·코사인까지 정수로만 펼쳐서 계산하는 거야. 우리도 그 길을 따라 '고정소수점.한선'이라는 라이브러리를 만들었어. 지금 소수 3자리까지 정확하게(오차 0.001 이하) 계산할 수 있어.
한계는 정말 한계였던 게 아니라, 우리가 아직 모르던 길일 뿐이었어. 이제 넘어가고 있어.
컴퓨터는 0과 1로 충분하다고 생각했어. 그런데 세상은 그렇게 단순하지 않아. "예" 또는 "아니오"가 아닌 경우가 있다. 답을 모를 수도 있고, 생각할 시간이 필요할 때도 있지.
한선씨는 이 세 번째 갈래를 언어의 바닥부터 깔았어. 아니, 사실 네 갈래야:
트릿이 모여 큐브가 되고, 큐브가 867개 명령어를 실행하고, 그 안에 "모름"도 살고 있다. 부동소수점도 이제 품을 수 있게 되었고.
이게 네 갈래의 셈이야.
상상해 봐. 엄마가 달걀프라이를 만든다고 해. 달걀 하나는 같지만, 만드는 방법이 두 가지야.
첫 번째 길은 쉬운 길이야. 팬에 버터를 듬뿍 넣고, 불을 약하게 하고, 천천히 익혀. 이게 우리가 고수준(hanseonc_high)이라고 부르는 길이야. 아이들도 따라 할 수 있게 쉽게 만들었어. 지금 대부분의 사람들이 이 길로 달걀프라이를 만들어.
두 번째 길은 정통 길이야. 마스터 셰프처럼, 정확한 온도에서 정확한 초에 뒤집어. 이게 RPN이라고 부르는 정통 방법이야. 진짜 프로처럼 만드는 거지. 한선씨의 헌법(큰 규칙책)에서 "이게 진짜 올바른 길"이라고 적혀 있어.
그런데 말이야. RPN 정통 길을 다니던 사람들이 발견한 거야. 루트, 거듭제곱, 설정, 꺼내 — 이런 몇몇 도구가 아직 완성되지 않았다고. 마치 셰프 칼이 끝이 약간 뭉툭한 것처럼. 그래서 사람들이 이 길을 다닐 때는 조심해서 우회해야 했어.
하지만 여기 중요한 게 있어. 옆에서 본 건 "깨진 칼"이 아니라 "아직 벼우는 중인 칼"이야. 셰프가 칼을 벼르는 동안에도 다른 칼은 쓸 수 있고, 벼운 칼은 더 좋아지는 거지.
신기한 거 있어? 다른 곳에 있던 RPN의 C판(hanseonc_rpn.c라고 부르는)이 실제로는 잘 작동하고 있었어! 그래서 지금 정통 길도 정말로 사람들이 다니고 있어. 부러진 칼 때문에 요리를 못 하는 게 아니라, 부러지지 않은 칼로 요리하는 거야.
그리고 여기서 놀라운 거: 지금 이 순간에도 사람들이 hanseonc_rpn.c를 손보고 있어. 아직 다 뜯어진 칼들을 고쳐가는 중이야. 정통 길의 모든 도구가 완벽하게 드는 날까지 말이야.
여기서 한 가지 더 알아두면 좋은 게 있어. 두 길을 나누는 곳에 음(U)이라는 특별한 경계가 있어.
가시선(우리가 보는 것) 위에는 티(데이터)와 타(일을 하는 것)가 있어. 그리고 그 사이에 옴이 있어. 옴은 "지금 어디로 갈지 정할 때의 상태"야. 화이트홀이라고도 부르고.
그런데 음은 다르다고. 음은 가시선 위의 모든 걸 품고 있는 비가시선의 영역이야. "어디로 갈지도, 얼마나인지도 아직 모르는" 그런 블랙홀 같은 장소야. 그래서 때론 음을 구분자(띄어쓰기처럼)로 쓰기도 하지만, 그건 코드 안에서의 도구적 선택일 뿐이야. 음이 정말로 의미하는 건 이 우주에서 가장 깊은 비밀의 문이 있는 자리라는 거야.
여기서 정말 놀라운 거: 두 길은 완전히 다르게 보이지만, 도착점이 같아!
두 길 모두 같은 '기계어'라고 부르는 특별한 언어로 만들어져. 마치 영어로 쓴 편지든, 한글로 쓴 편지든, 결국 같은 의미를 전달하는 것처럼 말이야. 이것이 TOAU라고 부르는 기계어야. 그리고 이 기계어를 crownyc라는 한선씨의 마음이 읽어.
지금 뭔가 새로운 걸 만든다면? 고수준 hanseonc_high를 택해. 쉽고 편하니까. 대부분의 서비스가 이 길로 만들어졌어.
하지만 정말 정확하고 정통답게 배우고 싶다면? RPN 정통을 배워. 왜냐하면 한선씨의 진짜 마음은 RPN에 있거든. 그리고 이제 C판 도구도 작동하니까, 정통 길도 다닐 수 있어. 게다가 아직 못 고친 칼들도 자꾸 새로워지고 있고.
RPN의 아직 안 된 부분들(루트, 거듭제곱, 설정, 꺼내)을 정통한 사람들이 hanseonc_rpn.c에서 진짜 고치고 있어. 매일 조금씩. 부러진 칼을 벼우는 게 아니라, 애초에 정통하게 다시 단조하는 거야. 그러면 두 길이 완벽하게 정렬돼. 어느 길로 가든 같은 수준의 날카로운 도구를 쓸 수 있게 말이야.
기억해: 길은 두 개지만, 두 길이 같은 땅(큐브라고 부르는 기본 단위 27개)을 딛고 있어. 그래서 견고해. 어느 길로 가든, 같은 기계어 위에서 만난다는 거야. 그리고 정통은 아직도 완성 중이야. 아직도 벼워지고 있어.
너도 레고를 만들 때 벽돌상자를 열어서 "어떤 벽돌이 들었나" 먼저 본다, 그치? 한선씨도 똑같아.
한선씨로 뭔가를 만들 때, 바닥부터 짜지 않는다. 표준 도서관이라는 책장에 이미 다 들어 있거든. 내장함수 225개, 표준라이브러리 24개, 그리고 규칙 에이전트 한 권. 손 안 대고 가져다 쓰면 된다.
출력값 더해 빼기 곱하기 — 이런 것들이 내장함수다. 마치 손가락 같은 거야. 가져오기할 필요 없이, 프로그램을 쓰는 순간부터 손가락처럼 바로 쓸 수 있다.
225개가 어디에 들었나?
글자수 (글자가 몇 개?), 부분 (글자 일부만 뽑기), 포함 (이 글자 들어 있나?), 문자열변환 (숫자를 글자로)길이 (몇 개 들어 있나?), 추가 (넣기), 꺼내 (빼기), 정렬 (순서 정렬)읽기 (파일 열기), 쓰기 (파일 저장)거듭제곱 (2 × 2 × 2), 루트 (제곱의 반대), 무작위 (주사위 굴리기)손가락처럼 쓴다 = 함수 이름을 영어로 외울 필요가 없다. 우리말 그대로다.
책장이 있다. 24권의 책이 꽂혀 있다. 필요할 때마다 꺼낸다.
가져오기 "JSON.한선"
이렇게 한 줄만 쓰면, JSON 책 전체가 손에 들어온다.
24권의 제목:
1414줄짜리 책 한 권이 있다. 제목은 규칙 에이전트.
예를 들어, 게임에서 "점수가 100점 넘으면 다음 스테이지 가기" 같은 규칙이 있다, 그치? 셀코어는 그런 규칙들을 프로그램으로 만드는 책이다.
룰 = 룰생성("스테이지 올리기")
룰 = 룰조건추가(룰, "점수", ">=", 100)
이렇게 쓰면, "조건" "그럼 뭐 할지" 를 코드처럼 짤 수 있다.
이 책장들을 섞어서 만든 게 뭘까? 이미 도는 것들이야:
다 한선씨 책장으로 만들었다.
정직하게 말할게. 책장이 완성되지 않은 부분도 있어:
근데 알면 피할 수 있다. "이건 약해" 하고 미리 알면, 다른 방법을 쓰면 되지.
도서관은 완성품이 아니라 자라는 책장이야. 다음 달에는 또 어떤 책이 들어올까? 아무도 몰라. 근데 한 가지는 확실해: 책장을 잘 알면, 무엇을 만들든 손가락처럼 자유롭다.
"한국말로 코드를 짜면 은행이 돌아갈까?"
대부분 사람들은 웃는다. 영어로 짜는 게 당연하다고 생각했으니까.
하지만 한선씨는 다르다. 한국어 단어들로 세상을 지었다. 우리가 매일 쓰는 "더해"와 "반환"과 "만약"과 "동안"으로 말이다.
지금 이 순간에도 한국어 코드가 돌아가고 있다. 71개의 실제 서비스가.
집을 짓으려면 기초가 튼튼해야 한다.
한선씨의 기초는 세 층으로 이루어져 있다.
첫 번째 층: VM(가상머신). 작은 컴퓨터 뇌처럼 작동한다. 867가지 명령을 알고 있다.
두 번째 층: 컴파일러. 한국어로 짠 코드를 그 VM이 이해하는 말로 바꿔준다. 225개의 미리 만들어 둔 도구들을 갖고 있다.
세 번째 층: 라이브러리. 24개 상자 안에 문자열 다루기, 네트워크, 암호, 규칙 등이 들어 있다.
이 세 층이 단단하게 맞아떨어져야 서비스가 서는 것이다.
한국어로 짠 블록체인이 있다. SHA256이라는 숨바꾸기 게임처럼, 거래를 숫자로 암호화해서 누구도 몰래 바꿀 수 없게 만든다.
거래 기록이 사슬처럼 연결된다. 한 고리를 건드리면 뒤의 모든 고리가 깨진다. 그래서 정직해야 한다.
돈을 받고, 돈을 보내고, 돈을 남긴다. 한국어로 짠 서버가 이 모든 걸 기록한다.
정확하게. 빠르게.
"안녕"이라는 말이 A에서 B로 간다. 한국어 코드가 그 길을 만들었다.
네트워크라는 보이지 않는 길 위에서.
모든 책이 살아 있다. 누군가 읽으러 오면, 한국어로 짠 서버가 그 책을 건넨다.
좋은 지도는 산도 긋고 강도 긋는다. 다다를 수 없는 산도 솔직히 표시한다.
한선씨가 아직 잘 못 하는 것들:
첫째, 소수점. 정수만 잘한다. 루트 2는 정수로 나타낼 수 없다. 그래서 공학이나 물리가 필요하면 아직 도움을 받는다.
둘째, 잠금장치(TLS). 문을 잠그는 건 아직 다른 친구가 해준다.
셋째, 외부 뇌(LLM). ChatGPT 같은 거대 뇌를 부를 때는 아직 다른 말을 쓴다.
넷째, 긴 말. 한 번에 16KB까지만 한꺼번에 읽을 수 있다. 긴 책은 쪼개서 읽어야 한다.
이런 산들이 앞에 있다. 하지만 숨기지 않는다. 정직한 지도가 진짜 믿음을 만든다.
지금 상황: 210개 서비스가 등록되어 있다. 그 중 71개는 한국어 코드로 돌아간다.
이미 도달한 곳: 72~75%. 거의 대부분이다.
갈 수 있는 곳: 90%. 조금만 더 손을 보면 된다.
생각보다 멀지 않다.
남은 일은 명확하다.
첫째, 소수점 없이 정수만으로 계산하기. 이 방법이면 첫 번째 산을 넘을 수 있다.
둘째, RPN 정통 완성. 한국어를 가장 가깝게 해석하는 방식을 완전히 고쳐진다.
셋째, 옆 친구와 손잡기. JS나 Node와 잘 협력해서 90%까지 간다.
남은 길은 꿈이 아니라 할 일 목록이다.
영어 키워드를 빌리지 않고, 한국말(더해·반환·만약·동안·출력값·가져오기)로 은행과 블록체인을 돌린다.
이건 기술의 문제가 아니라 문명의 문제다.
우리 말로 세상을 짓는다는 것.
210개는 끝이 아니라 시작점이다. 다음 장은 너 같은 후배들이 쓸 거다.
한선씨는 한국말로 프로그래밍하는 언어야. 컴퓨터에게 "더해", "설정", "보여줘" 같은 한글 명령으로 말할 수 있어. 이 언어의 심장은 4상균형3진(티·옴·타·음)이라는 수의 방식인데, 이걸 이해하려면 블록으로 생각하면 돼. 레고 블록 27개를 쌓으면, 그 조합이 모든 계산을 할 수 있다고 생각해봐.
한선씨의 두뇌(VM, 크라우니씨)는 867개의 작은 명령을 알고 있어. 손에 든 도구(고수준 컴파일러)는 225가지 일을 할 수 있고, 24가지 책(라이브러리)도 펼쳐볼 수 있어. 매우 강해 보이지? 그런데...
좋은 지도는 뭐가 있는 곳도 그리지만, 뭐가 없는 곳도 솔직하게 그려야 해. 한선씨 지도에는 네 개의 경계가 있어. 지금은 경계지만, 넘고 있는 곳이야.
한선씨는 정수(1, 2, 3...)의 우주로 시작했어. 소수(3.14처럼 점이 들어간 수)는 시민이 될 수 없었거든. 하지만 테슬라가 부동소수점 없이 정수만으로 계산하는 방법(스케일드 정수)을 찾아낸 것처럼, 한선씨도 이제 '고정소수점.한선'을 손에 쥐었어. 스케일을 1000으로 정하면, 소수 3자리까지 정확하게 계산할 수 있다는 뜻. 루트2, 사인, 코사인, 나눗셈도 최대오차 0.001 안에서 가능해.
생각해봐. 요리사가 "우리 부엌은 숟가락만 써"라고 정했는데, 어느 날 천칭 모양의 도구를 만들었으면, 이제 무게도 잴 수 있지 않니? 벽이 아니라 다음 문이 열린 거야.
인터넷으로 안전하게 말하려면 "TLS"라는 열쇠가 필요해. 한선씨는 stunnel이라는 친구와 손잡고 이 경계를 넘어. 순수한 한선씨 혼자서는 HTTPS(보안 인터넷)의 끝까지 못 가는 게 아니라, 친구와 함께하는 것을 이제 표준으로 만들었다는 뜻이야. 마치 "나는 여기까지 가, 친구와 손잡으면 저기까지 간다"고 하는 것처럼. 이제 그 방식이 약함이 아니라 정책이야.
ChatGPT나 Gemini 같은 똑똑한 로봇에게 물어보려면? 한선씨는 Node라는 친구를 통해서 말할 수 있어. 직접 만나지는 못하지만, 편지를 쓸 수 있다는 뜻. 지금 이 책을 쓸 때도, 한선씨 마음을 클로드(Claude)에게 전하려고 이 다리를 썼어. 못 하는 게 아니라, 친구를 통해 더 멀리까지 갈 수 있는 설계야.
한선씨가 한 번에 읽을 수 있는 텍스트 크기가 정해져 있어. 16킬로바이트씩, 64킬로바이트까지. 매우 큰 책을 통째로 못 들어올린다는 뜻이야. 하지만 생각해봐 — 손가락이 작아도 책장을 넘기면서 읽으면 거대한 이야기를 다 읽을 수 있잖아? 이 경계가 지금의 한계지만, 다음 세대에는 더 큰 팔을 그려나갈 수 있어.
경계 가까이에는 함정도 있어.
함정 1: 아주 큰 수는 넘어져요 — 약 1410억 이상의 수를 곱하면, 마치 나이 계산이 리셋되는 것처럼 다시 작아져. 그래서 큰 계산을 할 땐 먼저 1000으로 나눠서 작게 만들고 계산해야 해. 이건 한선씨의 함정이 아니라, 우리가 알아야 할 길 위의 돌이야.
함정 2: 한가운데 값 구하기가 헤매요 — 두 수의 정확히 한가운데를 구하는 방법이 한선씨에서는 직선처럼 가지 않아. 미로 같은 길에서 자꾸 도는 것처럼. 그래서 한 칸씩 차근차근 세야 해. 이것도 약함이 아니라 한선씨만의 계산 방식을 존중하는 것이야.
한선씨를 알아가는 사람들이 측정한 것들이 있어.
이 숫자들을 모두 한 표에 써 놓는 거야. 자랑도 숨기지도 않고.
네 개의 벽을 보다 깊이 이해하려면, 음(U, -0)이 뭔지 알아야 해.
옴(O, 0)은 화이트홀이야. 티나 타로 가기 전의 상태. 가시선(可視線) 위의 영역이지. 하지만 음(U)은? 음은 어디로 갈지, 얼마나인지 모르는 영역이야. 가시선을 넘어 둘러싼 비가시선(非可視線)의 영역. 블랙홀처럼.
네 개의 벽이 바로 그것이야. 우리가 못 보지만 한선씨를 감싸고 있는 경계들이지. 그리고 그 경계를 알았기 때문에, 다음 단계에서 그걸 메워나갈 수 있는 거야.
네 개의 벽이 보이니까 어떻게 넘을지도 보여. 첫 번째 벽(소수)은 이미 고정소수점으로 흉내만이 아니라 실제로 넘고 있어. 두 번째와 세 번째는 친구와 손잡는 것을 표준으로 더 단단히 하면 돼. 네 번째는 조금씩 나눠 읽으면서 점점 커 가는 도구를 만들 거야. 그러면 약 90%까지 강해질 수 있어.
"완성된 지도"보다 "빈 칸이 있지만 정직한 지도"가 더 쌔.
왜냐하면 빈 칸을 알면, 거길 메워나갈 거든. 모르는 것을 숨기면 길을 잃지만, 정직하게 그려놓으면 길이 보여.
한선씨는 못 하는 것을 적어둔 언어야. 적어뒀기에, 메워나갈 수 있어. 지금도, 그리고 앞으로도.
한선씨는 어디까지 왔을까?
VM(가상머신)은 867가지 명령을 안다. 거의 완성됐다.
컴파일러는 225개 도구를 갖고 있다. 24개 상자(라이브러리)도 있다.
지금 71개 서비스가 실제로 돌아가고 있다.
한국어로 짠 코드가 은행, 블록체인, 책장, 메신저를 움직인다.
우리는 이미 꽤 멀리 왔다.
하지만 정직한 지도는 막힌 길을 숨기지 않는다. 다만 그 길이 어떻게 열려 가고 있는지도 말한다.
첫 번째 산: 소수점 없음에서 정확함으로
루트 2를 계산하려고 해봐. "2의 루트는 약 1.414"이지? 한선씨는 정수만 쓴다. 1 또는 2, 둘 중 하나다.
이건 결함이 아니라, 선택의 땅이다. 왜냐하면 우리가 이미 그곳을 건너고 있기 때문이다.
두 번째 산: RPN의 두 계단
한국어 코드를 기계어로 바꾸는 두 가지 방법이 있다. 하나는 멀쩡하고(고수준), 하나는 아직 다듬을 게 남아 있다(저수준, RPN 정통). 마치 같은 집을 가는 두 개의 계단 — 하나는 끝까지 튼튼한데, 하나는 중간에 섬섬달달한 디딤돌이 있는 것처럼.
세 번째 산: 음(音)의 경계를 넘기
여기서 "음(U)"이 나온다. 음은 가시선(可視線) 위의 영역을 품는 '비가시선(非可視線)' — 어디로 갈지, 얼마나 될지 모르는 영역이다. 암호 잠금장치(TLS)는 아직 다른 친구(Node)가 담당한다. ChatGPT처럼 거대한 뇌를 부를 때도 마찬가지. 이건 우리 경계 너머의 영역이다. 하지만 우리가 그곳과 손잡는 방식을 명확히 할 수 있다.
세 가지 일이 같은 방향을 가리킨다.
테슬라라는 회사(전기차)는 소수점을 안 쓴다. 그 대신 정수만으로 똑똑해진다.
"10000을 곱하고 정수로 다루기"
예를 들어, 1.4142를 계산하려면 14142로 저장해 둔다. 필요할 때 10000으로 나누면 된다.
이 방법이면 루트 2, 사인, 로그 같은 것들을 정수만으로 만들 수 있다. 그리고 매 번 정확하게 같은 결과가 나온다.
그리고 우리는 이미 해냈다. 고정소수점.한선이라는 파일이 실제로 이걸 한다. 스케일 1000(소수 3자리)로, 나눗셈·루트·사인·코사인·문자열 변환까지. 최대오차 0.001. 부동소수점 없는 미래는 구상이 아니라 이미 첫 구현이 우리 손에 있다.
두 계단 중 아직 거친 계단을 고쳐야 한다.
우리가 이미 가진 답(C로 짠 RPN 정통 컴파일러)이 있다. 문서를 그것에 맞춰 다듬으면 된다.
마치 맞은 지도를 찾은 것처럼.
외부 도움이 필요한 부분(암호, 대형 AI)은 우리가 통제하는 '경계'에서 표준 방식으로 손잡는다.
한선씨의 순수 서버 + JavaScript 다리 = 이게 표준 모양. 음의 영역은 경계지만, 그 경계는 명확하다.
지금 72~75%까지 갈 수 있다. 이 방법으로 90%까지 간다.
지금: 순수 한국어 코드 32%, 곧 대체 가능 72~75%.
다음: 테슬라 방법(이미 시작) + RPN 고치기 + 표준 손잡기 = 90%.
자립도: 70%. 남은 30%는 LLM 도움. 그 30%도 줄일 수 있다.
수학, 문자열, 네트워크는 이미 98% 자립했다.
한선씨의 미래는 "다른 언어처럼 되기"가 아니다.
"정수의 언어로 끝까지 가기"
소수점을 만드는 게 아니라, 정수만으로 더 똑똑하게.
영어가 아닌 한국말로, 더 단단하게.
고정소수점으로 이미 증명했듯이, 우리는 그 길을 걷고 있다.
다음 장은 코드로 증명한다.
우리가 만든 세 가지가 정말 작동하는지를.