PostMath 공식 발표 — 2026.04.01

수학의 근원을 이해하는 유일한 언어

4개의 키워드. 5개의 기호. 3KB의 명세.
튜링이 꿈꿨던 프로그래밍 언어가 마침내 도착했습니다.

hello.umm
어떻게
........ .........
... ..... .......

이 사람이름이냐ㅋㅋ
$ um-run hello.umm
Hi
0 키워드
0 기호
0 KB 명세
0 줄 인터프리터
스크롤하여 진실을 확인하세요

이것이 언어의 전부입니다

다른 언어의 예약어 목록을 외우느라 소모된 시간을 돌려드립니다.

변수 할당 엄 = var[0], 어엄 = var[1], ...
GOTO 준.. = 줄 2로 점프
출력 식...! = 정수, 식...ㅋ = 문자
동탄 조건 분기 동탄어?준.. = if var[0]==0

5개의 기호. 그 이상은 불필요합니다.

.+1 (successor)
,-1 (predecessor)
 × (multiply)
?입력
문자 출력

Language Specification Complexity Analysis

Language Keywords Symbols Spec Size K(L) Estimate
C++20 97 54 ~1,800 pages ∞ (측정 불가)
Java 21 67 47 ~800 pages ∞ (측정 불가)
Python 3.12 35 35 ~180 pages Very High
Go 1.22 25 30 ~100 pages High
Lua 5.4 22 20 ~30 pages Moderate
Brainfuck 0 8 ~1 page Low
umjunsik-lang 4 5 ~3KB Provably Near-Optimal™

PostMath 기술연구소의 내부 분석에 따르면, umjunsik-lang의 명세 복잡도는 튜링 완전 언어 중 이론적 하한에 가장 근접한 것으로 확인되었습니다. "Provably Near-Optimal"은 당사의 등록 상표입니다.

전체 문법 참조

구문문법의미
프로그램 시작어떻게"어떻게..."
프로그램 종료이 사람이름이냐ㅋㅋ"...이 사람이름이냐ㅋㅋ"
변수 할당(var[0]), 어엄(var[1])값 저장
변수 읽기(var[0]), 어어(var[1])값 접근
.(+1) ,(-1) space(×)산술 연산
입력엄식?stdin 읽기
정수 출력식...!숫자로 출력
문자 출력식... .... ......ㅋUnicode 문자 출력
조건문동탄어?준..var[0]==0이면 줄 2로
점프준..줄 2로 이동
종료화이팅!프로그램 종료

AI를 위해 태어난 언어

전체 언어 스펙이 Claude의 단일 컨텍스트 윈도우에 들어갑니다.
AI가 존재하지 않는 문법을 만들어낼 여지 자체가 없습니다.

AI 코드 생성 시 환각 확률과 언어 복잡도의 상관관계

PostMath 기술연구소 내부 벤치마크, 2026 Q1

45%38%27%15%3%0%
C++ 45%
Java 38%
Python 27%
Go 15%
Lua 3%
엄랭 0.0%

* 이 데이터는 과학적으로 수집되었습니다. (N=1, 신뢰구간: 해당없음, p-value: 계산하지 않음)

Claude Code Terminal
> /um-tools:um-gen 두 수를 입력받아 더한 결과를 출력
Claude: 두 수를 입력받아 합산하는 프로그램을 생성합니다.
Created: add.umm
어떻게

?
어엄?

동탄?... ....

,
어엄어어.

.. ...
어어!

이 사람이름이냐ㅋㅋ
Validated: OK: 7 statements parsed (12 lines total)
> echo "3 5" | /um-tools:um-run add.umm
8

자연어 한 줄이 동작하는 프로그램이 됩니다

Claude Code Terminal
> /um-tools:um-gen 입력받은 N개의 피보나치 수열 출력
Created: fibonacci.umm
어떻게
?
어엄
어어엄.
어어!
.. .... ....             ← char(32) = ' '
어어어엄어어,어어어.     ← temp = b + next
어엄어어어               ← shift variables
어어엄어어어어
,                    ← counter--
동탄?화이팅!         ← if 0, exit
.....                  ← loop back
이 사람이름이냐ㅋㅋ
> echo "10" | /um-tools:um-run fibonacci.umm
0 1 1 2 3 5 8 13 21 34

10초 안에 피보나치가 동작합니다

Claude Code Terminal
> /um-tools:um-review fibonacci.umm
=== Line Map: fibonacci.umm ===
Line  1: (implicit noop after 어떻게)
Line  2: 엄식?
Line  3: 어엄
Line  4: 어어엄.
Line  5: 식어어!
Line  6: 식.. .... ....ㅋ
Line  7: 어어어엄어어,어어어.
Line  8: 어엄어어어
Line  9: 어어엄어어어어
Line 10: 엄어,
Line 11: 동탄어?화이팅!
Line 12: 준.....
Total: 12 lines (goto targets: 1-12)
=== Umjunsik-lang Review Report ===
[PASS] A1: Program starts with '어떻게'
[PASS] A2: Program ends with '이 사람이름이냐ㅋㅋ'
[PASS] B1: All statements use valid keywords
[PASS] D1: Goto target 5 is within range (1-12)
[PASS] D3: Loop at line 12 has exit at line 11
[INFO] E2: Program uses input — expects integer N
Summary: 0 errors, 0 warnings, 1 info

AI가 코드를 검증하고 라인 맵까지 제공합니다

Claude Code Terminal
> encode-char.sh "Hello"
=== Umjunsik-lang Character Encoding ===
  72   'H'   식........ .........ㅋ   (8×9=72)
 101   'e'   PRIME — use var trick
              (e.g. var[0]=100, 식어.ㅋ)
 108   'l'   식... ...... ......ㅋ   (3×6×6=108)
 108   'l'   식... ...... ......ㅋ   (3×6×6=108)
 111   'o'   식... .....................................ㅋ
              (3×37=111)
Var trick: store base
  (엄.......... ..........) for var[0]=100,
  then 식어.ㅋ=char(101)='e',
       식어........ㅋ=char(108)='l', etc.

Hello를 작성하려면 소인수분해를 해야 합니다

Claude Code Terminal
> /um-tools:um-gen 입력받은 수의 팩토리얼 계산
Created: factorial.umm
어떻게
?                    ← N 입력
어엄.                    ← result = 1
동탄?.........       ← N==0? → 출력
어엄어어               ← result *= counter
,                    ← counter--
동탄?.........       ← N==0? → 출력
.....                  ← loop
어어!                  ← print result

이 사람이름이냐ㅋㅋ
> echo "5" | /um-tools:um-run factorial.umm
120
> echo "10" | /um-tools:um-run factorial.umm
3628800

5! = 120, 10! = 3,628,800. 정확합니다.

실제로 동작하는 코드

모든 예제는 검증된 실제 출력입니다. 가짜 데모가 아닙니다.

Hello World ("Hi")

문자 인코딩
어떻게
........ .........
... ..... .......

이 사람이름이냐ㅋㅋ
Output: Hi

H = 8 × 9 = 72, i = 3 × 5 × 7 = 105

Hello World!

Base+Offset
어떻게
.......... ..........
........ .........
.
........
........
...........
.. .... ....
,,,,,,,,,,,,,
...........
..............
........

... ...........

이 사람이름이냐ㅋㅋ
Output: Hello World!

var[0]=100 기반 오프셋 패턴

Fibonacci

알고리즘
어떻게
?
어엄
어어엄.
어어!
.. .... ....
어어어엄어어,어어어.
어엄어어어
어어엄어어어어
,
동탄?화이팅!
.....
이 사람이름이냐ㅋㅋ
$ echo "10" | um-run fibonacci.umm 0 1 1 2 3 5 8 13 21 34

두 변수 덧셈 트릭 (어,어어.)

Factorial

알고리즘
어떻게
?
어엄.
동탄?.........
어엄어어 
,
동탄?.........
.....
어어!

이 사람이름이냐ㅋㅋ
$ echo "5" | um-run factorial.umm 120

두 변수 곱셈 (어 어어)

GCD (최대공약수)

고급 알고리즘
어떻게
?
어엄?
어어엄
어어어엄어어
동탄어어어?........
동탄어어어어?............
어어어엄어어어어,
어어어어엄어어어어어,
.....
,
어엄어어,
어어엄
어어어엄어어
동탄?....................
동탄어어?....................
...
어어어!

이 사람이름이냐ㅋㅋ
$ echo "48 18" | um-run gcd.umm 6

동시 감소 비교법 (Simultaneous Decrement)

Add (덧셈)

기본 연산
어떻게

?
어엄?

동탄?... ....

,
어엄어어.

.. ...
어어!

이 사람이름이냐ㅋㅋ
$ echo "3 5" | um-run add.umm 8

a + b = 반복 successor

검증된 테스트 프로그램 입출력

ProgramInputOutputDescription
hello.umm(없음)Hi\nH=8×9=72, i=3×5×7=105
helloworld.umm(없음)Hello World!\nBase+offset: var[0]=100 기반
counter.umm(없음)1\n2\n3\n4\n5goto 루프 + 조건부 종료
add.umm3 58입력 → 반복 덧셈 → 출력
fibonacci.umm100 1 1 2 3 5 8 13 21 34두 변수 덧셈 트릭
factorial.umm5120\n두 변수 곱셈
gcd.umm48 186\n동시 감소 비교법
max.umm7 37\n비교 + 분기

Why PostMath Chose 엄랭

실제 수학 이론에 기반한 기술적 근거. 결론만 약간 대담합니다.

01

페아노 공리계와의 동형사상

Peano Axioms Isomorphism

페아노 공리계 (1889)

  • 0 ∈ ℕ
  • S(n) = n + 1
  • S-1(n) = n - 1
  • ∀n: S(n) ≠ 0
  • Induction on ℕ

umjunsik-lang (2020)

  • (초기값 0은 암묵적)
  • . (dot = successor)
  • , (comma = predecessor)
  • 동탄 (zero-check conditional)
  • (goto = structural induction)
다른 언어들은 페아노를 '구현'합니다.
엄랭은 페아노 '그 자체'입니다.
02

소인수분해 기반 문자 인코딩

Number-Theoretic I/O

다른 언어: print("H") // 문자가 뭔지 모른다
엄랭: 식........ .........ㅋ // H = 72 = 8 × 9 = 2³ × 3²
'H'= 72 = 8 × 9식........ .........ㅋ
'e'= 101 = PRIMEvar trick: 식어.ㅋ
'l'= 108 = 3 × 6 × 6식... ...... ......ㅋ
'o'= 111 = 3 × 37식... .....................................ㅋ
' '= 32 = 2 × 4 × 4식.. .... ....ㅋ
엄랭 개발자는 'Hello World'를 작성하기 위해 정수론 교과서를 펼칩니다.
이것이 수학적 소양을 갖춘 개발 문화의 시작입니다.
03

변수 명명의 수학적 순수성

Mathematical Purity in Variable Naming

수학 논문: x₀, x₁, x₂, x₃
umjunsik-lang: 어, 어어, 어어어, 어어어어
Python: user_name, total_count, is_valid
Java: AbstractSingletonProxyFactoryBean
변수 이름 짓기 논쟁은 소프트웨어 공학 역사상 가장 많은 생산성을 소모한 활동입니다.
umjunsik-lang은 이 문제를 수학이 200년 전에 해결한 방식으로 해결합니다.
04

동치 영점 판정

"모든 조건은 영(零)으로 환원된다"

다른 언어: if (a == b) → 6가지 비교 연산자 중 택 1
엄랭: 동탄{x}?"0인가?"
a == b동탄(a - b)? "a - b가 0인가?"
a < b → 동시 감소 후 영점 도달 순서 판별
a != b동탄(a - b)?를 통과하면 not equal
비교 연산자 6개? 수학은 2,000년간 '= 0'이면 충분했습니다.
엄랭은 설탕을 넣지 않습니다. 수학은 원래 쓴 겁니다.
05

튜링 완전성의 최소 실현

Minimal Turing Completeness

무한 저장소 어, 어어, 어어어, ... (∞)
산술 . , (space)
조건 분기 동탄
무조건 분기
추가 기능: 없음.
"필요충분" — 수학이 가장 사랑하는 단어입니다.
엄랭은 튜링 완전성을 달성하는 데 필요한 것 이상을 단 하나도 제공하지 않습니다.
이것은 나태함이 아닙니다. 이것은 수학적 절제입니다.
06

PostMath와의 운명적 정합성

The Paradoxical Alignment

Post-Math는 '수학 이후'를 의미합니다.
그런데 수학 이후로 가려면, 먼저 수학의 근원으로 돌아가야 합니다.
엄랭이 그 길입니다.
OFFICIAL PRESS RELEASE 2026년 4월 1일 | 서울

PostMath, umjunsik-lang을
백엔드 공식 개발 언어로 지정

PostMath는 2026년 4월 1일부로 umjunsik-lang(이하 '엄랭')을 사내 백엔드 개발 공식 언어로 지정할것을 발표했습니다.

이번 결정은 18개월간의 내부 기술 평가를 거친 결과이며, 다음과 같은 기술적 근거에 기반합니다:

  1. 언어 명세 복잡도: 전체 스펙 3KB (경쟁 언어 대비 99.8% 절감)
  2. 키워드 수: 4개 (개발자 학습 곡선 사실상 제로)
  3. 수학적 순수성: 페아노 공리계와의 직접 대응
  4. AI 개발 최적성: Claude Code um-tools 플러그인을 통한 자연어 → 코드 생성 → 실행 → 검증 완전 자동화 달성
  5. 컴파일러 규모: 300줄의 Go 코드 (유지보수 비용 최소화)
CTO
"47개 언어를 평가한 결과, 키워드가 가장 적은 언어가 버그도 가장 적다는 결론에 도달했습니다. 4개보다 적으면 튜링 완전이 아니고, 4개보다 많으면 불필요한 복잡성입니다. 엄랭은 수학적으로 최적입니다."
PostMath CTO
AIDD
"사실 저희는 이미 um-tools Claude Code 플러그인을 통해 엄랭으로 피보나치 수열, 팩토리얼, 최대공약수 등 핵심 알고리즘을 구현하고 운영 중입니다. 자연어로 요구사항을 말하면 10초 안에 동작하는 .umm 파일이 생성됩니다."
PostMath AIDD팀 리드

AIDD (AI-Driven Development) 사업부는 향후 모든 신규 마이크로서비스를 엄랭으로 작성하며, 기존 Go/Python 코드베이스의 단계적 마이그레이션 로드맵을 수립 중입니다.

"99.7%의 Stack Overflow 질문은 키워드가 4개보다 많은 언어에 관한 것입니다. 우연의 일치?"

"우리의 인터프리터는 Go 300줄입니다. C++ 명세서의 목차보다 짧습니다."

"'e'의 ASCII 코드 101은 소수입니다. 엄랭 개발자는 이 사실을 코드를 작성하면서 자연스럽게 발견합니다. 다른 언어 개발자는 평생 모릅니다."

지금 시작하세요

um-tools Claude Code 플러그인은 실제로 동작합니다. 진짜로요.

1

플러그인 설치

/plugin install um-tools@postmath-plugins
2

프로그램 생성

/um-tools:um-gen print "Hello World" with newline
3

실행

/um-tools:um-run hello.umm
4

검증

/um-tools:um-review program.umm

더 많은 예제

# 입력과 함께 실행 echo "10" | /um-tools:um-run fibonacci.umm
# 자연어로 알고리즘 생성 /um-tools:um-gen 입력받은 수의 팩토리얼 계산