문서보기
소개

es-hangul 소개

npm version (opens in a new tab) npm (opens in a new tab)

한글을 다루는 제품을 개발할 때, 초성 검색, 정확한 조사 붙이기와 같은 작업을 수행해야 할 경우가 많습니다. 그 외로 초성, 중성, 종성 등의 한글을 분리하거나 결합해야 하는 경우도 있죠. es-hangul은 이렇게 비즈니스에서 반복적으로 발생하는 한글 관련한 기능을 쉽고 빠르게 구현할 수 있도록 돕습니다.


어떤 이유로 사용하나요?

가볍습니다 (Tree-shakable)

ECMAScript Modules를 이용하여 사용하는 함수만 애플리케이션에 포함할 수 있습니다. 예를 들어, josa 함수를 사용하는 경우, 해당 함수와 연관된 로직만 애플리케이션에 포함됩니다. 또한 한글을 다루는 데에 필요한 최소한의 코드를 제공함으로써, 사용자가 내려받는 JavaScript의 크기를 줄일 수 있습니다. (전체 라이브러리가 Gzip 압축 기준 1KB 정도입니다.) es-hangul's badge (opens in a new tab)

신뢰할 수 있습니다

우리는 커버리지 100%를 목표로 모든 기능을 테스트하기 위해 노력하고 있습니다. codecov (opens in a new tab)

TypeScript를 지원합니다

강력한 타입을 제공해 개발 단계에서 타입 오류를 쉽게 감지할 수 있습니다.

한글을 위한 모든 인터페이스를 제공하는 것을 목표합니다

다양한 애플리케이션에서 편리하게 사용할 수 있는 현대적인 API를 제공합니다.

초성 검색 (chosungIncludes)

초성이 특정 단어에 포함되어 있는지 검사합니다. 예를 들어, '라면'이라는 단어가 'ㄹㅁ'으로 시작하는 초성을 포함하는지 쉽게 알 수 있습니다.

import { chosungIncludes } from 'es-hangul';
 
const searchWord = '라면';
const userInput = 'ㄹㅁ';
 
const result = chosungIncludes(searchWord, userInput);
console.log(result); // true

초/중/종성 분해 (disassembleHangul)

주어진 한글 문자열을 초성, 중성, 종성으로 분해하여 배열 형태로 반환해 문자열을 더 세밀하게 분석하거나 수정할 수 있습니다.

import { disassembleHangul } from 'es-hangul';
 
const word = '안녕하세요';
const disassembled = disassembleHangul(word);
console.log(disassembled); // 'ㅇㅏㄴㄴㅕㅇㅎㅏㅅㅔㅇㅛ'

조사 처리 (josa)

단어의 마지막 글자가 받침이 있는지 여부에 따라 적절한 조사를 자동으로 선택합니다.

import { josa } from 'es-hangul';
 
const word1 = '사과';
const sentence1 = josa(word1, '을/를') + ' 먹었습니다.';
console.log(sentence1); // '사과를 먹었습니다.'
 
const word2 = '바나나';
const sentence2 = josa(word2, '이/가') + ' 맛있습니다.';
console.log(sentence2); // '바나나가 맛있습니다.'

한글을 잘 다루기 위한 좋은 아이디어가 있다면 알려주세요 GitHub Issue로 기능 제안하기 (opens in a new tab)