Skip to content

KingSejong 언어 로드맵 ​

비전: 한국어로 누구나 쉽게 프로그래밍할 수 있는 세상

최종 업데이트: 2026-11-03 현재 버전: v0.7.0 (다음 버전의 변경 사항은 CHANGELOG.md 의 Unreleased 에 쌓인다) 중요 문서: 프로젝트 개요 | 기능 명세 | 구현 상태 | 설계 철학


🎉 v0.5.0 릴리스 완료! ​

릴리스 날짜: 2025-11-23 GitHub 릴리스: https://github.com/kingsejong-lang/kingsejong-lang/releases/tag/v0.5.0

주요 성과 ​

  • ✅ VM & Evaluator 리팩토링 완료 - 코드 가독성 93% 향상
  • ✅ Tail Call Optimization - 326배 성능 개선 (2025-11-24)
  • ✅ Playground 대폭 개선 - 17개 템플릿 지원
  • ✅ 표준 라이브러리 251개 함수 - HTTP, DB, 암호화 등
  • ✅ 코드 품질 도구 - .ksjlintrc, .ksjfmtrc 지원
  • ✅ 1,519개 테스트 100% 통과

상세 내용: CHANGELOG.md


v0.6.0 릴리스 ​

릴리스 날짜: 2026-10-26 (목표였던 2026년 11월 말보다 앞당겼다. 처음 목표는 2026년 2월이었다) 마이그레이션: MIGRATION_v0.6.md

범위: CHANGELOG 의 Unreleased 에 이미 쌓인 변경만 담는다. v0.5.0 이후 1년 가까이 고침·제거가 쌓였고 v0.5.0 에서는 가져올 수 없던 stdlib 모듈도 있어, 새 기능을 더 기다리지 않고 지금 상태를 릴리스한다. 아래 "v0.6.0 이후로 미룬 작업" 은 v0.7.0 범위로 옮겼다.

릴리스 전 할 일 ​

완료된 작업 (2025-11-24) ​

  • 함수 인라이닝 (JIT Tier 2) — 네이티브 함수를 만들지 못한 채 남아 있어 2026-10 에 제거했다. 다시 할 때는 VM 이 평가기와 동치가 된 뒤에 시작한다.

  • ✅ 성능 회귀 테스트 확장

    • 추가 벤치마크 케이스 작성 (array_ops, memory_test)
    • CI/CD 통합 (GitHub Actions regression-test job)
    • 모든 벤치마크 100% 통과
  • 릴리스 노트 작성 — 초안이 JIT Tier 2 를 다루고 있어 기능 제거와 함께 CHANGELOG 에서 지웠다.

완료된 작업 (2026-10) ​

  • ✅ 바이트코드 VM 을 평가기와 동치로 재작성 — 예제 51개가 --vm 에서도 같은 결과를 내고, 패턴 매칭·가져오기도 VM 이 직접 처리한다. 오류 위치에 열과 캐럿이 나온다.
  • ✅ 조사 메서드 체이닝 — 목록을 걸러낸다(f)를 변환한다(g) 와 사용자의 이름을 출력한다 가 왼쪽부터 적용된다.
  • ✅ 문서 검증 — 사용자 가이드·튜토리얼·표준 라이브러리 레퍼런스의 코드 블록을 인터프리터로 실행해 실제 문법과 결과에 맞췄다.
  • ✅ 버전 표기 단일화 — --version, REPL, LSP 가 CMakeLists.txt 의 버전 하나를 쓴다.
  • ✅ CI 강화 — Valgrind 잡이 테스트 전체를 돌리고 메모리 오류·누수가 있으면 실패한다.
  • ✅ 쓰이지 않던 기능 제거 — JIT Tier 1·2, ksjpm 패키지 관리자.

v0.6.0 이후로 미룬 작업 (v0.8.0 범위) ​

  • [ ] 최종 안정화

    • [ ] 성능 프로파일링 및 최적화
    • [x] 메모리 누수 검사 — CI 의 Valgrind 잡이 테스트 전체를 돌리고 누수가 있으면 실패한다. 환경 순환 참조는 EnvironmentLeakTest 가 확인한다
    • [ ] 엣지 케이스 테스트 강화
  • [ ] 문서 완성

    • [x] API 문서 자동 생성 (Doxygen) — main 에 푸시할 때마다 Pages 의 /api/ 에 배포한다
    • [ ] 튜토리얼 시리즈 확장
  • [x] 커뮤니티 구축


v0.7.0 릴리스 ​

릴리스 날짜: 2026-11-03 마이그레이션: MIGRATION_v0.7.md

범위: kingsejong-examples 를 쓰며 찾은 언어 문제와, C 의 libc 정도 되는 표준 라이브러리를 KingSejong 코드로 쓰는 데 필요한 결정(STDLIB_READINESS.md 4장)을 담는다. 처음 v0.7.0 에 두었던 안정화·stdlib 확장·네이티브 확장 모듈 API 는 v0.8.0 범위로 옮겼다.

  • ✅ 반복 제어 중단 / 계속
  • ✅ 정수 오버플로를 실행 오류로 정의하고 감싸 도는 내장 함수(감싸더하기 등) 추가
  • ✅ 조건은 참/거짓 만 받음 (실행 중에도)
  • ✅ 반복문 회차마다 새 범위 (클로저가 회차의 값을 잡는다)
  • ✅ 배열·딕셔너리 값 비교, 깊은 재귀의 segfault, 짧은 이름 뒤 범위 표시, 린터 오탐 수정

릴리스 전 할 일 ​


📋 단기 계획 ​

코드 품질 도구 ​

우선순위: 낮음 | 예상 기간: 1주

  • [ ] Formatter VS Code 확장 Marketplace 배포
    • [x] 확장 패키징 — npm run package 가 .vsix 를 만들고 CI 가 아티팩트로 남긴다
    • [ ] VS Code Marketplace 등록
    • [ ] 배포 및 홍보
  • [x] 편집기 린터 진단 — 언어 서버가 kingsejong lint 와 같은 규칙을 돌려 경고 밑줄로 보낸다. .ksjlint.json 을 따르고 kingsejong.lint.enable 로 끈다

🔮 장기 계획 (Phase 10+) ​

네이티브 확장 모듈 API (v0.8.0) ​

우선순위: 중간 | 예상 기간: 3-4주

지금은 네이티브(C++) 함수가 모두 인터프리터 안(src/evaluator/Builtin.cpp)에 있고, 가져오기 는 .ksj 파일만 불러온다. 외부 C/C++ 라이브러리가 필요한 GUI·ML 모듈을 본체 빌드에 넣으면 의존성과 CI 가 무거워지므로, 별도 저장소에서 만들어 불러올 수 있는 길을 먼저 연다.

  • [ ] 공유 라이브러리(.so/.dylib/.dll)로 내장 함수를 등록하는 C ABI 와 버전 검사
  • [ ] 가져오기 가 네이티브 모듈을 찾는 규칙 (KINGSEJONG_PATH 와 같은 탐색 순서)
  • [ ] --sandbox·--untrusted 에서 네이티브 모듈을 막거나 허용 목록으로만 여는 정책
  • [ ] 예제 네이티브 모듈과 개발 가이드

이 API 가 생기면 stdlib/gui·stdlib/ml 은 kingsejong-gui·kingsejong-ml 같은 별도 저장소로 시작한다. stdlib/network·collections 는 본체에 둔다(이미 포함된 httplib 와 샌드박스 권한 검사, 순수 .ksj 구현).

표준 라이브러리 고도화 (v0.8.0) ​

우선순위: 중간 | 예상 기간: 각 2-3주

  • [ ] stdlib/gui.ksj - GUI 프로그래밍 (네이티브 확장 모듈 API 이후, 별도 저장소)

    • [ ] 윈도우 생성 및 관리
    • [ ] Canvas 2D 그래픽
    • [ ] 이벤트 루프 및 핸들러
    • [ ] 기본 위젯 (버튼, 입력, 레이블)
  • [ ] stdlib/network.ksj - 네트워크 프로그래밍

    • [ ] TCP/UDP 소켓
    • [ ] HTTP 서버 구현
    • [ ] WebSocket 지원
    • [ ] 비동기 네트워크 I/O
  • [ ] stdlib/ml.ksj - 머신러닝/수치 계산 (네이티브 확장 모듈 API 이후, 별도 저장소)

    • [ ] NumPy 스타일 배열 연산
    • [ ] 선형대수 연산
    • [ ] 기본 ML 알고리즘
    • [ ] TensorFlow/PyTorch 바인딩
  • [ ] stdlib/collections 고도화

    • [ ] 우선순위 큐
    • [ ] 그래프 자료구조
    • [ ] 트리 (AVL, Red-Black)
    • [ ] 불변 컬렉션

LLVM 백엔드 (v0.10.0, 선택) ​

우선순위: 낮음 | 예상 기간: 2-3개월

  • [ ] LLVM IR 생성 파이프라인
  • [ ] AOT 컴파일 및 실행 파일 생성
  • [ ] 최적화 패스 구현
  • [ ] 목표 성능: V8 대비 80~90%

멀티스레딩 지원 (v0.10.0) ​

우선순위: 중간 | 예상 기간: 1-2개월

  • [ ] 스레드 생성/관리 API
  • [ ] 동기화 도구 (뮤텍스, 세마포어, 조건 변수)
  • [ ] 채널 기반 통신 (Go 스타일)
  • [ ] 스레드 안전성 가이드

메모리 최적화 (v0.9.0) ​

우선순위: 중간 | 예상 기간: 1개월

  • [ ] Incremental GC 도입
  • [ ] 메모리 풀링 최적화
  • [ ] 세대별 GC 개선

📅 타임라인 ​

[완료]
2025-11-17   Phase 6 완료 (JIT Tier 1) — 2026-10 제거 (x86-64 에서 스택 손상, VM 은 실험 플래그로 유지)
2025-11-19   Phase 7 완료 (클래스, Async, 세대별 GC) ✅
2025-11-20   Phase 8 완료 (코드 품질, 문서화) ✅
2025-11-21   Phase 9 완료 (VM & Evaluator 리팩토링) ✅
2025-11-23   v0.5.0 릴리스 ✅
2025-11-24   Tail Call Optimization (TCO) 구현 완료 ✅
2025-11-24   함수 인라이닝 (JIT Tier 2) 착수 (2026-10 제거)
2025-11-24   성능 회귀 테스트 확장 완료 ✅

2026-10      VM 재작성, 조사 체이닝, 문서 검증, stdlib 결함 수정 ✅
2026-10-26   v0.6.0 릴리스 (안정화·문서 검증 버전) ✅
2026-11-03   v0.7.0 릴리스 (반복 제어, 언어 의미 정리) ✅

[예정]
미정         v0.8.0 - 안정화·문서 완성, stdlib 확장
미정         v0.9.0 - Incremental GC, 메모리 최적화
미정         v0.10.0 - LLVM 백엔드 (선택), 멀티스레딩
             ※ 처음 계획(v0.6.0 2026-02, v0.7.0 2026-09)이 9개월 넘게 밀렸다. 처음 v0.7.0 에 두었던 안정화·stdlib 확장은 v0.8.0 으로 옮겼다

🎯 버전별 성공 기준 ​

v0.6.0 (2026-10-26 릴리스) ​

  • ✅ 예제 51개가 평가기와 --vm 에서 기대 출력과 같다
  • ✅ 사용자 가이드·튜토리얼·stdlib 레퍼런스의 코드 블록이 실제로 실행된다
  • ✅ 성능 회귀 테스트 자동화
  • ✅ CI(Linux·macOS·Windows, Valgrind)가 main 에서 통과한다
  • ✅ 마이그레이션 가이드와 릴리스 노트(CHANGELOG [v0.6.0] 절)

v0.7.0 (2026-11-03 릴리스) ​

  • ✅ 새 언어 동작(반복 제어, 오버플로, 엄격한 조건, 회차 범위)이 평가기와 --vm 에서 같다
  • ✅ kingsejong-examples 의 레슨이 모두 기대 출력과 같다
  • ✅ CI(Linux·macOS·Windows, Valgrind, ASan·UBSan)가 main 에서 통과한다
  • ✅ 마이그레이션 가이드와 릴리스 노트(CHANGELOG [v0.7.0] 절)

v0.8.0 (일정 미정) ​

  • 🎯 API 문서 완비 (Doxygen 자동 생성)
  • 🎯 커버리지 보고서 80% 이상
  • 🎯 커뮤니티 구축 (GitHub Discussions)
  • 🎯 stdlib 251+ → 350+ 함수 확장
  • 🎯 GUI, Network, ML 라이브러리 추가
  • 🎯 성능 개선 (Python 대비 3-5배)

v0.9.0 (일정 미정) ​

  • 🎯 Incremental GC 도입
  • 🎯 메모리 풀링 최적화
  • 🎯 메모리 사용량 50% 감소

v0.10.0 (일정 미정) ​

  • 🎯 LLVM 백엔드 완성 (선택)
  • 🎯 AOT 컴파일 지원
  • 🎯 네이티브 실행 파일 생성
  • 🎯 V8 대비 80~90% 성능 (LLVM 사용 시)
  • 🎯 멀티스레딩 완전 지원

🚀 다음 우선순위 작업 ​

1. 문서 정리 및 개선 - 단기 ​

기간: 1-2주 | 난이도: 낮음

문서 구조 재정비, 사용자 가이드 vs 튜토리얼 목적 명확화, README 간소화를 진행합니다.

2. v0.8.0 준비 - 중기 ​

기간: 미정 | 난이도: 중간

v0.6.0(2026-10-26)에서 미룬 안정화·문서 완성·커뮤니티 구축과 포매터 지원 확대, 부모 메서드 호출(상위)을 다룬다.

3. stdlib 고도화 - 장기 ​

기간: 3-6개월 | 난이도: 높음

GUI, 네트워크, 머신러닝 라이브러리를 추가하여 실용성을 높입니다.


💡 장기 비전 ​

기술적 목표 ​

  • 아키텍처: tree-walking 평가기 (기본) + 바이트코드 VM (--vm, 평가기와 동치. 값 의미는 Evaluator 의 정적 함수로 공유)
  • 성능: Python 대비 3-5배, V8 대비 80-90% (LLVM 사용 시)
  • 메모리: 효율적인 GC + 선택적 메모리 풀링
  • 확장성: 모듈 시스템, 패키지 관리자

철학 ​

  • 훈민정음의 디지털 후계자: 배우기 쉽고 사용하기 편한 언어
  • 한국어 프로그래밍: 자연스러운 한국어 문법과 키워드
  • 실용성: 교육부터 프로덕션까지 활용 가능

커뮤니티 ​

  • 교육: 초중고 프로그래밍 교육 도구
  • 기업: 한국 기업의 내부 도구 및 자동화
  • 연구: 한국어 NLP 및 언어 연구
  • 오픈소스: 활발한 기여자 커뮤니티

📚 관련 문서 ​


🛠️ 개발 가이드 ​

빌드 및 테스트 ​

bash
# 빌드
mkdir build && cd build
cmake ..
make -j8

# 테스트
ctest --output-on-failure

# 메모리 검사
cmake -DCMAKE_CXX_FLAGS="-fsanitize=address -g" ..
make && ctest

커밋 규칙 ​

feat: 새 기능 추가
fix: 버그 수정
refactor: 코드 리팩토링
test: 테스트 추가
docs: 문서 수정
perf: 성능 개선

마지막 업데이트: 2026-10-26

MIT License