다음 버전 개발 근황

날개셋 한글 입력기 10.5가 공개된 지 벌써 2개월이 훌쩍 지났고 3개월이 돼 간다.
다음 버전은 내년 초쯤으로 계획하고 있다. 현재까지 작업된 것 중에는 딱히 완전히 새로운 기능은 없다. 그보다는 이미 제공되고 있는 기능을 제대로 구현하고, 자잘한 버그를 잡고 완성도를 높인 것의 비중이 더 크다.

1. 편집기: 위치만 다르고 이름이 동일한 파일을 여러 개 열었을 때의 식별 방식 강화

날개셋 편집기는 문서창에 자기가 다루는 파일 경로에서 디렉터리를 생략한 실제 이름만을 제목으로 표시한다.
그런데 이렇게 하면, 디렉터리는 다르고 이름은 동일한 파일을 여럿 열 경우 문제가 생긴다. 여러 창들의 제목이 동일하게 겹쳐서 사용자가 원하는 문서창을 고르기가 어려워진다. 그렇다고 파일의 전체 경로를 언제나 표시하면 당연히 너무 길고 거추장스럽고 지저분해진다.

그래서 이번 버전에서는 이 로직에 대대적인 공사를 했다.
위치만 다르고 이름이 겹치는 파일이 한꺼번에 열린 경우, 변별이 되는 가장 가까운 상위 디렉터리의 이름을 같이 출력하게 했다.

일례로, C:\a\b\foo.txt라는 파일을 열면 처음엔 foo.txt라고만 제목이 붙는다.
그런데 이 상태로 C:\foo.txt를 추가로 열면.. 각각 b\foo.txt와 C:\foo.txt라고 제목이 바뀐다.
둘 중 한 문서를 닫으면 다른 문서창의 제목은 다시 foo.txt라는 간단한 형태로 돌아온다.

저 두 파일이 있는 상태에서 C:\c\b\foo.txt와 C:\c\x\foo.txt를 추가로 열면..
b\foo.txt만으로도 변별이 안 되는 쌍이 생긴다. 그렇기 때문에 이들은 각각 a\...\foo.txt와 c\...\foo.txt 라고 바뀐다.
그러나 C:\foo.txt는 변함없으며, b 말고 x라는 경로는 겹치지 않기 때문에 ... 없이 x\foo.txt 라는 제목이 부여된다.

사용자 삽입 이미지

왼쪽이 before, 오른쪽이 after이다.
자잘하지만 실용적인 가치가 높은 동작 개선 작업이 무려 2023년이 돼서야 진행됐다.
저런 창 제목뿐만 아니라, 파일 메뉴 아래에 뜨는 "최근에 열었던 파일 목록"(MRU)에서도 동일한 디렉터리 구분 알고리즘이 적용됐다.
이름이 동일한 파일들을 한꺼번에 열 때 이런 동작이 크게 도움이 될 것이다.

2. 제어판의 글쇠배열 UI

  • 글쇠에다 문자를 배당하는 모드일 때는 우리 자체 입력 엔진뿐만 아니라 운영체제 IME로부터도(빈 입력 스키마 지정) 문자를 배당할 수 있는데.. 이때 한자 변환을 선택하면 후보창이 선택막대가 있는 글쇠의 아래에 딱 맞춰 표시되게 했다. 무슨 말이냐 하면 이렇게 말이다.
    사용자 삽입 이미지
  • 반대로 이동 모드일 때는 운영체제 IME가 꺼진다. 이때는 운영체제 IME가 한글 모드였더라도, 글쇠를 누르면 한글이 입력되는 게 아니라 정확하게 그 글쇠로 선택막대가 이동하게 했다. '글쇠 누름'(KY) 날개셋문자를 입력받는 모드일 때도 마찬가지이다.

3. 세로쓰기 상태에서 외부 모듈의 한자 변환 UI의 개선

외부 모듈은 날개셋 편집기나 MS Word 같은 프로그램에서 세로쓰기를 하고 있으면 한자 선택 UI도 세로쓰기 형태로 표시된다. 이런 동작 자체는 오래 전부터 제공되었지만, 다음과 같이 버그가 수정되고 동작이 개선되었다.

사용자 삽입 이미지

  • 글자가 굴림이 아니라 맑은 고딕일 때는 왠지 딱 정중앙이 아니라 한데 삐딱하게 치우쳐서 표시되는 것 같았는데.. 이걸 드디어 수정했다. 위의 그림에서 위와 아래의 차이를 참고할 것.
  • 스크롤바를 클릭하거나 드래그 한 것이 언제부턴가 인식되지 않고 있었다. 이 문제를 해결했다.
  • 그리고 멀티모니터 환경에서 주 모니터보다 왼쪽.. 즉, x 좌표가 음수인 모니터에서는 한자 선택 UI가 글자의 왼쪽이 아니라 오른쪽에 잘못 표시되던 문제가 있었다. 이를 해결했다.

4. 휠 클릭 자동 스크롤 관련 glitch들

날개셋 한글 입력기에서 제공하는 자체 에디트 컨트롤이나 문자표 등, 스크롤 가능한 GUI 요소들은.. 다들 마우스 휠을 클릭했을 때(굴리는 게 아니라) 앵커가 나타나면서 자동 스크롤 모드로 진입하는 게 있다.
얘는 기능 자체는 아주 오래 전부터 제공되어 왔지만, 제공되는 환경에 따라 미묘하게 일관되게 동작하는 게 있어서 개인적으로 찝찝하게 느껴 왔다. 너무 자잘한 사항 같지만 드디어 이제야 개선했다.

  • 대화상자에 있는 컨트롤에서 자동 스크롤(예: 문자표 대화상자)을 진행하던 중에 엔터나 ESC를 누르면 자동 스크롤만 종료되어야 한다. 하지만 지금까지 그 키가 대화상자의 확인/취소 명령에 그대로 전달되어서 대화상자가 통째로 종료되곤 했다. 그렇게 되지 않게 조치를 취했다.
  • 휠을 눌렀다가 바로 떼는 게 아니라, 마우스 포인터를 움직여서 스크롤을 좀 시키고 나면.. 눌렀던 휠을 떼는 순간 자동 스크롤이 바로 종료되곤 한다. 이게 다른 컨트롤에 대해서는 동작하는데, 보조 입력 도구(부수로 한자 입력, 이모지 등)에서 자동 스크롤을 그렇게 하면 자동 스크롤 종료가 동작하지 않았다. 이때도 동일하게 동작하게 조치를 취했다.

5. Neo둥근모 폰트 추가

'달고나'(본명은 정 은빈 님?)라는 분이 만든 'Neo둥근모'의 영문 글꼴을 추가했다.
Neo둥근모는 날개셋 편집기에서 제공하고 있는 그 김 중태 원작 둥근모 폰트를 오늘날 운영체제에서 사용 가능한 트루타입 형태로 변환하고, 한글과 잘 어울리는 풍의 영문· 숫자 글립까지 추가한 작품이다.

사용자 삽입 이미지

다만, 곡선을 넣은 게 아니라 비트맵 픽셀을 기계적으로 변환했다는 점을 감안해야 한다. 크기를 키우면 계단 현상이 그대로 나타난다. 힌팅 같은 것도 없다. 이건 디자이너가 아니라 프로그래머가 만든 폰트인 티가 팍팍 난다.

그럼에도 불구하고 영문· 숫자 폰트는 뭔가 게임 UI 폰트 같으면서도 매끄럽고 코딩용 폰트로 어울리고, 무엇보다 기존 한글 둥근모 글꼴과도 아주 잘 어울리는 것 같다. 잘 만들었다. 날개셋 편집기 같은 프로그램에도 딱 맞는 용도이다.
그래서 이 폰트를 내 프로그램의 비트맵 폰트로도 넣어서 제공하고, 원 제작자와 출처를 프로그램 도움말에다가 집어넣었다.

6. 편집기: 자잘한 개선 사항

(1) 편집기에서 한글을 입력하던 중에 Ctrl+S를 눌러서 저장 명령을 내리면.. 조합을 종료하고 나서 해당 텍스트 파일이 저장되게 했다. 이게 정상인데 내 프로그램은 지금까지 그렇게 동작하지 않았다.
그러면 파일을 저장하고 나서 cursor 이동으로 인해 그 한글 조합이 종료될 때, 문서가 또 불필요하게 수정 상태로 바뀌기 때문에 사용자에게 심리적으로 깔끔한 느낌을 못 준다.

(2) 파일 메뉴의 하단에 예전에 열었던 파일이 표시되는 것처럼.
편집 메뉴의 하단에는 예전에 사용했던 텍스트 필터가,
보기 메뉴의 하단에는 예전에 골랐던 입력 도구가 표시되어 사용자가 바로 선택할 수 있게 했다.

사용자 삽입 이미지

(3) 날개셋 편집기에서 문서 저장과 관련해서 가장 자주 보게 되는 확인 질문은 아무래도 변경된 닫을 때 나오는 "저장할까요?" 질문일 것이다. 하지만 이 프로그램은 단순히 그럴 때 말고도 파일이 외부에 의해 수정됐을 때, 인코딩 변환 과정에서 깨진 문자가 있을 때처럼.. 저장하거나 저장하지 않음으로써 이 문서나 기존 파일의 정보가 날아갈 우려가 있는 모든 상황에서 다양한 확인 질문을 한다.

사용자 삽입 이미지

다음 버전에서는 파일이 외부에 의해 변경됐을 때의 확인 질문이 저렇게 더 세분화될 예정이다.
그리고 '모두 저장'이나 '끝내기, 모든 창 닫기'처럼 여러 파일들을 한꺼번에 처리할 때.. 같은 종류의 확인 질문은 별도의 체크 박스를 통해 모두 무시할 수 있게 했다. 현재는 "변경 내용을 저장할까요?" 질문만을 무시 가능하기 때문이다.

7. 나머지 자잘한 개선 사항

(1) 날개셋 제어판 창은 크기 조절이 된다. 그런데 창을 옆으로 쭉 키우다 보면, 일부 컨트롤은 테두리에 잔상이 남으면서 보기 흉해지는 경우가 있었다. 특히 '낱자 처리'나 '최종 변환'처럼 ( ) → ( ) 형태의 컨트롤이 있는 탭을 열고 크기 조절을 해 보면 문제를 더 분명하게 확인할 수 있다.

사용자 삽입 이미지

이건 10년 이상 이 프로그램의 역사와 함께했던 고질병인데.. 이번 버전에서야 드디어 원인이 파악되고 소스 코드 한 줄만 달랑 고침으로써 해결됐다.
각종 컨트롤들이 재배치됐을 때, 클라이언트 영역만 다시 그리는 게 아니라 말 그대로 테두리 같은 non-클라이언트 영역도 다시 그리게 했어야 했다. 이걸 몰라서 엉뚱한 부분만 의심하면서 오랫동안 삽질을 했었다. -_-;;
이 버그? glitch가 드디어 해결되니 속이 무척 후련하다.

(2) 현재 날개셋 한글 입력기는 외국인을 위해서 설치할 때 '한글 로마자' 입력 방식을 곧바로 맞추도록 하는 옵션이 제공된다.
그런데, 이 옵션을 선택하면 프로그램의 UI도 운영체제의 기본 언어나 이전 프로그램 설정과 무관하게 영어로 기본 제공되게 프로그램 동작을 보강했다. 이렇게 하는 게 논리적으로 타당할 것이다.

Posted by 사무엘

2023/08/27 08:35 2023/08/27 08:35
Response
No Trackback , 7 Comments
RSS :
http://moogi.new21.org/tc/rss/response/2200

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

Comments List

  1. 일본외국인노동자 2023/10/08 18:01 # M/D Reply Permalink

    안녕하세요. 일본에서 직장생활을 하고 있는, 날개셋 입력기 애용자입니다.


    일본에서 생활하고 있는 관계로, 아무래도 JIS 배열 키보드를 사용할 일이 많은데요.

    문제는 JIS키보드를 사용할때 한국어 입력기 사용이 매우 불편하단 것입니다...


    예를들어 US배열에서는 숫자 6에 배정된 특수문자가 ^ 인데요,
    JIS 배열에서는 & 입니다.


    이런식으로 특수문자의 위치가 매우 다른데요, 문제는 현재 배포되는 한국어 입력 소프트웨어 중에 JIS 배열을 지원하는 것이 없다는 것입니다...

    그래서 US배열을 외워서 특수문자를 입력하고 있는 실정입니다 ㅎㅎ..

    (반대로 일본어 입력 소프트웨어는 모두 US배열을 지원합니다. 그래서 US배열 키보드로 일본어를 입력하는건 아무 문제가 없더라구요)


    특수문자 배치는 JIS배열을 따르면서도, 한국어를 입력 할 수 있는 입력기가 있으면 정말 좋을 것 같다는 생각을 매번 하는데요.

    날개셋 입력기에 JIS배열을 추가해, 특수문자 배치는 JIS를 따르면서도 한글을 입력할 수 있게 하는건 어려울까요?


    읽어주셔서 감사합니다.

    1. 사무엘 2023/10/09 05:56 # M/D Permalink

      안녕하세요? 크게 두 가지 방법을 생각할 수 있겠습니다.

      1. "날개셋 제어판 - 시스템 계층 - 고급 시스템 옵션"에 가서
      "한글 IME와 연결할 영문 키보드 드라이버"를 디폴트값인 KO 말고
      아래에 있는 JP Japanese로 시작하는 키보드 드라이버로 잡아 보세요.
      '보기' 링크를 누르면 이 드라이버가 나타내는 배열을 보실 수 있습니다.
      이렇게 하면 한글 IME들의 영문 모드에서 일본어 키보드 드라이버가 연결됩니다.
      더 자세한 사항은 도움말에서 "VI. 외부 모듈 - 관련 기술 - 키보드 드라이버의 변경"의 설명을 참고하세요.

      2. 아니면 날개셋 제어판에서 영문 Qwerty나 Dovrak에 해당하는 입력 항목을 고른 뒤,
      '열기'를 눌러서 C:\windows\system32\kbd106.dll 등의 일본어 키보드 드라이버를 직접 불러오셔도 됩니다.
      이게 더 간단한 해결책이 될 수 있습니다.

      답변 되셨으면 합니다. ^^

  2. 일본외국인노동자 2023/10/09 14:07 # M/D Reply Permalink

    답변 감사합니다! 시도 해 보겠습니다.

  3. 일본외국인노동자 2023/10/09 19:12 # M/D Reply Permalink

    안녕하세요. 답변 주신대로 설정을 해 보았습니다.
    결론부터 말씀드리자면 어떻게든 되긴 하지만, 한가지 문제가 있었습니다.

    1. 이 방법으로 드라이버를 잡고 재부팅 해 보니, "로마자 쿼티" 모드에서는 특수문자가 JIS배열로 나오는 것을 확인 했습니다.

    하지만 두벌식 모드로 오면, 다시 특수문자가 US 배열로 바뀌더군요.



    2. 이 방법으로 키보드 드라이버를 불러오니, 처음엔 한글이 입력되지 않고 영어가 입력됩니다.

    조금 무식한 방법이지만, 제어판 "글쇠배열" 항목에서, 영어를 일일히 한글로 바꾸는 작업을 하면, 한글을 입력 할 수 있게 되었습니다.



    단, 문제가 한가지 있더군요.

    애초에 US배열에 없고 JIS배열 고유의 키인 ¥| 키와 \_ 키는 아예 인식이 되지 않는다는 점입니다.

    입력이 안 되며, 글쇠배열 항목에서도 칸 자체가 없습니다.



    혹시 이 문제를 해결할 방법이 있다면, 가르침 부탁드립니다.

    읽어 주셔서 감사합니다.

    1. 사무엘 2023/10/10 08:25 # M/D Permalink

      1. 한글 두벌식일 때는 자체 글쇠배열이 사용되는데(제어판 - 입력기 계층 - 두벌식 - 글쇠배열), 이건 특수문자들이 기존 US 배열 기준이기 때문에 그렇습니다. ^^
      글쇠배열을 편집해 주든가, 아니면 한글 이외의 타 글쇠들은 자체 배열이 아닌 키보드 드라이버의 동작을 따르게 하면 그 문제를 해결할 수 있을 것 같습니다.

      "제어판 - 입력기 계층 - 두벌식"에서 '빠른설정'을 눌러 보시면 '기본 글자판 설정'이 나올 겁니다.
      표준 두벌식을 고르고, '고급 - 비한글 글쇠는 가로채지 않음'을 체크하고 확인을 눌러 보세요.
      그러면 '글쇠 및 변수 옵션' 탭에 가시면 '추가로 인식되거나 인식하지 않을 글쇠'에 뭐가 쭈욱 등록되어 있을 것입니다. 이렇게 설정된 두벌식은 특수문자가 드라이버 방식을 따라갈 것입니다.

      2. 이것 역시 '추가로 인식되거나 인식하지 않을 글쇠'를 설정해 주셔야 할 것 같습니다.
      한국어 키보드에 한글/한자가 있는 것처럼 일본어 키보드에는 그런 완전히 새로운 글쇠가 있군요~~
      '추가'를 누른 뒤에 '직접 눌러보기'에서 그 글쇠가 인식된다면.. 계산식에다가 글쇠배열 하듯이 문자를 입력해 주시면 되겠습니다.

      문제가 해결되었으면 합니다. ^^

  4. 일본외국인노동자 2023/10/10 21:40 # M/D Reply Permalink

    안녕하세요.
    가르침 주신 덕분에 JIS키보드의 특수문자 배열을 사용하면서, 완벽하게 한글을 사용할 수 있게 되었습니다.

    제가 한 방법입니다.

    1. 새로운 입력기를 만든 후 C:\windows\system32\kbd106.dll 일본어 키보드 불러오기

    2. 두벌식의 한글 글쇠를 새로만든 입력기 글쇠쪽에 일일히 복사-붙어넣기

    3. 인식 안되는 키는 글쇠 및 변수 옵션에서 입력, 값을 설정

    4. 오토마타 이어치기 설정


    이것으로 완벽하게 한글 입력 가능했습니다. 사실 이렇게까지 자유자재로 설정할수 있을줄은 몰랐습니다....
    너무 감사합니다!!!!

    1. 사무엘 2023/10/11 10:46 # M/D Permalink

      제 프로그램이 이미 제공하는 기능으로 문제가 다 해결되었고, 원하시는 입력 환경을 구현하셨다니 다행입니다~ ^^
      단순히 Shift+6을 ^에서 &로 바꾸는 정도가 아니라, 일본어 키보드에만 존재하는 특이한 글쇠까지 인식시키려면 키보드 드라이버까지 변경을 해야 했겠네요.
      날개셋 한글 입력기를 사용해 주셔서 감사합니다. 다른 궁금한 점, 불편한 점이 있으면 댓글이나 제 메일로 또 문의해 주세요. 오늘도 좋은 하루 보내시길~ ^^

Leave a comment
« Previous : 1 : ... 87 : 88 : 89 : 90 : 91 : 92 : 93 : 94 : 95 : ... 2141 : Next »

블로그 이미지

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

- 사무엘

Archives

Authors

  1. 사무엘

Calendar

«   2024/04   »
  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:
2679950
Today:
2034
Yesterday:
2484