728x90
한글은 단어의 마지막 글자의 받침 여부에 따라 이/가, 을/를 등의 조사가 달라진다.
이때 한글 글의 받침 여부를 확인해야 정확한 조사를 사용할 수 있다.
어떻게 하면 한글의 받침여부를 확인 할 수 있는지 알아보자.
유니코드에서는 한글 음절 11,172개의 문자 표현이 가능하다.
아래와 같은 범위를 갖는다.
0xAC00(44032) - 가 ~ 0xD7A3(55203) - 힣
한글은 초성 19개,(ㄱ, ㄴ, ㄷ..) 중성 21(ㅏ, ㅑ , ㅓ ...)개, 종성 28개(ㄱ, ㄴ, ㄷ, .. ㄹㅎ, ㄹㄱ ..)를 조합하여 만들어진다.
종성 28개를 기준으로 나열하면 아래와 같은 순서로 되어 있는데 종성이 없는 경우는 매 28번째에 위치하게 된다.
가각갂 ~ 갛 (28)
갸갹갺 ~ 걓 (28)
...
히힉힊 ~ 힣 (28)
각 한글의 문자는 유니코드의 순서대로 나열되어 있기 때문에 받침여부를 확인하고자 하는 문자의 유니코드에서 0xAC00(44032)를 빼면 한글 배열의 순서를 알 수 있게 된다.
이를 28로 나누게 되면 나머지가 0인 경우 받침이 없는 문자를 알아 낼 수 있다.
정리하면, (대상 문자의 유니코드 - 0xAC00) % 28 == 0 이면 받침이 없다라는 얘기다.
예를 들어 "김" 의 경우 0xAE40(44608) 인데 여기서 0xAC00(44032)를 빼면 576이다.
576을 28로 나누면 나머지가 16이 되기 때문에 "김" 은 받침이 있는 문자이다.
아래처럼 Python으로 간단하게 만들어 볼 수 있다.
def has_batchim(character: str) -> bool:
return int((ord(character) - 0xAC00) % 28) == 0
'Tips' 카테고리의 다른 글
git 생성한 브랜치에서 main 브랜치 변경사항 가져오기 (0) | 2023.02.15 |
---|---|
Windows 에서 .pem 파일 권한 설정하기 (0) | 2023.02.10 |
QA 코리아 컨퍼런스 2023 참석 후기 (0) | 2023.01.30 |
SCP를 사용해 파일 전송하기 (0) | 2023.01.25 |
Windows에서 쉽게 큰 Dummy file 만들기 (0) | 2023.01.18 |