Search Results for '2019/12/15'


1 POSTS

  1. 2019/12/15 다음 버전 개발 근황 by 사무엘

다음 버전 개발 근황

날개셋 한글 입력기 최신 버전이 나온 지가 또 벌써 두 달이 돼 가는데.. 현재는 9.9 내지 10.0이 개발 중이다.
현재의 최신 버전인 9.82에서는 이 버전만의 고유한 버그가 발견된 것은 현재까지 없다. 그럭저럭 잘 만들어진 것 같다. 그 대신 오래된 버그가 발견된 게 여럿 있어서 개발 중 버전에서 이들을 잡는 중이다.

1. 각종 UI에 표시되는 글자들의 크기 체계화

날개셋 한글 입력기에는 한자 후보 선택 UI라든가 각종 입력 도구들처럼(화면 키보드, 문자표 등) 글자를 일반 비트맵 글꼴이나 표준 UI 폰트(굴림/맑은 고딕 9)보다 약간 더 크게 찍는 곳이 여러 군데 있다.
내가 날개셋 버전 10이 임박한 시기에 이 부분을 건드리게 될 줄은 전혀 생각을 안 하고 있었으나.. 갑자기 필이 꽃히면서 다음과 같이 대대적으로 수술을 했다.

(1) 첫째, 그런 글자들을 대 아니면 소라는 두 그룹으로 나누고, 반드시 그 둘 중 하나에 소속된 통일된 크기로 표시되게 했다.
큰 글자는 버튼이나 정사각형 셀 하나에 글자 하나가 큼직하게 표시되는 상황으로, 문자표, 부수 한자 입력, 이모지 등이 해당된다.
작은 글자는 외부 모듈이나 입력 패드의 한자 선택 UI, 그리고 '조합 자동 완성', '조합 안에 조합 생성' 입력 도구가 해당된다.

(2) 날개셋 제어판의 시스템 계층에다가 이 두 그룹의 실제 크기를 사용자 정의할 수 있게 했다.
단위는 운영체제 표준 UI 폰트의 크기(100%)에 비례하는 백분율이며, 기본값은 '대'는 200%, '소'는 134%이다. 100%보다 더 작은 값을 줄 수는 없고, 최대 500%까지 줄 수 있다.

외부 모듈의 한자 후보 선택 목록에 글자가 너무 작으니 좀 키워 달라는 요청이 지금까지 몇 건 접수된 게 있다. 겨우 그 기능만을 위한 UI를 구현하는 것은 번거로워서 반영되지 못하고 있었는데 이 큰 작업을 하면서 저것도 이제 덩달아 가능해졌다. '작은 크기'를 150%~200%대로 키우면 된다.

그 반면, '큰 크기'를 200%보다 더 키우면 화면 키보드, 한손 입력기, 12키 입력기 등 비슷한 크기의 글자를 사용하는 입력 도구들의 덩치도 한꺼번에 키울 수 있다. 단, 이미 화면에 띄워진 도구는 말고, 다음에 새로 생성되는 도구부터 말이다.

(3) 맑은 고딕은 구닥다리 바탕· 굴림 같은 글꼴과 달리 글자의 종횡비가 정확한 1:1 정사각형이 아니며, 자체적으로 줄 간격 여백이 크게 잡혀 있기도 한 글꼴이다. 그래서 바탕· 굴림을 지정하던 곳에다가 맑은 고딕을 지정하면 글자가 너무 작게 찍히는 문제가 여러 곳에서 있었다.
이번에 그 문제도 완전히 해결했다. 크기가 동일한 값으로 주면 바탕· 굴림이건 맑은 고딕이건 상대적인 크기가 비슷하게 지정되며, 단지 맑은 고딕은 줄 간격만 더 길게 벌어지게 했다.

글자 크기를 지정하는 제어판 UI는 이렇게 구현되었다.
이전에 글꼴을 선택하는 옵션이 있었으니 거기에다가 크기를 지정하는 옵션도 한 그룹으로 엮어서 같이 넣는 것이 자연스럽다.

사용자 삽입 이미지

UI를 어떤 형태로 만들지 결정하기가 어려워서 고민을 많이 했다.
시스템 계층 탭은 안 그래도 공간이 비좁아져 있는데, 글꼴이니 키보드 드라이버니 입력 도구니 하는 것들은 서로 관련이 전혀 없고 따로 노는 아이템들이다.

더구나 글꼴의 종류에 이어 크기를 지정하는 옵션이 들어갔다면 이제는 미리보기(preview) 창도 슬슬 만들어야 할 때가 됐다. 하지만 지금 저 탭에 미리보기 창을 넣을 공간 따위는 전혀 없다.
상황이 답이 없는 지경으로 흘러가니, 이제 글꼴과 관련된 옵션들은 별도의 탭으로 분리라도 해야 하나 싶었다. 하지만 그건 너무 번거로우며 들인 노력 대비 결과가 좋지는 않아 보인다.

최종적으로는 보다시피 '미리보기'라는 링크를 넣고, 사용자가 이걸 클릭하면 아래에 "입력 도구 자동 구동 목록"이 있던 영역이 글꼴 미리보기 창으로 바뀌게 했다. 미리보기 창의 디폴트 크기도 저 정도가 딱 적당하고.. 이게 여러 모로 최선의 선택인 것 같다.

2. 후보 UI에 표시되는 글자의 폰트 체계화

날개셋 한글 입력기의 모든 구현체(편집기, 외부 모듈, 입력 패드)에는 한자 변환 후보를 표시하고 선택받는 UI가 있다. 별도의 옵션이 없으면 그냥 운영체제의 기본 글꼴로 글자를 표시하지만, 특정 글꼴을 써서 표시하라고 사용자가 지정도 할 수 있다.
다음 버전에서는 이 글자의 크기뿐만 아니라 글꼴과 관련해서도 다음과 같은 변화가 생길 예정이다.

(1) 정규 후보 변환 UI뿐만 아니라 “조합과 후보 자동 완성”, “조합 안에 조합 생성” 입력 도구도 후보 목록을 출력하는 부분에서는 저 글꼴 설정이 반영되게 했다.

(2) 그리고 저 글꼴 설정과는 완전히 별개로, 코드값이 특정 영역에 드는 문자는 무조건 이 글꼴로 출력하게 하는 일명 fallback 글꼴 조건을 추가로 지정 가능하게 했다. 그 조건은 별도의 텍스트 파일로부터 읽어들인다.

2번이 아주 참신한 기능이다.
지금 사용 중인 운영체제보다 시기적으로 유니코드에 더 늦게 찔끔 추가된 문자는 그 운영체제에서 글꼴을 제대로 잡아 주지 못한다. 가령, 일본의 새로운 레이와 연호 마크(U+32FF) 같은 것 말이다. 10여 년 전에는 ‘우편번호’ 마크, 20여 년 전에는 유로화 마크도 그런 부류에 속했다.

그리고 아예 대놓고 특정 custom 글꼴을 써야만 제대로 표시되는 사용자 정의 영역 문자도 있다.
그런 것들은 글꼴 설정과는 별개로 무조건 이런 전용 글꼴을 써서 출력하라고 수동으로 고정해 놓는 게 좋을 것이다.

이건 사용자가 막 자주 사용할 만한 옵션은 아니지만, 특수한 상황에서 굉장히 유용하게 쓰일 수도 있어 보인다.
새굴림 같은 옛날 글꼴이 있다면 한양 PUA에 있던 구결을 그 글꼴을 써서 출력하라는 지시를 예제 차원에서 남겨 두었다.

3. 휴대전화 입력기

휴대전화 입력기가 제공하는 4가지 모드 중, 영문과 기호 모드에서는 한 버튼에 3개의 문자가 배당돼 있다. 그리고 이들 중 하나를 버튼을 연타해서 골라서 입력하게 돼 있다.
그런데 이 방식은 동일한 글자를 연달아 입력하거나 같은 버튼 그룹에 속한 문자를 이어서 입력하기가 불편하다. 매번 SEP 버튼을 누르는 식으로 조합을 끊어야 하기 때문이다.

이 불편을 덜기 위해 이번 버전에서는 다음 두 방법이 추가되었다. 우클릭 메뉴를 통해 편한 것을 선택하면 된다.

  • 타이머: 버튼을 누르고 나서 0.5초 정도 반응이 없으면 조합이 자동으로 종료된다.
  • 길게 누름: 버튼 자체를 0.5초 정도 길게 누르면 이 글자는 다음 글자로 넘어간 상태로 삽입된다.

'길게 누름'은 한글· 영문 같은 모드에서 해당 버튼에 해당하는 숫자를 입력하는 용도로도 쓰이는 편인데, 기왕 '길게 누름'을 인식하는 김에 저렇게 동작하는 옵션도 같이 추가되었다.

4. cursor가 가리키는 글자를 표시하기

날개셋 한글 입력기가 제공하는 입력 도구들 중 "문자표, 부수로 한자 입력, 이모지 문자표" 이 셋은 고정된 테이블을 기반으로 문자를 입력하는 대표적인 도구이다.
그런데 새 버전에서는 이들에게 문자를 입력하는 기능뿐만 아니라, 역으로 cursor가 가리키는 문자를 자기 문자표에서 찾아서 표시해 주는 기능도 동시에 추가될 예정이다.

각 입력 도구들은 우측 상단에 ↔ 화살표가 그려진 자그마한 버튼이 추가되었으며, 이를 누르면 cursor 뒤에 있는 글자를 찾아서 표시하게 된다. 즉, "가|" 가 아니라 "|가"일 때 '가'에 대한 정보가 나타난다. 해당 입력 도구의 테이블에 존재하지 않는 문자이면 아무 일도 일어나지 않거나 짤막한 비프음이 난다.

이 기능을 '부수로 한자 입력'에서 사용하면 낯선 한자의 부수와 획수가 무엇인지를 곧장 확인할 수 있어서 좋다. 이모지 같은 다 문자표와도 연계하면 이 문자와 관련된 주변 다른 문자들을 곧장 조회할 수 있다.
물론 이 기능은 날개셋 편집기 내지, 외부 모듈의 경우 TSF를 지원하는 프로그램에서만 사용 가능하다. 실제로 글쇠 입력을 받는 문자 생성기 말고, 입력 도구가 문자를 밖에서 보내기만 하는 게 아니라 바깥 문자를 역으로 얻어 오는 동작이 구현된 것은 이번이 처음이다.

5. 기타 자잘한 개선

(1) 날개셋 한글 입력기의 GUI 중에는 편집기의 글꼴 목록이나, 제어판 시스템 계층의 외부 모듈 목록처럼 백그라운드 스레드를 사용해서 내용을 표시하는 것이 좀 있다. 그런데 스레드의 준비 작업이 다 끝나지 않았을 때 ESC를 눌러서 해당 대화상자를 잽싸게 닫으면 응답이 몇 초 내지 무기한 멎어 버리는 문제가 있었다. 이 오랜 지병을 이번에 완전히 해결했다.

(2) TSF를 지원하지 않는 프로그램에서 구현 가능하지 않은 특수글쇠(앞 글자 조합 상태, 특정 낱자를 앞으로 보내기 따위)를 눌렀을 때 프로그램이 얼어붙는 문제도 해결했다.
사실 이 문제 자체는 5년도 더 전 7.7 버전에서 해결되었지만, 훗날 9.8에서 크롬 브라우저 버그를 해결하기 위해 새로 만들어진 보정 로직에서 동일 문제가 재발하게 되었다.

(3) 최신 아래아한글의 글쇠배열 편집기에서 저장한 ukl 파일도 날개셋 제어판에서 읽을 수 있게 내 프로그램의 변환기 로직을 수정했다.
아래아한글에 지금과 같은 형태의 글쇠배열 편집기가 도입된 건 먼 옛날 2004부터인데, 그때는 파일 포맷 시그니처가 1.0이었다. 그게 어느 샌가 2.0으로 바뀌었기 때문에 내 프로그램에서 인식되지 않았다.
하지만 확인해 보니, 시그니처만 그렇게 살짝 바뀌었지 파일 내부 구조는 바뀐 게 사실상 없었다. 그래서 안심하고 시그니처를 인식하는 부분만 수정했다.

아래아한글의 글쇠배열 편집 기능은 customize 범위가 매우 제한적인 건 그렇다 치더라도.. UI도 왜 이렇게 만들었을까 고개를 갸우뚱하게 만드는 게 좀 있다. 글쇠배열의 이름을 지정하는 게 편집 화면이나 별도 UI로 있는 게 아니라 저장 대화상자에서 하게 돼 있고..;;
Shift 윗글쇠 부분을 편집하는 것도 마우스나 메뉴를 통해 가능하지 않고 키보드 space를 눌러야 한다고 도움말을 직접 참고하지 않으면 알 수 없다. 차라리 저 shift 그림을 클릭해서 전환이 가능하다면 훨씬 더 직관적일 텐데..

(4) 그리고 날개셋 제어판의 글쇠배열, 입력 유형(ist)을 열었는데.. 자체 고유 포맷 말고 내부적으로 변환을 거치는 파일을 가져왔을 때는.. 나중에 열기 대화상자를 눌렀을 때 이전 파일의 위치가 기억되지 않는 사소한 문제가 있었다.
여러 파일을 하나씩 연달아 살펴볼 때 불편할 수 있는 문제이기 때문에 수정했다.

(5) MS Word에서 문자표 계열 입력 도구와 '조합과 후보 자동 완성' 도구로 문자 입력이 가끔 제대로 되지 않던 문제를 해결했다. 얘만 좀 특이하게 동작하는 게 있어서 그랬다.

여기에다가 입력 도구와 관련, 그리고 세벌식 동시치기 관련 기능 강화 작업까지 마무리 되면 날개셋 한글 입력기는 9.9를 넘어서 10.0에 무난히 진입할 수 있을 것으로 보인다.

Posted by 사무엘

2019/12/15 08:34 2019/12/15 08:34
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1694


블로그 이미지

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

- 사무엘

Archives

Authors

  1. 사무엘

Calendar

«   2019/12   »
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:
1317418
Today:
235
Yesterday:
481