# Han – Rust로 작성된 한국어 기반 컴파일형 프로그래밍 언어

> Clean Markdown view of GeekNews topic #27532. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=27532](https://news.hada.io/topic?id=27532)
- GeekNews Markdown: [https://news.hada.io/topic/27532.md](https://news.hada.io/topic/27532.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2026-03-16T05:35:10+09:00
- Updated: 2026-03-16T05:35:10+09:00
- Original source: [github.com/xodn348](https://github.com/xodn348/han)
- Points: 10
- Comments: 12

## Summary

**Han**은 모든 키워드와 식별자를 **한글로 작성할 수 있는 정적 타입 컴파일 언어**로, Rust로 구현된 컴파일러와 인터프리터를 함께 제공합니다. `hgl` CLI를 통해 빌드·실행·REPL·LSP 기능을 지원하며, LLVM IR을 거쳐 네이티브 바이너리를 생성합니다. 한글의 구조적 원리를 문법 설계에 반영해, 한국어 학습과 프로그래밍을 결합한 새로운 형태의 언어 실험으로 자리 잡고 있습니다.

## Topic Body

- **한글 키워드**로 작성되는 정적 타입의 **컴파일형 언어**로, LLVM IR을 통해 네이티브 바이너리를 생성함  
- Rust로 구현된 **컴파일러와 인터프리터**를 모두 제공하며, `hgl` CLI로 빌드·실행·REPL·LSP 기능을 지원함  
- `함수`, `만약`, `반복`, `변수` 등 **모든 키워드가 한국어**이며, 변수명과 함수명도 한글로 정의 가능함  
- **파일 입출력, JSON, HTTP, 정규식, 날짜/시간, 시스템 호출** 등 실용적 기능을 내장하고, 예제 18개를 포함함  
- 한글의 과학적 구조와 문화적 확산을 프로그래밍 언어로 구현해, **한국어 학습과 코딩을 결합한 새로운 시도**로 주목받음  

---
### Han 언어 개요
- Han은 **한국어 키워드로 작성되는 정적 타입 컴파일 언어**로, LLVM IR을 통해 네이티브 바이너리를 생성함  
  - Rust로 작성된 **컴파일러 툴체인**과 **트리 워킹 인터프리터**를 포함  
  - `hgl` 명령어로 인터프리터 실행, 빌드, REPL, LSP 서버 구동 가능  
- 모든 키워드가 **한글**로 구성되어 있으며, 예: `함수`, `만약`, `반복`, `변수`, `출력` 등  
- 한글의 과학적 문자 체계를 프로그래밍 언어로 구현해, **언어적 아름다움과 기술적 정밀성의 결합**을 목표로 함  

### 주요 기능
- **한글 키워드 및 식별자** 지원: 변수명, 함수명, 구조체명 등을 한글로 작성 가능  
- **정적 타입 시스템**: `정수`, `실수`, `문자열`, `불`, `없음`의 5가지 기본 타입 제공  
- **컴파일 및 인터프리터 모드**: LLVM IR → clang → 바이너리 생성 또는 즉시 실행  
- **REPL 및 LSP 서버**: `hgl repl`, `hgl lsp` 명령으로 대화형 실행과 코드 완성 지원  
- **내장 기능**  
  - **배열, 구조체, 클로저, 패턴 매칭, 예외 처리, 제네릭**  
  - **파일 I/O, JSON, HTTP, 정규식, 날짜/시간, 시스템 호출**  
  - **형식 문자열, 해시맵, 수학 내장 함수**  
- **예제 프로그램 18개** 포함: Hello World, HTTP API 호출 등  

### 설치 및 실행
- **필수 구성요소**: Rust(1.70+), clang  
- 설치 절차  
  - `git clone https://github.com/xodn348/han.git`  
  - `cd han && cargo install --path .`  
- **VS Code 확장** 제공: 구문 강조 및 LSP 지원  
- **CLI 명령어**  
  - `hgl interpret <file.hgl>` — 인터프리터 실행  
  - `hgl build <file.hgl>` — 네이티브 바이너리 컴파일  
  - `hgl run <file.hgl>` — 컴파일 후 즉시 실행  
  - `hgl repl` — 대화형 모드  
  - `hgl lsp` — LSP 서버 실행  

### 현재 구현 상태
- **완전 동작 기능**  
  - 데이터 타입, 제어 흐름, 함수, 문자열, 배열, 해시맵, 구조체, 오류 처리, 타입 검사  
  - JSON, HTTP, 정규식, 날짜/시간, 시스템, 파일 I/O, 수학 함수, 모듈, 제네릭  
- **부분 구현 기능**  
  - `hgl build` 시 클로저·문자열·배열 메서드의 코드 생성은 미완성  
- **미구현 기능**  
  - Null 안전성(`Option` 타입 없음), 비동기/병렬 처리, 가비지 컬렉션, 꼬리 재귀 최적화  

### 한글과 프로그래밍
- 한글은 **음운 구조를 시각적으로 표현한 과학적 문자 체계**로, 세종대왕이 1443년에 창제  
- Han은 이러한 한글의 구조적 명료함을 코드 문법에 반영함  
- 전 세계적으로 1,600만 명 이상이 한국어를 학습 중이며, Han은 **코딩을 통한 한글 학습 수단**을 제공함  
- 예시 키워드  
  - `함수`(function), `만약`(if), `반복`(for), `반환`(return), `변수`(variable), `출력`(print) 등  

### 설계 및 구조
- **Rust 기반 컴파일러 파이프라인**  
  - Lexer → Parser → AST → Interpreter / CodeGen → LLVM IR → clang → Binary  
- **프로젝트 구조**  
  - `src/` — 핵심 컴파일러 및 인터프리터 코드  
  - `editors/vscode/` — VS Code 확장  
  - `examples/`, `spec/`, `tests/` 포함  
- **설계 선택 이유**  
  - LLVM C API 대신 **텍스트 기반 IR 생성**으로 빌드 단순화  
  - 인터프리터는 빠른 실행, 컴파일러는 성능 중심  
  - Rust의 **패턴 매칭과 메모리 안전성**이 언어 구현에 적합  

### 테스트 및 라이선스
- `cargo test`로 46개 테스트(단위 41개, 통합 5개) 수행  
- **MIT 라이선스**로 공개됨  

### 문화적 의의
- Han은 **한글의 아름다움과 프로그래밍의 정밀성**을 결합한 실험적 언어  
- 한국어 학습자와 개발자 모두에게 **언어와 코드의 경계를 허무는 새로운 접근**을 제시함

## Comments



### Comment 53160

- Author: runableapp
- Created: 2026-03-17T01:21:08+09:00
- Points: 2

덕분에 유익한 정보를 얻었네요. 핵심적인 소식을 선별해 주는 GeekNews는 매일 방문하는 즐거움이 있습니다. 저 역시 현재 한글 프로그래밍 언어를 개발 중인 입장에서 이러한 시도가 계속되는 것을 매우 긍정적으로 봅니다.  
  
오랜 해외 생활을 하며 한국의 변화를 지켜본 입장에서, 일상과 산업 전반에 영어가 과하게 침투한 현상은 늘 안타까웠습니다. 판교 사투리나 난해한 아파트 명칭, MSGR같은 기형적인 메뉴, 영어로 점철된 간판들은 우리 언어의 자생력을 해치는 것처럼 보입니다. 비록 조기 교육으로 영어 장벽이 낮아졌다 해도, 모국어가 주는 직관성은 대체 불가능합니다. 마치 해외에서 한글 간판이 번쩍 눈에 띄듯, 우리 뇌는 모국어를 처리할 때 가장 적은 에너지를 소비하기 때문입니다.  
  
   print("Hello, world!");   
   ---  
   출력 "안녕하세요!"  
  
   어떤것이 더 눈에 찰지게 들어오나요?   
  
AI가 언어 장벽을 허물고 있지만, 한글 프로그래밍 언어 연구는 우리 사고 체계에서 불필요한 '번역 레이어'를 제거해 두뇌 효율을 극대화하는 작업입니다. print보다 출력이 더 직관적으로 다가오는 것은 당연한 이치입니다. 범용성이나 취업 시장의 논리로 인해 당장 주류가 되기는 어렵겠지만, 미래에는 더욱 완성도 높고 다양한 한글 언어들이 생태계를 풍성하게 만들기를 기대합니다.

### Comment 53131

- Author: mhcoma
- Created: 2026-03-16T16:17:47+09:00
- Points: 2

한글이라...밯망히질을 멈출 수 없군요.

### Comment 53111

- Author: coremaker
- Created: 2026-03-16T12:41:11+09:00
- Points: 2

씨앗 프로젝트가 생각이 나네요

### Comment 53168

- Author: crawler
- Created: 2026-03-17T08:55:45+09:00
- Points: 1

개발이 아니라 회계 업무를 오래 하신 분 같은데 컴파일러를 만들어서 깃허브 스타 100개를 넘게 받다니..  
정말 AI의 시대가 왔네요

### Comment 53165

- Author: savvykang
- Created: 2026-03-17T07:33:42+09:00
- Points: 1

async-await 말고 비동기-대기 로 코딩할 걸 생각하니 편하긴 하네요

### Comment 53154

- Author: github88
- Created: 2026-03-16T21:44:13+09:00
- Points: 1

범용성이 중요한게 프로그래밍 언어인데..

### Comment 53148

- Author: m00nlygreat
- Created: 2026-03-16T20:11:36+09:00
- Points: 1

해커뉴스 반응이 우호적인 게 웃기네요 ㅋㅋ

### Comment 53140

- Author: nottiger
- Created: 2026-03-16T18:10:39+09:00
- Points: 1

와 멋지네요

### Comment 53110

- Author: bichi
- Created: 2026-03-16T12:37:19+09:00
- Points: 1

안녕 힘세고 강한 아침 !

### Comment 53094

- Author: sea715
- Created: 2026-03-16T11:06:55+09:00
- Points: 1

와우

### Comment 53092

- Author: xguru
- Created: 2026-03-16T11:03:10+09:00
- Points: 1

와 해커뉴스에서 이런 걸 보는 것도 좋네요. 세종대왕님 감사합니다.

### Comment 53069

- Author: neo
- Created: 2026-03-16T05:35:10+09:00
- Points: 1

###### [Hacker News 의견들](https://news.ycombinator.com/item?id=47381382) 
- 한국어 프로그래밍 언어에 관심 있다면 함수형 언어 **‘Nuri’** 를 추천함  
  [Nuri GitHub 링크](https://github.com/suhdonghwi/nuri/)  
  단순히 키워드를 번역하는 수준이 아니라, 실제 **한국어 문법 구조**를 코드에 반영할 수 있음  
  예를 들어 “10을 5로 나누고 출력하다”라고 쓰면 결과로 “2”가 출력됨  
  또 다른 예로 ‘Yaksok’이라는 언어도 있음. [2048 게임 예제 코드](https://github.com/yaksok/yaksok/blob/master/code_examples/2048/%EA%B2%8C%EC%9E%84.yak) 전체가 한국어로 작성되어 있음
  - 피드백 고맙게 생각함. ‘Nuri’나 ‘Yaksok’ 모두 **합리적이고 잘 설계된 언어**라고 생각하지만, 나는 우선 영어 사용자들이 Rust로 번역된 버전을 접할 수 있도록 집중하고 있음. 그게 더 큰 사용자층을 만들 수 있을 것 같음
  - 한국어 단어를 거의 모르지만, ‘Yaksok’이 혹시 일본어 約束(やくそく)과 어원이 같은 단어인지 궁금함

- 정말 멋진 아이디어라고 생각함. 한글은 **논리적으로 설계된 문자 체계**라서 오후 한나절이면 배울 수 있음  
  [한글 학습용 StackExchange 답변](https://korean.stackexchange.com/a/213)
  - 이런 **기억법(mnemonics)** 들이 정말 유용함. 내가 쓰고 있는 한국어 학습 가이드([tolearnkorean.com](https://tolearnkorean.com/))에도 추가할 예정임  
    한글은 알파벳 수가 영어와 비슷해서 금방 익힐 수 있지만, 단어 암기는 조금 더 어려움. 그래서 Anki와 내가 만든 [게임형 학습 앱](https://game.tolearnkorean.com/)을 함께 사용 중임
  - 한국인조차 잘 모를 깊은 지식임. 이 사이트를 GitHub 참고자료로 추가할 예정임. 이런 지원자가 있어서 기쁨
  - 해당 링크를 README의 “Beauty of Hangul” 섹션에 바로 추가했음

- 한국어 원어민으로서 짧게 의견을 나누고 싶음  
  명사는 자연스럽게 번역되지만, **영어의 명령형 동사**는 한국어로 옮길 때 주의가 필요함. 예를 들어 “find”는 ‘찾다’, ‘찾기’, ‘찾음’ 등으로 바꿀 수 있지만 문맥에 따라 어색해질 수 있음  
  또 복수형도 문제임. 영어는 단수·복수를 명확히 구분하지만, 한국어는 그렇지 않음. “단어들”처럼 복수를 명시하면 오히려 부자연스러울 때가 많음  
  단순한 키워드 치환이 아니라, 영어와 한국어의 **구조적 차이**를 고려하면 훨씬 강력한 프로젝트가 될 것 같음

- 대학 시절 컴퓨터공학을 공부하면서, 프로그래밍 언어가 영어 기반이라는 게 영어 사용자에게는 **큰 이점**이라고 느꼈음  
  유학생 친구들은 영어가 익숙하지 않아 배우는 데 더 어려움을 겪었음. 그래서 프로그래밍이 외국어 학점으로 인정돼야 한다는 농담이 꽤 우스웠음
  - 나는 반대로 생각함. 영어를 잘 몰랐을 때도 독학으로 프로그래밍을 배웠음. 결국 언어의 키워드는 몇 개 안 되고, **‘int’가 integer의 약자**인지 몰라도 전혀 문제되지 않았음  
    진짜 어려운 건 프로그래밍 자체를 배우는 것임. 다만 고급 주제나 문서가 영어로만 되어 있는 건 ESL 학습자에게 큰 장벽임
  - 인도에서도 영어가 IT 산업 성장의 큰 이유였음. 지역 언어로 교육받은 친구들이 대학에서 영어로 된 교재를 따라가느라 두 배의 노력을 들였음. **언어 장벽이 인재 낭비**로 이어지는 현실이 안타까움
  - 내 비영어권 친구들도 말하길, 키워드는 프로그래밍 난이도의 1%도 안 된다고 함. 변수나 클래스 이름은 이미 유니코드로 쓸 수 있으니, 번역할 필요가 거의 없음
  - 영어가 글로벌 표준이 된 건 합리적임. 많은 프로젝트에서 영어 사용이 자연스러움
  - 진짜 문제는 키워드가 아니라, **교재·논문·문서**가 전부 영어로 되어 있다는 점임. 키워드 몇 개 외우는 건 30분이면 충분함

- 한국어는 모르지만, 이 스레드 덕분에 **언어학적 통찰**을 많이 배웠음  
  한글의 음운적 설계([링크](https://news.ycombinator.com/item?id=47382219)),  
  한국어 복수형의 특징([링크](https://news.ycombinator.com/item?id=47386312)),  
  LLM 토크나이저와 한국어의 **토큰 압축 문제**([링크](https://news.ycombinator.com/item?id=47381843)),  
  그리고 자음·모음이 손 배치로 나뉜 **한글 자판의 리듬감**([링크](https://news.ycombinator.com/item?id=47382081))이 특히 흥미로웠음

- 이런 시도는 **언어 단편화(fragmentation)** 를 초래할 수 있다고 생각함.  
  모두가 각자 언어로 프로그래밍 언어를 만들면, 협업이나 채용이 어려워지고, 기술 공유도 힘들어질 것임  
  개인적으로는 전 세계가 하나의 언어를 쓰면 전쟁과 오해가 줄어들 거라고 생각함. 물론 문화 다양성은 줄겠지만, **소통의 효율성**은 커질 것임
  - 창작과 실험은 결코 어리석은 일이 아님. 작성자는 예술적 시도로 언어를 만든 것인데, 그걸 정치나 비즈니스 관점으로 비판하는 건 **핵심을 놓친 태도**임
  - 그렇다면 에스페란토로 새로운 프로그래밍 언어를 만들겠다는 뜻인가?

- 단순히 키워드를 번역하는 접근이 흥미로움  
  예시 코드처럼  
  ```  
  펀크 투섬(아래이: 목록[정수], 타개트: 정수) -> 목록[정수]:
  동안 시작 < 끝:
  ```  
  이런 식으로 쓰면 코드가 더 **간결**해질 수 있음. 다만 대소문자 구분의 장점은 사라짐  
  언어 밀도와 관계없이 정보 처리 속도는 비슷하다고 들었음
  - 2000년대 초 중국어 Python 번역 시도가 있었음  
    [관련 블로그 글](http://reganmian.net/blog/2008/11/21/chinese-python-translating-a-programming-language/)  
    하지만 성공하지 못했음. 이미 대부분의 컴퓨터 환경이 **라틴 문자 입력**을 요구하고, 키워드 몇 개 외우는 게 어렵지 않기 때문임
  - 좋은 지적임. ‘Han’은 실제 한국어 단어(함수, 만약 등)를 쓰지만, 예시의 ‘펀크’, ‘아래이’처럼 음역어를 쓰면 **한국어 사용자에게 어색**하게 느껴짐
  - Scratch는 JSON 기반이라 다국어 전환이 쉬움. 하지만 대부분의 프로그래머가 영어 키워드를 유지하는 이유는 문서, 라이브러리, 협업 환경이 모두 영어 중심이기 때문임  
    LLM 시대가 와도 학습 데이터의 대부분이 영어 코드라, 영어 코드가 여전히 **효율적**일 가능성이 높음
  - 일본어의 경우 입력 모드 전환이 번거로워서 프로그래밍에는 **비효율적**임. 한글도 비슷한 문제가 있을 수 있음
  - 예시가 재미있음

- 멋진 프로젝트임. 190여 년 전(!) 한국 대학에 다녔고 지금은 기본적인 한국어만 하지만, 예제 코드를 보며 **단어를 새로 배우는 기분**임

- 이 프로젝트가 정말 마음에 듦. 코드 샘플을 보며 아무것도 이해 못 하면서도, 비영어권 개발자들이 영어 기반 언어를 처음 봤을 때 어떤 느낌이었을지 공감하게 됨  
  Lisp는 여전히 괄호 천국이지만 :-)
  - 진짜 장벽은 키워드가 아니라, 대부분의 **문서와 토론이 영어로만** 되어 있다는 점임
  - 수십 년간 영어 사용이 합리적이었음. 댓글 고맙게 생각함

- 중국의 **Easy Programming Language**가 떠오름  
  [EPL 위키 링크](https://en.wikipedia.org/wiki/Easy_Programming_Language)  
  약 15년 전 중국의 많은 아이들이 이 언어로 프로그래밍을 처음 배웠음
