-
Notifications
You must be signed in to change notification settings - Fork 96
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Feature]: josa 함수 처리에서 누락된 조사를 추가해주세요. #119
Comments
#82 와 일부 중복된 논의겠습니다만, 제시된 조사들도 받침 유무 로직으로 처리가 되다보니 타입으로 제약할 필요는 없어 보여요. 타입을 약간 수정해서 다양한 경우에 사용할 수 있도록 바꿀 수 있지 않을까요? |
동의합니다. |
늦게 코맨트 남겨 죄송합니다. 자세하게 남겨주셔서 감사합니다. 제가 이슈의 주제를 잘 이해하지 못했는데요, |
언급한 이슈에서 결론지어진 방향성이 "그 유용성에 비해 자주 쓰이지 않기에 코드 복잡도 및 유지보수 부담을 줄이기 위해 추가하지 않는다"에 가깝다고 판단했고(제가 비약한 결론이라 아니라면 정정해주세요), 복잡도를 크게 증가시키지 않으면서 다양한 조사를 처리할 방법에 대한 제안이었습니다 |
JosaOption 타입을 없애고 문자열로 다루면 간단해질거라 생각합니다. JosaOption 을 유지하더라도 |
josa옵션의 타입을 지정함으로써 josa 함수를 사용하는 타입스크립트 사용자의 자동완성적인 메리트가 너무 강력하여, string type으로 수정하는것은 어려울 것 같아요. ㅠ 타입은 유지하되, 추가가 필요한 조사들은 추가하는게 좋을 것 같습니다. 한번 추가해두면 유지보수에 크게 어려운 부분은 없을 것 같아요. 구현은 이미 되어있기 때문입니다. 규범인 것, 그리고 예스러운 표기가 아닌것 부터 우선 추가해보면 좋을 것 같다고 생각해요! |
(아까 썼던건 로_조사 에 대한 이해부족으로 삭제했습니다.) 조금 다른 내용이지만, 함께 생각해야 할 것 같아 여기에 적습니다.
type JosaOption =
| '이어/'
| '이에/'
const 에요_조사: JosaOption[] = ['이어/', '이에/'];
const isEndsWith이 = word[word.length - 1] === '이';
if(isEndsWith && 에요_조사.includes(josa)) {
대충 이에->예, 이어->여 로 바꾸는 코드
} |
Description
josa 함수에서 누락된 조사 처리가 있습니다.
아래 목록은 참고를 위해 한국어 단어 데이터베이스 쿼리를 통해 구한 목록이며, 모든 한국어 조사를 포함하지는 않을 수도 있습니다.
목록:
*: 규범 표기가 아님
**: 예스러운 표현
모든 조사를 꼭 지원할 필요는 없지만 몇몇 조사는 종종 쓰이는 경우가 있을 것 같아요. 가령 RPG 웹 게임에서 대사를 만든다든지요.
혹은 조건 나열에도 쓰일 법은 한데, 해당 케이스에는 아마 문장을 통으로 쓸 것 같아서 잘 쓰이진 않을 수도 있겠네요.
Possible Solution
전제 조건
'이에요/예요'
처럼 축약형까지 고려하면 일반화가 꽤나 까다롭습니다)'이'
가 생략되는 형태입니다.해결책
위 조건을 고려할 때, 아래*와 같은 코드로 처리가 가능할 수 있습니다.
JosaOption
에 자주 쓰이는 조사를 미리 등록해두면 해결됩니다.아래*
특수한 조사 옵션
(이)
를 만듭니다.josa(str, '이나/나')
를josa(str, '(이)') + '나'
처럼 쓰게 됩니다.`(이)${string}`
타입을 허용해서josa(str, '(이)나')
처럼 처리할 수도 있습니다.startsWith('(이)')
로 분기를 추가하게 되어 약간의 복잡도가 증가합니다.JosaOption
에 자주 쓰이는 조사를 미리 등록해두면 해결됩니다.etc.
No response
The text was updated successfully, but these errors were encountered: