dragonteros / unsuspected-hangeul

함수형 난해한 언어 '평범한 한글'의 명세와 구현체입니다.
MIT License
56 stars 0 forks source link

옛한글 처리와 관련하여 #12

Closed kmc7468 closed 4 years ago

kmc7468 commented 4 years ago

안녕하세요. 최근 평범한 한글에 큰 개선이 있었는데, 그 중 하나인 옛한글 처리와 관련하여 질문이 있어 이슈 남깁니다.

  1. 옛한글에는 각자병서자와 합용병서자가 있는데, 각자병서자의 경우에는 예사소리로 처리하면 될 것 같습니다만, 합용병서자의 경우에는 어떻게 처리하는 것이 좋을까요? 겹받침처럼 여러 개의 자음으로 분리하여 처리하면 될까요?

  2. 방점 코드만 단독으로 쓰인 경우에는 어떻게 처리해야 하나요?

옛한글과 관련된 질문은 아니지만 문자열 처리와 관련해 몇가지 질문을 더 드리면,

  1. 변경 사항을 보니 모음은 v0.6부터 더 이상 공백으로 취급되지 않는다고 하였는데, 그렇다면 모음은 어떠한 동작을 하나요?

  2. 옛한글을 지원하게 된다면 필연적으로 현대 한글의 조합형도 처리를 할 수 있게 될 것 같습니다만, 그렇다면 조합형으로 표현된 한글 문자열도 완성형으로 표현된 한글 문자열처럼 정상적으로 처리되어야 하나요?

감사합니다.

dragonteros commented 4 years ago

오랜만에 뵙네요 :) 잘 지내셨나요?

  1. 말씀하신대로 각자병서는 예사소리로 취급하고 합자병서는 여러 개의 자음으로 분리해서 처리하고 있습니다. 현대 한글을 다루던 방식을 확장한 것입니다.

  2. 방점 코드만 단독으로 쓰일 경우 그냥 무시합니다. 중성, 종성과 모음도 마찬가지입니다. 초성 외 한글이 초성 사이에 있을 경우에만 이전 명세와 다르게 행동합니다.

  3. 초성만 생각하는 것은 이전과 같습니다. 다만 초성과 초성 사이에 중성/종성/방점 혹은 모음이 오면 두 초성 사이를 떼어놓는 것으로 생각하지 않고 두 초성이 붙어있는 것으로 생각하도록 바뀐 것입니다.

이것은 유니코드 NFC/NFD 정규화를 거쳐도 동일한 행동을 보장하기 위한 방침입니다. 예를 들어 완성형으로 이루어진 '갔다'라는 문자열이 NFD 정규화를 거치면 <초성 ㄱ><중성 ㅏ><종성 ㅆ><초성 ㄷ><중성 ㅏ>로 쪼개지는데, 초성 이외의 한글을 공백 취급하지 않는다는 것은, 이것을 'ㄱ ㄷ '과 같이 해석하지 않고 'ㄱㄷ'으로 해석하겠다는 뜻입니다.

  1. 네, 완성형과 조합형이 호환되도록 명세를 수정했습니다.

좋은 하루 되세요 :)

kmc7468 commented 4 years ago

답변 감사합니다. 저도 예전에 아희를 확장한 언어를 만들다가 고려해야 될 점이 많아 포기하였는데 완전히 다른 컨셉트의 언어를 재미있고 독창적인 아이디어로 계속 확장해 나가시는 점이 정말 부럽습니다. 평범한 한글 구현체라도 어서 다시 구현을 시작해야 할텐데.. dragonteros님께서도 좋은 밤 보내시길 바랍니다.