소개
한글을 다루는 제품을 개발할 때, 초성 검색, 정확한 조사 붙이기와 같은 작업을 수행해야 할 경우가 많습니다. 그 외로 초성, 중성, 종성 등의 한글을 분리하거나 결합해야 하는 경우도 있죠. es-hangul
은 이렇게 비즈니스에서 반복적으로 발생하는 한글 관련한 기능을 쉽고 빠르게 구현할 수 있도록 돕습니다.
특징
- 크기: 한글을 다루는 데에 필요한 최소한의 코드를 제공함으로써, 사용자가 내려받는 JavaScript의 크기를 줄일 수 있습니다. (전체 라이브러리가 Gzip 압축 기준 1KB 정도입니다.)
- 정확성: 모든 함수는 테스트 코드로 검증되어 버전에 관계없이 정확한 기능을 제공합니다.
- API: 다양한 애플리케이션에서 편리하게 사용할 수 있는 현대적인 API를 제공합니다.
사용 예시
초성 검색
사용자의 입력으로 받은 문자열의 초성이 특정 단어에 포함되어 있는지 검사할 수 있습니다. 예를 들어, '라면'이라는 단어에 'ㄹㅁ'으로 시작하는 초성이 포함되어 있는지 확인할 수 있습니다.
import { chosungIncludes } from 'es-hangul';
const searchWord = '라면';
const userInput = 'ㄹㅁ';
const result = chosungIncludes(searchWord, userInput);
console.log(result); // true
한글 문자열 분해
주어진 한글 문자열을 초성, 중성, 종성으로 분해하여 배열 형태로 반환하는 기능입니다. 이를 통해 문자열을 더 세밀하게 분석하거나 수정할 수 있습니다.
import { disassembleHangul } from 'es-hangul';
const word = '안녕하세요';
const disassembled = disassembleHangul(word);
console.log(disassembled); // 'ㅇㅏㄴㄴㅕㅇㅎㅏㅅㅔㅇㅛ'
자연스러운 조사 처리
한글에서 동일한 단어라도 앞에 오는 단어에 따라 조사가 달라지는 경우가 많습니다. 단어의 마지막 글자가 받침이 있는지 여부에 따라 적절한 조사를 자동으로 선택할 수 있습니다.
import { josa } from 'es-hangul';
const word1 = '사과';
const sentence1 = josa(word1, '을/를') + ' 먹었습니다.';
console.log(sentence1); // '사과를 먹었습니다.'
const word2 = '바나나';
const sentence2 = josa(word2, '이/가') + ' 맛있습니다.';
console.log(sentence2); // '바나나가 맛있습니다.'