josa
프로그램에서 한글을 사용할 때 마주치는 문제 중 하나는 명사가 동적으로 생성되는 경우 조사도 이에 맞춰 동적으로 결정되어야 한다는 점입니다. _josa_는 이 문제를 해결하기 위한 라이브러리로, 입력받은 명사의 형태에 적법한 조사를 찾아줍니다.
설치
npm install --save josa
사용법
Node.js
// ES2015 module// CommonJSconst josa getJosaPicker makeJosaify =// => '친구가 선생님과 함께 학교로 간다.'const book =// => '자연의 이야기들은 쥘 르나르가 쓴 책이고, ISBN은 xxxxxxxxxxxx3이에요.'// => '숫자가 3이 되었다.'// => '값이 7로 바뀐다.'
UMD
/dist/index.umd.js
/dist/index.umd.min.js
테스트 REPL
Josa의 주 함수가 받은 문자열을 어떻게 바꾸는지 간편하게 시험해볼 수 있는 REPL 형식의 웹 어플리케이션입니다.
https://kimdhoe.github.io/josa-app
↑
: 이전 입력↓
: 다음 입력command-k
/ctrl-l
: 화면 초기화ctrl-u
: 입력창 초기화
API
josa(str)
조사 플레이스홀더가 포함된 문자열을 입력받아 완성된 문자열을 반환합니다.
str
- Required
- Type:
string
특징
-
바로 앞의 명사에 따라 플레이스홀더가 적절한 조사로 바뀌거나 없어집니다.
커피#{은} ==> 커피는
커피#{는} ==> 커피는
커피#{이?}다 ==> 커피다
-
플레이스홀더는 해시(
#
) 기호가 붙은 중괄호로 표기하며, 선행명사와 플레이스홀더 사이에 공백이 없어야 합니다. -
플레이스홀더 앞에 소괄호(
(
,)
)로 묶인 글이 올 때 조사의 형태는 괄호 앞의 단어에 따릅니다.둘리(아기 공룡)#{은} ==> 둘리(아기 공룡)는
-
선행명사가 숫자나 영어 알파벳으로 끝나는 경우도 지원합니다.
15 더하기 10#{는} 25#{이에요} ==> 15 더하기 10은 25예요
apple#{는} ==> apple은
tiger#{과} ==> tiger와
A.P.I.#{이} ==> A.P.I.가
L#{를} ==> L을
플레이스홀더
#{은}
/ #{는}
)
은/는 ( // => '호랑이는 사슴은' // => '호랑이는커녕 사슴은커녕'
#{이}
/ #{가}
)
이/가 ( // => '호랑이가 사슴이'
#{을}
/ #{를}
)
을/를 ( // => '호랑이를 사슴을'
#{와}
/ #{과}
)
와/과 ( // => '호랑이와 사슴과 너구리'
#{이어}
/ #{여}
)
이어/여 ( // => '호랑이여서 사슴이어서'
#{으로}
/ #{로}
)
으로/로 ( // => '여기로부터 집으로 회의실로'
#{이에요}
/ #{예요}
)
이에요/예요 ( // => '여우예요 사슴이에요'
#{이었}
/ #{였}
)
이었/였 ( // => '호랑이였는데 사슴이었나'
#{아}
/ #{야}
)
아/야 ( // => '두꺼비야 밝은 달아'
#{이?}
)
이/- ( 여러 상황에서 쓰일 수 있는 플레이스홀더로, '이'
혹은 빈 문자열로 바뀝니다.
// => '개라고 사슴이라는데' // => '개고 사슴이다' // => '개요 사슴이요' // => '개나 사슴이나' // => '개든 사슴이든' // => '개랑 사슴이랑' // => '개란 사슴이란' // => '개나마 사슴이나마' // => '개야말로 사슴이야말로' // => '하늘이시여 부처시여' // => '왕이여 나그네여'
getJosaPicker(josa)
명사에 맞는 조사를 찾아주는 함수를 반환합니다.
josa
- Required
- Type:
string
const eulLeul = // 혹은 getJosaPicker('를') // => '을' // => '를'
makeJosaify(josa)
명사에 조사를 붙이는 함수를 반환합니다.
josa
- Required
- Type:
string
const eulLeulify = // 혹은 makeJosaify('를') // => '치킨을' // => '콜라를'
테스트
npm install npm test
라이센스
MIT @ Kim Donghee