flutter_korea_regexp icon indicating copy to clipboard operation
flutter_korea_regexp copied to clipboard

자소 합치기 기능의 일관성 있는 복합자음 합치기

Open viiviii opened this issue 2 years ago • 9 comments

아래 글자의 자소 합치기 결과는 어떻게 예상되시나요?

ㄱㅏㅅㅅㅇㅓ
ㄱㅏㅆㅇㅓ
ㅂㅂㅗㅂㅂㅣ

결과는 갔어, 갔어, ㅂ봅비 입니다.

개요

현재 상태

  • 종성은 쌍받침, 겹받침 모두 합쳐짐 (ㄱㅏㅅㅅ → 갔, ㄱㅏㄴㅎ -> 갆)
  • 초성은 복합 자음이 합쳐지지 않음 (ㅂㅂㅣ → ㅂ비)

제안

  • 자음, 모음 키보드를 두 번 누르는 복합 자모만 합치자
    • 대상: ㅘ ㅙ ㅚ ㅝ ㅞ ㅟ ㅢ, ㄳ ㄵ ㄶ ㄺ ㄻ ㄼ ㄽ ㄾ ㄿ ㅀ ㅄ
  • shift 키를 주로 사용하는 복합 자음(ㄲ, ㄸ, ㅃ, ㅆ, ㅉ)은 제외
    • 제외: ㄲ, ㅆ
    • 기존에 ㄸ, ㅃ, ㅉ는 제외되어 있음

이유

복합 자음을 자소 합치기에서 제외해도 될 것 같다고 생각하는 이유는

  1. 쌍자음이 합쳐질 것 같은데 초성, 종성의 동작이 다르므로 결과가 헷갈릴 수 있다고 생각합니다.
  2. 이 기능을 주로 사용하는 영타 → 한타 기능에서 복합 자음은 영어 대문자로 쓰일 것이기 때문입니다.
  • rkTdj갔어
  • rkttdj갔어보다는 갓ㅅ어를 썼을 가능성이 높음
  1. 맥 OS의 경우 자음을 두 번 눌러 복합 자음을 쓸 수 있지만 초성일 때만 가능합니다.
  • 현재 종성이 되고 초성이 안 되는 것과는 반대됨

예상되는 변경사항

  • ㄱㅏㅅㅅㅇㅓ는 이제 갔어가 아닌 갓ㅅ어로 합쳐짐
  • constant 파일의 상수 MIXED에서 ㄲ, ㅆ 제거됨

주의사항

  • MIXED를 사용하는 다른 곳의 동작이 어떻게 바뀔지 체크 필요
  • 원본 리파지토리와 동작이 달라지게 됨

이 작업으로 기대하는 것

  • 초성, 종성의 일관성 개선
  • assemble()에서 초/중/종성을 한 번 더 합치는데, 초성 로직은 제외할 수 있음
    • 이 작업으로
      • ㄱㄱㅣ → 끼, ㅂㅂㅣ→ ㅂㅂㅣ였던 일관성 개선
      • 초성의 복합 자음을 합치는 로직이 있으나 실제로 합쳐질 일이 없었는데 코드를 명시적으로 제거할 수 있음 (이 메서드를 호출하는 implode()가 초성을 글자 1개만 남긴 후 메서드를 호출하기 때문에)

제가 놓친 부분이나 제외 시 우려되는 부분 등 여러 의견 주세요!👏💪🏽

viiviii avatar Mar 20 '22 08:03 viiviii