본문으로 건너뛰기

© 2026 Molayo

HN요약2026. 05. 20. 02:26

Show HN: Han – Rust로 작성된 한국어 프로그래밍 언어

요약

Han은 Rust로 작성된 한국어 기반의 범용 정적 타입 컴파일 언어입니다. 한글의 과학적 설계와 AI 시대의 BPE 토크나이저 최적화를 목표로 하며, 키워드와 표준 라이브러리, 에러 메시지까지 모두 한국어로 제공하는 실험적인 프로젝트입니다.

핵심 포인트

  • Rust로 구현된 LLVM 기반의 정적 타입 컴파일 언어
  • 한국어 구문을 일급 시민(First-class syntax)으로 채택하여 AI 토크나이저의 한국어 표현력 향상 도모
  • Museum as Code 데모를 통해 실제 웹 콘텐츠 구축 가능성 증명
  • CLI 도구(hgl)와 REPL, 트리 워킹 인터프리터 및 네이티브 바이너리 컴파일 지원

한국어 키워드, 타입 (types), 내장 함수 (built-ins) 및 표준 라이브러리 (standard library)를 갖춘 범용 컴파일 언어 — Rust로 작성됨

Museum as Code (라이브 사이트) — Han으로 재구축된 국립중앙박물관. 56개의 카탈로그 항목과 10개의 히어로 페이지는 실제 .hgl 소스 파일입니다. 사이트의 모든 코드 블록은 hgl interpret에서 변경 없이 실행됩니다.

. 한국어 구문 (Korean-as-syntax)이 'Hello World'를 넘어 전체 콘텐츠 사이트로 확장될 수 있음을 보여주는 핵심적인 데모입니다.

Han은 단순한 프로그래밍 언어가 아닙니다. 이는 세 가지 목표를 가진 실험입니다:

1. 한글은 역사상 가장 과학적으로 설계된 문자 체계 중 하나입니다
각 글자는 발음할 때 사용되는 입과 혀의 정확한 모양을 인코딩합니다. 모음은 천(·), 지(ㅡ), 인(ㅣ)의 세 가지 기호로 구성됩니다. 한글은 역사를 통해 계승된 것이 아니라 명확성을 위해 설계되었습니다. Han은 질문합니다: 진화한 것이 아니라 설계된 문자로 코드를 작성하면 어떤 모습일까요? (1443년 발명 — 세종대왕)

2. AI 시대를 위한 한국어 코드 — BPE 최적화
LLM (대규모 언어 모델)은 영어 중심의 데이터로 학습됩니다. BPE (Byte Pair Encoding) 토크나이저 (tokenizer)는 한국어 글자를 희귀한 것으로 취급하여, function이 하나의 토큰이 되는 반면 함수는 여러 개의 바이트 수준 토큰으로 분리합니다. 인터넷상의 저장소 (repos), 문서 (documentation), 예제 (examples) 등에 한국어 코드가 더 많이 존재할수록, 미래의 토크나이저는 한국어를 더 잘 표현하게 될 것입니다. Han은 그 코퍼스 (corpus)에 대한 작은 기여입니다.

3. 일급 구문 (First-Class Syntax)으로서의 소수 언어
한국어는 약 8,000만 명이 사용하는 언어이지만, 본질적으로 한국어를 구문으로 사용하는 프로그래밍 언어는 전무합니다. Han은 실험입니다: 소수 언어가 컴파일러 (compiler)의 문법이 되면 어떤 일이 벌어질까요? 어디까지 나아갈 수 있을까요?

Han은 키워드, 타입 이름, 50개 이상의 내장 함수(built-in functions), 그리고 표준 라이브러리 메서드가 한국어로 작성된 정적 타입 (statically-typed) 컴파일 언어입니다. 모든 에러 메시지 또한 한국어로 제공됩니다. 산술, 비교, 할당 연산자는 C/Rust의 관례를 따릅니다. LLVM IR을 통해 네이티브 바이너리 (native binaries)로 컴파일되며, 즉시 실행을 위한 트리 워킹 인터프리터 (tree-walking interpreter)도 함께 제공됩니다. 컴파일러 툴체인 (compiler toolchain)은 전적으로 Rust로 작성되었습니다.

crates.io에서 Rust 크레이트 (crate)를 설치하세요. 패키지 이름은 han-lang입니다.

언어 이름은 Han이며, 설치된 CLI 명령어는 hgl입니다.

cargo install han-lang

hello.hgl 파일을 생성합니다:

출력("안녕하세요, 세계!")

실행하기:

hgl interpret hello.hgl
# 출력: 안녕하세요, 세계!

조건문은 한국어 기본 형식인 만약 조건 이면 { } 형태를 사용합니다:

만약 x > 0 이면 {
출력("양수")
} 아니면 {
...

또는 REPL로 진입할 수 있습니다:

hgl repl
한> 출력("안녕!")
안녕!
함수 계산(식: 문자열) -> 정수 {
변수 부분 = 식.분리(" ")
변수 왼쪽 = 정수변환(부분[0])
...
구조 할일 {
제목: 문자열,
완료: 불
...

단어 개수 세기, 파일 I/O, JSON, HTTP, 정규표현식 (regex), 그리고 10단계 전체 튜토리얼 시리즈를 포함한 더 많은 예제는 examples/ 디렉토리와 문서의 예제 인덱스 (Examples Index)에서 확인할 수 있습니다.

한국어 키워드함수, 만약, 이면, 반복, 변수, 상수, 반환, 구조, 시도, 처리, 맞춤

한국어 어순만약 조건 이면 { }, 조건 동안 { } (SOV) 및 동안 조건 { } (SVO)

한국어 논리 연산자그리고 (and), 또는 (or)

한글 식별자 (Hangul identifiers)—변수, 함수, 필드 이름을 한국어로 지정

컴파일 및 인터프리터 (Compiled & interpreted)hgl build (LLVM IR → clang → binary) 또는 즉시 실행을 위한 hgl interpret

REPL + LSP—대화형 세션을 위한 hgl repl, 에디터 호버/완성을 위한 hgl lsp

정적 타이핑 (Static typing)—5가지 기본 타입: 정수, 실수, 문자열, , 없음 및 배열 (arrays), 구조체 (structs), 튜플 (tuples), 열거형 (enums)

패턴 매칭 (Pattern matching)맞춤 값 { 1 => ..., _ => ... }

에러 핸들링 (Error handling)시도 { } 처리(오류) { }

클로저 (Closures) + 고차 함수 (higher-order functions)변수 f = 함수(x: 정수) { 반환 x * 2 }

문자열 보간 (String interpolation)"${expr}"형식("이름: {이름}")

파이프 연산자 (Pipe operator)값 |> 함수1 |> 함수2

한국어 표준 라이브러리 (Stdlib in Korean)— 50개 이상의 내장 함수: 수학 (math), 정규표현식 (regex), JSON, HTTP, 파일 I/O, 날짜/시간 (date/time), 시스템 (system)
선형 대수 (Linear algebra)행렬곱, 전치, 내적, 외적, 텐서곱, 단위행렬

선택적 Python 상호 운용성 (Optional Python interop)파이썬() / 파이썬_값()
--features python 옵션으로 빌드 시 NumPy, PyTorch 등을 위해 사용 가능

모듈 임포트 (Module imports)포함 "파일.hgl"
(정준 경로 중복 제거 적용)

제네릭 문법 (Generics syntax)함수 최대값<T>(a: T, b: T) -> T

40개 이상의 예제 프로그램— Hello World부터 HTTP API 호출까지

  • Rust (1.70+)
  • clang (hgl build / hgl run 용) — xcode-select --install 또는 brew install llvm 실행 필요
git clone https://github.com/xodn348/han.git
cd han
./install.sh

이 명령은 hgl을 전역적으로 설치하며, VS Code가 감지될 경우 VS Code 확장 프로그램(구문 강조 + LSP)을 자동으로 설정합니다.

또는 crates.io에서 게시된 Rust 패키지를 설치할 수 있습니다:

cargo install han-lang

이름의 모호함을 피하기 위해 crates.io 패키지 이름은 han-lang으로 지정되었습니다. 언어 이름은 Han으로 유지되며, PATH에 설치되는 명령어는 hgl로 유지됩니다.

crates.io의 기본 설치 버전은 hgl이 로컬 Python 동적 라이브러리를 요구하지 않고 실행될 수 있도록 의도적으로 Python 기능이 제외되어 있습니다. Python 상호 운용 기능이 포함된 버전을 원한다면 cargo install han-lang --features python으로 설치하십시오.

hgl interpret <file.hgl> 인터프리터로 실행 (clang 불필요)
hgl build <file.hgl> 네이티브 바이너리로 컴파일 (clang 필요)
hgl run <file.hgl> 즉시 컴파일 및 실행
...

Crate— crates.io/crates/han-lang
Playground— xodn348.github.io/han/playground
Docs home— xodn348.github.io/han/introduction.html
Language Guide— docs/src/reference/language-guide.md
Examples Index— docs/src/examples/index.md
Compiler Architecture— docs/src/internals/architecture.md
Lexer & Token Analysis (AI/LLM)— docs/src/internals/lexer.md
Formal spec— spec/SPEC.md

cargo test

cargo test

lexer (어휘 분석기), parser (구문 분석기), AST (추상 구문 트리), interpreter (인터프리터), type checker (타입 검사기), compiled backend (컴파일된 백엔드), 그리고 closure capture (클로저 캡처), struct impl methods (구조체 구현 메서드), tuples (튜플), SOV parsing (SOV 구문 분석)과 같은 통합 시나리오를 포함합니다.

개발 환경 설정, 브랜치 컨벤션 (branch conventions), 그리고 PR 체크리스트에 대해서는 CONTRIBUTING.md를 참조하세요.

MIT

Han — 한글의 아름다움이 코드의 정밀함과 만나는 곳.

AI 자동 생성 콘텐츠

본 콘텐츠는 HN Design Systems의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0