Skip to content

[Bug]: standardizePronunciation의 ‘ㅎ음 처리’ 오류 발생 #353

@sinsohi

Description

@sinsohi

Bug description

standardizePronunciation의 ‘ㅎ음 처리’ 관련해 오류가 있어 이슈 남깁니다.

현재 표준 발음법 제 12항의 기본 조항들은 적용되어 있지만, [붙임 2] 조항이 누락되어 있습니다.

  • 제 12항 [붙임 2]
    [붙임 2] 규정에 따라 'ㄷ'으로 발음되는 'ㅅ, ㅈ, ㅊ, ㅌ'의 경우에도 이에 준한다.

Expected behavior

expect(standardizePronunciation('숱하다')).toBe('수타다')  // but 숟하다
expect(standardizePronunciation('옷한벌')).toBe('오탄벌')  // but 옫한벌

To Reproduce

import { standardizePronunciation } from 'es-hangul';

console.log(standardizePronunciation('숱하다')); // 숟하다
console.log(standardizePronunciation('옷한벌')); // 옫한벌

Possible Solution

받침 'ㅅ, ㅈ, ㅊ, ㅌ'이 뒤 음절 첫소리 'ㅎ'과 결합되는 경우에는, 받침을 'ㄷ'으로 바꾸어 [ㅌ]으로 발음하도록 수정합니다.

  • constant.ts받침_ㄷ_변환 상수 추가
export const 받침_ㄷ_변환 = ['ㅅ', 'ㅈ', 'ㅊ', 'ㅌ'] as const;
  • transform12th.ts 파일의 handleNextChoseongIsㅎ 함수 수정
  // 제 12항 [붙임 2] 로직 추가
  else if (updatedNext?.choseong == 'ㅎ' && arrayIncludes(ㄷ으로_중화되는_받침, updatedCurrent.jongseong)) {

    // 음절의 끝소리 규칙 적용 후 거센소리화 : ㅅ,ㅈ,ㅊ,ㅌ → ㄷ → ㄷ+ㅎ → ㅌ
    updatedNext.choseong = 'ㅌ'
    updatedCurrent.jongseong = '';
  }
  
  return { current: updatedCurrent, next: updatedNext };
}

etc.

안녕하세요!
위에 제시한 해결 방안이 적절한 방향인지, 그리고 혹시 놓친 부분이나 더 고려해야 할 사항들이 있을지 궁금합니다.
만약 이 접근 방식에 문제가 없다면, PR을 작성해서 올려봐도 괜찮을까요?

아직 오픈소스 기여 경험이 많지 않아서, 혹시 코드 스타일이나 프로젝트 컨벤션에 맞지 않는 부분이 있다면 언제든 피드백 주시면 감사히 반영하겠습니다.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions