날개셋 한글 입력기 10.5가 당초 예상보다 일찍 완성되고 공개됐다. 다음 버전 개발 근황을 올리고서 곧바로 다음 버전 완성 공지를 올리게 될 줄이야.. =_=;;
문서에다가는 6월 1일이라고 기재했지만 사실 그 전날 아침에 미리 올라왔다. 타자연습은 변함없으며 API 역시 호환된다.
오랜 작업의 결과물이 드디어 세상에 publish되니 개인적으로 몹시 홀가분하고 기쁘다.
UI 쪽의 변화 사항에 대해서는 이미 지난번 글에서 자세히 소개했다. 편집기를 사용하지 않고 외부 모듈만 라이트하게 사용하는 분이라면 변화 사항들이 그리 와 닿지 않을지 모르겠다. 하지만 이번 버전에서는 외부 모듈의 안정성도 향상된 게 있기 때문에 버전업이 누구에게나 의미가 있을 것이다.
이 글에서는 새로운 기능 소개 말고 외부 모듈 관련 이슈, 그리고 개발 관련 다른 잡다한 썰들을 늘어놓도록 하겠다.
1. Google Chrome + Google Docs 에서 한글 조합이 덧나는 문제: 해결
크롬 브라우저에서 주소 입력란이나 웹페이지 내부의 일반적인 텍스트 입력 폼에서는 괜찮은데.. 유독 Google Docs를 열어서 문서를 편집할 때 자잘한 문제가 또 있었다.
거기서 내 프로그램으로 한글을 입력하던 중에 마우스로 딴 데를 클릭하면.. 조합 중 글자가 덧나는 문제가 여전히 남아 있었다. 이 버그는 지금까지 거의 네댓 분으로부터 거듭 신고를 받았다.
수 년 전, 크롬 브라우저가 버전 70대이던 시절에도 비슷한 문제가 있었다. 그때는 내 쪽에서 동작을 수동 보정해서 회피했는데.. 또 크롬에서 자체적으로 버그를 고치기도 한 것 같아서 보정 동작을 삭제했다.
그런데 예전에 만들어 놨던 보정 로직을 되살려 보니까 Google Docs 문제는 해결되지만, 크롬의 다른 입력 창에서는 이제 글자가 덧나는 게 아니라 멀쩡한 글자까지 지워져 버리는 부작용이 발생했다. =_=;; 동일 프로세스에서 서로 다른 에디팅 엔진을 사용하다니.. 더 똑똑한 로직을 새로 개발하는 게 불가피해졌다.
다른 마소 IME, 한컴 입력기, 나빌 입력기는 괜찮은데 내 프로그램에만 이런 버그가 있는 이유는..
내 프로그램은 조합이 외부에 의해 종료될 때 조합 중 문자열을 다시 써 주는 동작이 있기 때문이다.
이걸 생략해 주니 크롬의 두 입력 환경에 모두 오류 없는 입력 동작을 구현할 수 있었다. 수동 보정으로 문제를 해결했다.
저 동작이 꼭 필요한 입력 방식은 초성 지향 두벌식이라고 '한'을 먼저 '하ㄴ'이라고 표시했다가 조합이 외부에 의해 종료됐을 때 '한'으로 바꿔서 확정짓는 소수의 특이한 방식 말고는 거의 없다.
바꿔 말하면 Chrome이나 Edge 브라우저에서는 한 메이저한 버그를 보정하기 위해서 다른 마이너한 부작용을 남겼다.
2. 자주 받은 문의: 비조합 문자를 입력할 때의 문제
저 버그 신고 말고 본인이 자주 받은 문의는 이것이었다. 내 프로그램으로 콜맥 같은 영문 글자판을 사용해서 한글이 아닌 일반 문자가 Visual Studio Code라든가 몇몇 외국산 프로그램에서 제대로 입력되지 않는다는 거.
이건 명백하게 내 프로그램이 아니라 해당 프로그램들이 IME 지원이 미흡해서 발생하는 현상이다. 기존 MS 한글 IME로도 두벌식이 아닌 세벌식으로 숫자나 기호를 입력해 보면 100% 똑같이 발생한다.
서구권에서 살다 보니 IME라는 게 뭔지 몰라서 IME로부터의 지시는 무조건 한글처럼 조합을 만드는 형태밖에 없다고 생각한 게 아닌가 싶다.
그러므로 원래는 그 프로그램이 고쳐져야 마땅하다. 그러나 내 프로그램 쪽에서 문자를 보내는 방식을 바꿔서 문제를 회피할 수는 있다.
그 글자를 IME 방식으로 보내는 게 아니라 일반적인 키보드 메시지 형태로 보내게 하는 거다. 걔들은 어차피 한글도 아니니까.
글쇠배열 편집기에서 "전체 간소화 - 문자를 글쇠 누름으로" 기능을 알려 드렸더니 문제가 잘 해결됐다고 회신이 왔다.
3. Visual Studio 검색란에서 한자 선택 UI: 해결 불가
이건 사용자로부터 문의를 받은 건 아니고 본인이 자체적으로 발견하고 파악한 현상이다.
개발툴 Visual Studio에서 일반적인 텍스트 에디터 말고 Ctrl+Q로 접근하는 짤막한 한 줄짜리 검색란은 뭔가 비범한 환경인 것 같다. 10년쯤 전 엄청 옛날에도 여기서만 한글 입력이 제대로 진행되지 않던 문제가 있어서 해결했던 기억이 나는데..
여기서 한자 선택 UI를 꺼내면 마우스를 클릭해도 UI가 전혀 동작하지 않고 그냥 사라져 버렸다.
이건 마소 IME 등 어떤 IME를 써도 마찬가지이기 때문에 내 프로그램의 문제는 아니다. 도대체 무슨 동작을 하는지는 모르겠지만 마우스 hook이라도 설치하는가 보다.
그런데 마소 IME는 그냥 곱게 꺼지기만 하는데, 내 프로그램은 몇 번 써 보면 프로그램이 뻗기까지 해서 문제..
디버깅을 해 보니 프로그램 상태가 외부에 의해 불가항적으로 통제 불가능한 상태로 바뀌는 것이어서 뭘 해 볼 수 있는 게 없다.
그래서 이건 불가피하게 해결 불가로 남기고, 도움말 "알려진 문제"에다가 언급만 해 놨다.
4. 잡설: 원고지 떡밥
문득 떠오르는 생각인데.. 날개셋 편집기에 원고지 형태 인쇄 기능은 넣기에 굉장히 적절한 기능인 것 같다. 얘는 서식을 전혀 지원하지 않는 쌩짜 plain 텍스트 편집기임에도 불구하고 프로그래머 코딩보다는 자연어 텍스트의 입력에 더 맞춰져 있으며, 취급하는 문자도 형태가 전각 아니면 반각밖에 없어서 문자 배치가 아주 간편하기 때문이다.
그러니 기능이 너무 많은 워드 프로세서보다는 이런 프로그램에다가 원고지 인쇄 기능을 넣는 게 원론적으로 훨씬 더 나을 것이다.
하지만 현실적으로는 이제 원고지라는 물건 자체가 거의 쓰이지 않으니 만들어도 쓸모가 별로 없다. 굳이 이런 기능을 구현하고 싶지는 않다.
텍스트 파일을 읽어서 원고지 형태로 인쇄하는 기능 구현은 Visual C++ / Windows API 프로그래밍 실습용으로도 적당할 듯하다. 그래픽, 인쇄, 각종 좌표 계산과 문자열 문단 정렬, 금칙 처리 같은 것들이 두루 동원되기 때문이다.
5. 나머지 남은 얘기들
(1) 이번 10.5 버전에서는 도움말 "감사의 글"에 공 병우 박사뿐만 아니라 송 현 선생도 최초로 언급하기 시작했다. 이분도 돌아가신 지 벌써 1년이 넘었으니 말이다. 정작 2022년에는 프로그램 버전업이 한 번도 없었기 때문에 지금까지 이 문구가 들어갈 기회가 없었다.
(2) 오랫동안 버전업이 없던 동안에도 꾸준히 후원을 해 주신 분들께 정말 감사드린다. 요 며칠 전에도 후원이 들어왔다.
하지만 10.5 작업을 해 보니 본인의 코딩 감각은 여전히 죽지 않았다는 걸 개인적으로 확인할 수 있었다. ^^
(3) 다음 버전은 올해 가을이나 겨울 연말쯤에 10.7 정도로 잡고 있다. 편집기, 제어판, 보조 입력 도구 곳곳에 이번에 다 완료하지 못한 UI 개선을 반영하고.. 여유가 되면 좀 더 어려운 성능 최적화도 할 예정이다. 작업 리스트는 다 마련되어 있다.
Posted by 사무엘