Coding/Python Matlab
Python - 한글 입력 조합 오토마타
smores
2024. 9. 19. 04:47
~~~~~~~~~~~~~~~~~~
실시간으로 조합하는 것이 아니라, 이미 키가 다 입력이 된 상태라 가정하고 조합해 내는 오토마타.
3327 한글 데이터의 변환을 위해 이전의 pyautogui 를 이용해서 윈도우즈의 노트패드에 키 입력을 시켜서 윈도우즈의 한글 입력 오토마타를 이용하는 것이 아니라, 파이썬 jamo 라이브러리를 이용하여 데이터 자체를 바로 조합된 UTF-8 스트링으로 바꿔주게끔 하기 위함. 실시간 입력기에 사용하려면 별도로 추가적인 기능을 포함한 오토마타 프로세스를 작성해야 한다. 왜냐하면 백스페이스 대응, 실시간 자모 조합 변화과정을 스크린에 보여주는 기능 등이 다 필요하기 때문. 이번 코드는 이미 입력이 완료된 상태에서 키보드 키 값만을 가지고 조합해 내는 간소화된 오토마타이기 때문에 중간 변화과정 처리와, 그 과정의 실시간 화면 모니터링 같은 것이 필요 없기에 훨씬 수월하게 해 낼수 있었다.
현재는 한글 모드라 가정하고 영어 알파벳은 섞이지 않고 대신 숫자, 기호는 한글과 함께 처리된다. 영어를 입력하려면 영어/한글 모드 변환 코드(예를 들어 3327 한글이라면 CTRL+A/K)를 사용해서 모드 변환을 하면 된다. 마치 윈10이라면 한영 변환 키를 누르면 토글되는 것과 같은 셈.
한편 jamo 라이브러리를 잘 활용하면 조합형(KSSM)과 완성형 (UTF-8) 코드 상호 변환기도 엄청 수월하게 만들 수 있을 것으로 판단됨.