오랜만에 날개셋 한글 입력기와 타자연습의 새 버전이 나왔다.
한글 입력기의 32비트 배포 패키지가 드디어 날개셋 타자연습보다도 덩치가 더 커졌다.
타자연습이야 게임의 리소스와 MFC 라이브러리의 오버헤드 때문에 큰 편이었는데 입력기는 정말 순수하게 내가 작성한 코드와 내가 준비한 데이터만으로 덩치가 이렇게 커졌다.

날개셋 한글 입력기라는 걸 만들어 온 게 고3과 대학 시절 이래로 어언 20년이 됐다. 내 인생의 20대, 30대 나이와 함께했다.
한글 입력기뿐만 아니라 한글 글꼴도 새로운 걸 만들고 싶은 게 있는데 입력기만 너무 오래 끌었다. 그래도 덕분에 옛날에 도저히 상상하지 못했던 방향으로 입력기를 더 발전시키기도 했다. 10.0을 찍고 나니까 이제는 너무 터무니없이 거창한 것 말고는 프로그램을 만들 만치 충분히 다 만들었다는 생각이 든다.

1. 조합 안에 조합 생성 입력 도구에 문자열 자동 완성

지난번 개발 근황글에서 짤막하게 언급한 바와 같이, 이번 10.0 버전에서는 '조합 안에 조합 생성' 입력 도구에 후보 문자열의 뒷부분 자동 완성 기능이 추가되었다. 이 입력 도구가 수행하는 기능이 무엇인지를 감안한다면 진작에 들어갔어야 할 기능인데 다소 늦은 감이 있다. (이 입력 도구가 처음 도입된 건 2년 전의 9.3부터!!)

자동 완성 단축키는 tab/shift+tab 계열, 또는 ctrl+space 이렇게 두 종류이다. Windows와 유닉스 계열의 명령 프롬프트에서 경로/파일을 자동 완성해 주는 tab 키, 그리고 Visual Studio 개발툴에서 명칭을 자동 완성해 주는 ctrl+space 이들의 동작에서 모티브를 따서 다음과 같은 형태로 동작이 구현되었다.

후보 목록에 다음과 같은 문자열이 있고, 사용자가 a 또는 aa까지 입력했다고 치자.

aabbccccc
aabbdd
aabbddee

이 상태에서 ctrl+space를 누르면 후보 목록들의 공통 접두사인 aabb까지가 자동 완성된다. 이런 공통 접두사가 없는 상태에서 또 ctrl+space가 들어오면 그냥 맨 앞 또는 선택막대가 가 있는 문자열이 자동 완성된다.
물론 aabb 상태에서 d를 수동으로 입력한 뒤 ctrl+space를 누르면 dd와 ddee가 순서대로 완성된다. 즉, ctrl+space의 관점은 순차적인 진행, 전진이다.

그 반면, aa까지 친 상태에서 tab을 누르면 곧바로 맨 앞 항목인 aabbccccc가 자동 완성된다. 또 tab을 누르면 aabbdd, aabbddee의 순으로 순환하게 된다. shift+tab은 역순으로 순환한다.
tab/shift+tab의 결과로 인해 입력 중인 문자열이 달라지고 후보 목록의 내용이 달라질 수 있다. 그 상태에서 ctrl+space를 눌러서 추가적인 전진을 할 수도 있다.

그리고 후보 목록은 알파벳 순서뿐만 아니라 타자 길이가 짧은 것도 우선시해서 출력되는 반면, 이 tab 순환은 전전으로 사전 순으로만 진행된다.

사실, 날개셋 한글 입력기에서 기본으로 제공하는 영단어나 한자 새김 입력 정도만으로는 자동 완성 기능이 그렇게 막 유용하게 느껴지지는 않을 수도 있다. 자동 완성을 하느니 후보 목록에 n순위로 뜬 항목을 번호로 곧장 선택하는 게 더 빠르기 때문이다. 그래도 이 입력 도구에서도 명령 프롬프트(터미널)나 개발툴 에디터 같은 정도의 최소한의 편의 기능은 있어야겠다는 논리적 당위성 때문에 이 기능이 구현되었다.

참고로 자동 완성은 '새김으로 한자' 또는 '영단어' 입력일 때만 가능하다. '한글 단어를 한자로' 변환은 유일하게 자동 완성 기능이 전혀 지원되지 않는다. 입력한 한글보다 더 긴 길이의 한자어를 제시하는 동작이 없는 관계로, 자동 완성이라는 걸 제공할 여지가 없기 때문이다.

2. 한자 관련: 한글 독음 표시

UI에서 한자의 훈과 음을 표시할 때, 호환용 한자(독음의 바리에이션)에 대해서는 원래 한자의 음이 같이 병기되게 했다. '요'뿐만 아니라 '이, 인, 여, 노, 난, 열' 같은 글자에 대해서도 재미있는 결과를 볼 수 있다. 한국어의 두음법칙이 생각보다 까다롭다는 걸 느끼게 될 것이다.

사용자 삽입 이미지

그러므로 외국 사이트 같은 데서 한자를 입력할 때는... 이 글자보다는 가능한 한 {}로 둘러싸여 있는 음에서 동일 모양의 글자를 찾아 입력하는 것이 권장된다. 호환용 한자는 마치 UTF-8 텍스트의 BOM만큼이나 장기적으로는 사용이 권장되지 않는 deprecated 요소이기 때문이다.

물론 현실적으로는 이미 잔뜩 구축된 호환용 한자들과 기존 한글 IME들의 동작을 무시할 수 없을 것이고, 컴퓨터 소프트웨어들이 호환용 한자들을 알아서 정규화해서 처리해야 할 것이다.
먼 옛날 KS X 1001 상용 한자에서 서로 다른 독음에 대해서 똑같은 한자를 중복 배당한 것부터가 편법이고 원죄이긴 하지만... 그 시절에는 그렇게라도 해서 한자에 담긴 독음 정보를 보존해야 할 필요 또한 있었다.

그런데 金의 경우 도대체 왜 '성 김'이 본가이고 '쇠 금'이 호환용 한자로 연결되었는지, 不도 왜 '부'가 본가이고 '불'이 호환용인지는 나로서는 알 길이 없다. 날개셋은 별다른 이유 없이 그냥 마소의 데이터를 따르고 있을 뿐이다. 따지고 보면 '가'에 대해서 家부터 먼저 시작하는 마소 특유의 한자 빈도수 데이터부터가 출처가 무척 궁금해진다.

3. 부수로 한자 입력

(1) '부수로 한자 입력' 도구가 "한중일 통합 한자 확장 B, C, D"에 있는 U+20000 ~ U+2B81D 사이의 약 47000자에 달하는 한자들의 부수까지 추가로 조회해서 입력할 수 있게 했다. 단, 우클릭 메뉴에서 옵션을 선택해야 한다.

사용자 삽입 이미지

독음으로 한자를 입력하는 건 기본적으로 4888 상용 한자만 가능하고, 편집기 계층에 있는 '확장 한자 옵션'을 선택하면 BMP 영역 것까지 모두 가능해진다.
그 반면, 부수로 한자 입력은 기본적으로 BMP 영역이 가능하고, 별도의 옵션을 선택하면 확장 평면 것까지 사용 가능해진다.

날개셋 한글 입력기에서 확장 평면 한자는 짙은 초록색으로 표시된다. 지금까지는 이 색깔을 볼 일이 거의 없었지만 앞으로 "부수로 한자 입력 도구"에서 이 색깔을 적극적으로 볼 수 있을 것이다. 용 룡(龍) 자가 4개 붙은 그 극악의 64획짜리 한자(U+2A6A5)도 드디어 입력할 수 있다.

물론 확장 평면 한자들은 날개셋 한글 입력기 엔진이 공식 지원하는 한자는 아니다. 그렇기 때문에 이 한자들은 훈과 음 정보가 전혀 제공되지 않는다.
내가 보아하니 저 많은 확장 평면 한자들은 출처가 대체로 옛 문헌들인 것 같다. 기괴한 모양의 글자들이 많이 눈에 띄지만, 그렇다고 간체자 스타일의 획이 그려진 글자는 딱히 보이지 않기 때문이다.

내가 듣기로 CJK 확장 한자가 벌써 E, F, G에까지 도달했다고 하는데 도대체 아직까지 추가할 게 무엇이 있는지 궁금하다..;; 그래도 처음으로 확장 평면이란 걸 개척하면서 무려 4만 자가 넘게 한꺼번에 추가됐던 확장 B가 존재감이 압도적이다. C와 그 이후 영역들은 B보다는 규모가 훨씬 작으며, 수백~수천 자씩만 추가되고 있으니 말이다.

한중일 통합 한자 확장 E, F, G 따위도 데이터가 공개돼 있으니 지원할 수는 있다. 하지만 이들 영역은 당장 Windows 10에서도 글꼴이 기본 제공되지 않아서 글자가 제대로 표시되지 않으니, 내 프로그램에서도 지원할 필요를 아직 느끼지 않는다. 날개셋 한글 입력기는 한글 입력이 전문이지 굳이 이런 '부가적인 기능'을 운영체제보다 더 앞서 지원할 필요는 없을 것이다.

다만, 나중에 데이터 파일만 업데이트 하면 프로그램 코드를 수정하지 않아도 D 이후의 확장 영역을 추가로 지원할 수 있게 준비는 시켜 놓았다. 지원하는 확장 한자의 전체 개수를 하드코딩해 놓지 않고 파일로부터 값을 런타임으로 얻는 변수 형태로 처리했다는 뜻이다.

말이 나왔으니 말인데, 이모지 문자표도 이번 기회에 데이터 파일을 수정하면 동물, 자연, 음식, 활동 같은 카테고리까지 확장 가능하게 구조를 수정했다. 이모지도 마치 한자처럼 새로운 게 계속 추가되고 있는 영역이니 말이다.
이모지 문자표 내지 입력기를 제대로 만들려면.. 얼굴 이모지에서 피부색 바리에이션을 선택하는 UI도 들어가야 한다. 하지만 그건 현재 그냥 생략하고 있다.

(2) 확장 한자 지원 얘기가 좀 길어졌다만, 깨알 같은 변화가 하나 더 있다.
현재 얘는 부수를 클릭했을 때 보다시피 근처의 총획수가 동일한 부수들이 빨간색으로 표시되는 기능이 진작부터 존재했다. 그런데 현재 선택된 부수와 동일한 부수 소속인 글자들은 획수와 무관하게 하늘색으로 더 먼저 구분되어 표시되게 했다. 예를 들어 己를 선택했다면 巳와 已, 田을 선택했다면 由, 申, 甲, 그리고 4획의 王을 선택했다면 5획의 玉도 같이 말이다.

사용자 삽입 이미지

(왼쪽에 하늘색으로 흩어져서 표시된 그물 망 제부수자들을 볼 것)
적용해 보니 굉장히 편리하다. 이런 동작을 왜 지금까지 생각을 못 하고 있었나 모르겠다. 간체자까지 생각하면 획수가 다른 동일 부수 바리에이션이 더 많이 존재한다.
이 기회에 오리지널 제부수자보다 획수가 적은 제부수자들의 획수가 잘못 기재되어 있던 것들도 바로잡았다. 15년~20년 전 유니코드 DB에는 데이터가 잘못돼 있었던 것 같다.

그나저나 같은 한자의 획수 세는 방식도 절대 고정불변이 아니라 한국 중국이 서로 차이가 있다는 걸 알 수 있었다. 특히 1획으로 볼지 2획으로 볼지 굉장히 모호한 획 말이다.
중국이 대체로 획수를 더 적게 세는 쪽으로 바뀐 것 같다. 다시 말하지만 간체자로 형태가 완전히 바뀐 것 말고 동일한 한자가 말이다.

4. 허용 한글 범위 제약 기능 관련

(1) '현대 한글만 허용'이라는 간단한 기능이 추가됐다. 현대 한글 자모는 미완성 한글 형태라도 입력을 허용하지만, 초중종 중 어디라도 옛한글이 포함된 채로 두 성분 이상 결합하는 것은 허용하지 않는다. 옛한글 낱자는 단독으로만 입력과 결합을 허용한다. 언뜻 보기에 간단하지만 기존 오토마타나 다른 제약 기능을 이용해서 쉽게 구현 가능하지 않다고 여겨져서 이것만 직통으로 수행하는 기능을 추가했다.

(2) '지정된 파일에 들어있는 한글' 기능에 지금처럼 데이터를 파일 경로로 지정하는 외장형뿐만 아니라, 데이터 자체를 직접 갖고 있는 내장형으로도 동작하는 옵션을 추가했다. 그래서 이름도 '지정된 파일' 대신 더 범용적인 '지정된 데이터'로 바꿨다.
입력을 허용하는 한글의 수가 수십~수백 자 수준으로 아주 적거나 "현대한글 + 아주 소규모의 옛한글" 이런 식이어서 데이터가 작다면.. 번거롭게 외부 파일을 준비할 필요 없이 내장형이 더 나은 선택이 될 것이다.

사용자 삽입 이미지

5. 편집기의 색상 구성표

편집기에서 텍스트 편집창의 색상을 설정하는 UI에.. 다음과 같이 다양한 색상 구성표들이 추가되었다.

사용자 삽입 이미지

흑백, 호박색, 터미널 이렇게 어두운 그룹은 과거에 흑백 모니터를 사용하던 경험을 고스란히 재현해 줄 것이다. 날개셋 편집기는 그렇잖아도 옛날 추억의 한글 글꼴들을 한데 구경할 수 있는 프로그램인데, 색깔까지 복고풍 configuration을 제공하는 것은 나름 의미 있는 일이 될 것이다.

도스용 에디터, 칠판, 아래아한글 1.x 색상은 오래 전부터 제공되고 있었다. 외국에서는 아래아한글이 인지도가 없으니 영문 명칭은 무의미한 HWP 1.x 대신 그냥 시원한 바다색 Ocean이라고 바꿨다.

그리고 밝은 그룹인 레몬, 연보라, 베이지는 쌩 white보다 눈부심이 덜하고 편하기 때문에 역시 쓸모가 있을 것이다. 요 색깔들은 macOS의 터미널에서 제공되는 색상을 차용한 것이다.
이런 색상들을 간단히 가져와서 쓸 수 있는 것은 날개셋 편집기의 활용성에 긍정적인 기여를 할 것이다.

6. 외부 모듈에 보정 옵션 추가

바로 며칠 전에 어느 사용자께서 날개셋 한글 입력기가 Windows Terminal이라는 메트로 앱에서 조합 중인 글자가 자꾸 덧나면서(ㄱ가ㄴ나ㄷ다 같은..) 제대로 동작하지 않는다는 버그 신고를 하셨다.
이미 존재하는 보정 기능으로는 “ㄱ가나다”까지는 바로잡을 수 있지만 첫 글자가 덧나는 것은 막을 수 없었다.

엄밀히 따지자면 이 프로그램도 IME로부터의 문자 입력 접수에 제대로 대응하지 못하고 버그가 있다. 조합을 끊어서 전하든 기존 조합을 늘이고 옮겨서 전하든 겉으로 드러나는 결과는 아무 차이가 없는 게 맞는데.. 한편으로는 마소 IME는 괜찮은데 또 내 프로그램만 저러는 이유는 알 길이 없다.;;
이 때문에 프로그램과 통신하는 방식에 옵션이 하나 더 추가됐다.

예전부터 있었던 A 방식과 B 방식은 “연속 입력”에 대해서 기본 방식 또는 대체 방식을 지정하는 것이었다.
이번 10.0에서는 “최초 입력”에 대한 방식도 세분화됐다. Windows Terminal의 오동작을 해결하려면 두 입력에 대해 모두 “대체 방식”을 선택하면 된다.

사용자 삽입 이미지

7. 타자연습과 세벌식 파워업

입력기는 그야말로 0.1 이상으로 굉장히 많은 것이 바뀐 반면, 타자연습은 작년 여름에 나온 3.9 이후로 바뀐 것이 거의 없다. 입력기 10.0과 함께 타자연습도 4.0으로 같이 올라가면 참 좋았겠지만, 도저히 그럴 수 없어서 타자연습은 3.91이 됐다.

타자연습과 세벌식 파워업은 딱 한 가지... 무조건 주 모니터에서 창이 뜨는 게 아니라 자신을 실행시킨 GUI의 모니터를 기준으로 뜨도록 수정된 것이 전부이다.
지난 2017년~18년 사이엔 이들 프로그램이 고해상도 dpi를 제대로 지원하도록 수정되곤 했는데, 그 다음으로 multi-모니터를 제대로 지원하도록 수정이.. 참 굉장히 늦게=_=;; 행해졌다.

이상이다.
컴퓨터라는 기계가 있고 한글 같은 문자, 알파벳만치 마냥 단순하고 가볍지 않으면서 한자만치 무겁지도 않고 조합을 글자 단위로만 만들면 되는 단순한 문자가 있을 때.. 이런 문자의 입력을 위해 존재할 수 있는 모든 아이디어를 담을 수 있고 모든 형태로 실현 가능한 소프트웨어--이것이 지금까지 날개셋 한글 입력기의 개발 목표였다.

이제 앞으로는 날개셋 한글 입력기에 치명적인 버그 수정이나 자잘한 기능 추가 같은 유지보수 말고.. 기상천외한 기능이 새로 추가된다거나 프로그램 내부 구조가 바뀐다거나 하는 변화는 당분간 없지 싶다.
2020년대부터는 한국어/한글 정보 처리 쪽으로든, 철도 쪽으로든 내 인생이라는 연극의 다음 장, 다음 막이 진행됐으면 좋겠다.

지금까지 긴 세월 동안 날개셋 한글 입력기를 변함없이 사용하고 성원해 주신 분들께 감사드린다.
말을 이렇게 써 놓으니 내가 무슨 시한부 인생이라도 살고 있고 앞으로 날개셋 개발 다시는 안 할 것 같은 느낌도 든다만.. 이런 글 올려 놓고는 또 두어 달 뒤에 언제 그랬냐는 듯이 10.01 정도는 또 자잘한 버그 수정과 개선 명목으로 또 나올 수도 있다. ㅎㅎ

Posted by 사무엘

2020/05/28 08:35 2020/05/28 08:35
Response
No Trackback , 3 Comments
RSS :
http://moogi.new21.org/tc/rss/response/1756

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

Comments List

  1. 동영 2020/05/28 19:08 # M/D Reply Permalink

    기다렸습니다! 매일 블로그 방문한 보람이 드디어...
    잘 쓰겠습니다.
    안마태-드보락이라는 마이너에 마이너 조합을 사용하는 저로서는 정말 공기같은 프로그램입니다.
    감사합니다.
    윈도를 insider 버전을 쓰면서 언젠가부터 "운영체제차원의 지원"의 드롭다운에 아무것도 나오지 않아 아쉽지만 그건 정말 마이너의 마이너의 마이너에게만 적용되는 상황이라 만족하며 잘 쓰겠습니다!
    그럴리 없겠지만 혹여 버그로 의심되는 상황이 발생하면 바로 말씀드릴게요. 다시 한 번, 정말 잘 쓰겠습니다.

    1. 사무엘 2020/05/28 19:40 # M/D Permalink

      동영 님, 오랜만입니다~! 잘 지내시죠? ^^
      늘 변함없이 날개셋 한글 입력기를 애용해 주셔서 고맙습니다~!
      사실, 한글 입력과 관련된 중요한 기능이 아직 마무리가 못 돼서 10.0이 완전한 파이널은 아니고..
      현재로서는 여름쯤에 후속 버전이 한 번은 더 나오는 쪽으로 개발 방향이 기울고 있습니다.

      드롭다운은 키보드 드라이버 목록을 말씀하시는 건가요? PC용 Windows NT 계열치고 그게 안 나오는 환경은 없을 텐데 좀 이상하지만.. 그건 한글 입력과 직접적인 관련이 있는 기능은 아니니 크게 불편하지 않을 것입니다.
      다시 한번 감사드립니다.

  2. 동영 2020/05/29 13:35 # M/D Reply Permalink

    네, insider preview 심지어 fast ring을 쓰고 있으니 이런저런 불편 당연히 감수하며 쓰고 있습니다. 심지어 MS 자사 프로그램인 onedrive도 제 환경에선 안 돌아갑니다. 그래도 매번 윈도 빌드가 올라갈 때마다 윈도 폴더가 목욕재계하는 느낌이라 기분 좋게 쓰고 있습니다.
    불편해진 점으로는 암호입력이나 핫키가 쿼티기반으로 돌아간다는 것인데 장점이 될 때도 있어 기쁘게 잘 쓰고 있습니다.
    아직도 추가되는 기능이 더 많아진다니 동시입력자판계열을 쓰고 있는 저는 뭔가 그쪽으로의 지원도 포함될까 해서 기대가 많이 됩니다.
    개선될 점보다 개발속도가 더 빨라져서 의욕이 떨어지실까 오히려 걱정되네요.
    나중에 완전판이 나오게 된다면 그 이후로는 다국어입력기로 진화가 될 것 같다는 생각도 듭니다.
    물론 한글입력방식의 발전만 해도 끝이 없을 수 있지만요.
    늘 건강하시고 다음 버전 매일 기다리고 있겠습니다.
    감사합니다.

Leave a comment
« Previous : 1 : ... 596 : 597 : 598 : 599 : 600 : 601 : 602 : 603 : 604 : ... 2204 : Next »

블로그 이미지

그런즉 이제 애호박, 단호박, 늙은호박 이 셋은 항상 있으나, 그 중에 제일은 늙은호박이니라.

- 사무엘

Archives

Authors

  1. 사무엘

Calendar

«   2024/11   »
          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

Site Stats

Total hits:
2985393
Today:
946
Yesterday:
2184