피드로 돌아가기
Show GN: Gukhanmun: 국한문을 한글 전용으로 바꾸는 Rust/JavaScript 라이브러리
GeekNewsGeekNews
Backend

Show GN: Gukhanmun: 국한문을 한글 전용으로 바꾸는 Rust/JavaScript 라이브러리

Viterbi 알고리즘 기반 국한문 변환 및 Rust/Wasm 멀티 런타임 지원 라이브러리

hongminhee2026년 6월 15일2intermediate

Context

단순 독음 대응표 기반 변환 시 발생하는 두음법칙 및 단어별 특수 발음 처리의 한계 존재. 특히 단순 Greedy Matching 방식의 토큰 분할로 인한 오독 발생 문제를 해결해야 하는 상황.

Technical Solution

  • Viterbi 알고리즘 기반의 Dynamic Programming을 적용하여 최적의 단어 분할 경로를 탐색하는 Lattice 구조 설계
  • Greedy 방식의 한계를 극복하고 문맥상 가장 적절한 토큰 조합을 선택하는 최적화 로직 구현
  • no_std 및 alloc 환경 지원을 통해 임베디드 시스템까지 확장 가능한 gukhanmun-core 설계
  • WebAssembly(Wasm) 및 NAPI-RS를 활용하여 Rust 핵심 로직을 JS/TS 생태계로 전이시킨 멀티 런타임 아키텍처 채택
  • 표준국어대사전을 라이브러리 내장하여 외부 의존성 없는 독립적 실행 환경 구축
  • HTML, Markdown 등 다양한 포맷 대응 및 루비 마크업 출력 옵션 제공을 통한 데이터 유연성 확보

1. 최장 일치(Longest Match) 방식의 토큰 분할 시 발생 가능한 오분석 사례를 점검하고 DP 기반의 경로 최적화 도입 검토

2. 고성능 연산이 필요한 핵심 로직은 Rust로 구현 후 Wasm/NAPI를 통해 타 언어 환경으로 배포하는 전략 활용

3. 하드웨어 제약이 있는 환경을 고려하여 no_std 지원 여부를 설계 단계부터 정의

원문 읽기