날개셋 한글 입력기가 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 사무엘