날개셋 한글 입력기 10.2

날개셋 한글 입력기가 10.1 이후 4개월 만에 다음 버전(10.2)이 나왔다.
아아.. 개발자의 역량의 한계로 인해 날개셋 한글 입력기의 개발 속도가 점점 느려지는 것 같다. 변화 내역을 보니 옛날 같았으면 버전을 0.1만치 올릴 분량이 안 되는 것 같은데.. -_-;;

그래도 시간이 4개월이나 지났고 아이템들이 마냥 사소한 것만 있지는 않으며, 나름 버전이 10.x인데 굳이 소수점 둘째 자리를 건드릴 필요는 없다는 점을 감안하야 다음 버전을 10.1x 대신 10.2로 정했다.
두 달 전에 소식을 먼저 전했던 바와 같이 외부 모듈의 동작 방식이 개선된 것이 가장 큰 자랑거리이며, 제어판의 외부 모듈 관리 페이지가 동작이 개선된 것도 개인적으로 뿌듯하게 생각한다. 그것 말고 다른 변화를 열거하자면 다음과 같다.

1. 외부 모듈에 자체적으로 겹침 모드 지원

날개셋 한글 입력기 외부 모듈에서 도구모음줄의 버튼들의 종류와 역할은 거의 3.x 버전 시절부터 15년 가까이 변화가 없었다. 그랬는데 이번에 마이너한 버튼이 하나 추가되었다. 바로 자체적인 삽입/겹침 모드 전환이다.

사용자 삽입 이미지

삽입/겹침 모드는 바로 전 10.1 버전부터 이제 날개셋 제어판에서 지정하는 설정이 아니라 각 구현체들이 자체적으로 관리하는 상태로 위상이 바뀌었다.
편집기(= 날개셋 자체 에디트 컨트롤)은 ins 키 내지 상태 표시줄을 클릭해서 삽입/겹침을 지정할 수 있는 반면, 외부 모듈은 그런 게 없었다. 그래서 10.2에서는 이를 보완하는 별도의 버튼이 추가된 것이다.

물론 이 모드는 TSF가 제대로 지원되는 환경에서만 의미를 가지며, 90% 이상의 상황에서는 그냥 삽입 모드로 동작한다. 궁극적으로는 응용 프로그램이 제공하는 겹침 모드와 외부 모듈이 동작하는 겹침 모드가 서로 자동으로 연계되는 게 가장 좋지만.. 그렇지 못한 현 상황에서는 이렇게 아쉬운 대로 겹침 모드를 지정할 수 있게 했다.

아울러, 날개셋 편집기는 1.0 이래로 ins는 삽입/겹침 상태만 전환하고 shift+ins는 낱자/글자만 전환했었다.
그러던 것을 Shift+ins를 누르면 곧장 '낱자+겹침' 모드로 진입하고, ins를 누르면 곧장 '글자+삽입' 모드로 전환되게 동작을 수정했다. 필요할 때 낱자 겹침 모드로 곧장 진입했다가 신속하게 이전 모드로 복귀할 수 있게 한 것이다. 구체적인 동작 로직은 다음과 같다.

사용자 삽입 이미지

아 참.. Windows 10에서는 도구모음줄 버튼들이 저렇게 길게 표시되지 않으니 삽입/겹침 모드도 저렇게 우클릭 메뉴에서 선택해야 한다.
이거 손보는 김에 전자/반자 버튼에 해당하는 메뉴도 수정했다. 지금까지 체크 표시 달랑 하나로 전/반 모드를 나타냈는데.. 그걸 별도의 팝업 메뉴를 통해 선택하고 라디오 버튼 모양을 통해 현재 모드를 나타내게 했다.

정보량이 1비트라고 해서 아무데서나 체크 UI를 사용하지는 말아야 하기 때문이다. 가령, 남/녀 성별을 ‘여자임 체크’ 이런 식으로 지정해서는 안 될 것이다. ㄲㄲㄲ
그나저나 상태 표시줄과 입력 도구모음줄이 동시에 나타나 보이는 버그는 Windows 10 [2004] 버전에서도 고쳐지질 않고 있구나. 이쪽은 아예 out of 안중인 걸까..?

2. 단어 경계 인식 방식 개선

그리고 편집기에서 역시 10년 넘게 변함없던 단어 단위 식별 방식을 개선했다.
일정 길이 이하의 짧은 단어에 대해서는 알파벳, 밑줄, 숫자를 한 덩어리로 인식하게 했다. 이건 텍스트의 더블 클릭 내지 Ctrl+(좌우 화살표/bksp/del)에서 동작을 확인할 수 있다.

이렇게 하니 프로그램 소스 코드에서 16진수 상수나 변수 명칭들이 정확하게 한 단어로 인식되기 때문에 프로그램의 사용성 내지 편의성이 훨씬 더 나아졌다. 문자의 종류가 바뀐다고 괜히 그 안에서 멈출 필요가 없었다. 왜 진작부터 이런 조치를 취하지 않았나 모르겠다.

3. 나머지 자잘한 변화

다음과 같이 여러 자잘한 부분이 수정되고 개선됐다. 심지어 여기에 기록되지 않은 더 자잘한 사항도 있다.

  • 휠을 눌렀을 때 나타나는 동그란 자동 스크롤 패드 그림의 가장자리에다 그림자 효과 추가
  • 편집기 파일 메뉴의 최근 사용 파일 목록에서 현재 열려 있는 파일은 체크 표시
  • 24픽셀 크기에 대해 U+1D00~U+1FFF 비트맵 글립 추가
  • 편집기의 색깔 구성표에 '민트색'도 추가
  • 제어판의 입력 항목 정보 페이지에서.. 외부 키보드 드라이버 같은 파일을 열었던 내역이 날아가 버리던 문제 해결. 다음에 열기/저장을 할 때 보존되게 함
  • 제어판의 '입력 일반' 탭에서 사용자 정의 제2/제3 후보 관련 설정 UI를 더 직관적으로 개선함
  • 입력 도구를 닫았다가 다시 열 때, 무조건 이전 위치가 아니라 현재 존재하는 모니터의 영역도 감안해서 표시되게 개선

※ 넋두리: 디지털 서명의 필요성

2020년대를 맞이하여 날개셋 한글 입력기가 내부의 기능 개발 말고 외부 환경과 관련하여 앞으로 이뤘으면 하는 과업이 두 가지 있다. 하나는 ARM64 지원, 그리고 다른 하나는 디지털 서명이다.;;
전자를 하려면 아무래도 개발용 기기를 구매해야 하는데 본인이 딱히 그걸 들여다 볼 여유가 없다.

그리고 후자도.. 인터넷을 찾아보니 사업자 등록증 없는 개인 개미 개발자에게도 인증서를 발급하는 기관이 있긴 하다. 하지만 이것도 어떤 형태로든 돈이 10만원 이상씩 깨지며, 그것도 한 번만 내고 끝이 아니라 지속적으로 홈페이지 유지 비용만치는 지불해야 한다.

아직까지 디지털 서명 없이 버티고는 있지만.. 이걸 안 하니 각종 게임이나 운영체제의 보안 솔루션에 의해 내 입력기가 강제 종료되거나 심지어 강제 삭제된다는 신고가 심심찮게 들어온다. 이것도 언제까지나 방치할 수는 없는 사항인데 좀 고민된다. 이와 관련하여 최근에 있었던 일을 좀 소개하고자 한다.

하루는 어느 온라인 게임 개발사에서 메일이 왔다. 자기들 게임에서 님하의 입력기를 구동했더니 자꾸 뻗는다면서 crash 덤프 파일을 몇 개 보내 줬는데..
일단, 3년도 더 전에 나왔던 9.5부터 포함해 9.6, 9.8x 등 구버전이 아직도 많이 쓰이고 있다니 놀랐다. 10.0이나 10.1 덤프는 없었다.

하긴 내 프로그램은 자동 업데이트 기능이 없고 딱히 사용 내역 데이터 수집 같은 걸 하지도 않으니, 내 프로그램이 사용자들에게 어떤 형태로 쓰이는지는 나도 전혀 알지 못한다.
뭐, 사용자도 내 홈페이지를 일부러 들어가지 않는다면 프로그램 새 버전을 전혀 접할 수 없을 것이다.

버전은 그렇다 치고.. 내 입력기가 뻗는 이유는 커널인 ngs3.dll이 디지털 서명을 받지 않았다는 이유로 출처가 의심돼서.. 그 게임 내부의 보안 솔루션이 로딩과 실행을 차단했기 때문이었다.
파일이 아예 없는 경우라면 내 입력기도 대비가 돼 있어서 동작을 전혀 못 할지언정 뻗지는 않게 돼 있는데..
뻔히 로딩이 된 뒤에 보안 솔루션이 개입해서 ngs3.dll을 없애 버리는 듯했다.

흐음.. 보안 솔루션이 키보드 드라이버의 동작을 바꿔서 한글 IME의 동작까지 교란시키는 경우는 이미 잘 알려졌지만, 아예 이런 식으로 디지털 서명이 없는 DLL의 로딩에도 관여할 수 있다는 걸 알게 됐다.

Posted by 사무엘

2021/03/13 08:34 2021/03/13 08:34
Response
No Trackback , 2 Comments
RSS :
http://moogi.new21.org/tc/rss/response/1864

Trackback URL : http://moogi.new21.org/tc/trackback/1864

Comments List

  1. 버그가 있습니다 2021/04/11 17:00 # M/D Reply Permalink

    1. 듀얼 모니터 환경에서 ‘날개셋 환경설정 화면’을 한 모니터에서 다른 모니터로 옮기면 ‘날개셋 환경설정 화면’이 깨지는 현상이 발생합니다.

    2. 고급입력기에서 세벌식으로 사용자 정의 조합을 사용할 때, 그냥 기호는 잘 되지만 세벌식 종성으로 (입력, 현재상태, 세벌식 종성기호)을 사용할 때 출력이 제대로 되지 않는 버그가 있습니다.

    3. 크롬에서 날개셋을 사용하는데 띄어쓰기를 할 때마다 이전에 입력한 모든 문자들이 입력되는 이상한 버그가 있습니다.

    4. 사용자 정의 조합을 만들 때 UI가 너무 불편합니다. ㅠㅠ
    상태를 추가하면서 개수가 많아지는 데 체계적으로 관리를 할 수 없어 불편합니다. ㅠㅠ

    마지막으로 날개셋을 잘 만들어주셔서 감사합니다. 항상 잘 쓰고 있습니다.

    1. 사무엘 2021/04/12 01:38 # M/D Permalink

      안녕하세요? 제 프로그램을 고급 기능까지 유용하게 사용해 주셔서 고맙습니다.
      버그라고 문의하신 사항들은 대체로 글만으로는 상황을 이해하기 어려워서 더 구체적인 스크린샷과 설명을 제 메일로 보내 주시면 좋겠습니다.

      1. 모니터를 옮겼다고 멀쩡한 창이 깨지지는 않을 텐데.. 혹시 두 모니터의 DPI 설정이 달라서 뿌옇게 표시되는 걸 말씀하시는가요?

      2. 고급 입력기의 사용자 정의 조합은 기본적으로 한글 입력 로직의 영향을 받는 기능이 아닙니다. 아마 그냥 ㄱ~ㅎ 말고 종성 ㄱ~ㅎ을 말씀하시는 것 같은데.. 출력이라는 건 프로그램 UI인지 어느 부분인지 이해하기 어렵습니다. 실제 입력 설정을 좀 보고 싶습니다.

      3. 크롬 브라우저에서 웹페이지 내부의 문자 입력란에서 한글을 조합하는 중에 ‘확인, 제출’ 같은 버튼을 누르면 조합 중인 글자가 씹혀 사라지는 현상은 현재 알려져 있습니다.
      하지만 이전에 입력한 문자들이 모두 입력되는 문제는.. 비슷한 게 Visual Studio Code라는 프로그램의 터미널 창에서 발생하고 있는데요, 이것은 MS IME에서도 발생하기 때문에 사실상 IME가 아니라 그 프로그램의 버그로 보입니다.
      크롬에서 발생한다면 어느 사이트에서 발생하는 문제인지 더 자세한 재연 방법을 알고 싶습니다.

      4. ProgramData\YmSoft\NgsLib\Samples\Non-Hangul 디렉터리에 있는 “쉬운 문법 예제.xml” 파일을 참고하셔서 이 방식대로 로직을 만들고, 이걸 사용자 정의 조합 편집 페이지에서 불러와 보세요. 이전보다는 입력 로직을 만들기가 수월해질 것입니다.

Leave a comment
« Previous : 1 : ... 79 : 80 : 81 : 82 : 83 : 84 : 85 : 86 : 87 : ... 1814 : Next »

블로그 이미지

철도를 명절 때에나 떠오르는 4대 교통수단 중 하나로만 아는 것은, 예수님을 사대성인· 성인군자 중 하나로만 아는 것과 같다.

- 사무엘

Archives

Authors

  1. 사무엘

Calendar

«   2021/10   »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            

Site Stats

Total hits:
1676173
Today:
89
Yesterday:
591