지난 8월말에 잘 알다시피 <날개셋> 한글 입력기 6.7이 완성되고 공개됐다. 내가 만들었지만 나 자신도 잘 쓰고 있다. 의미심장한 중요한 기능들이 많이 추가되어 아주 만족스럽다.

프로그램의 한 버전이 완성된 후, 조금 시간이 흐르면 버그 수정이나 새로운 아이디어 구현, 기능 추가를 위해서 결국 프로그램 소스를 또 건드리게 되고, 내가 쓰는 개발 중간 버전과 직전 완성 버전 사이에는 차이가 생기게 된다. 그 첫 차이가 생기기까지 걸리는 시간은 생각보다 길지 않다.

이번 6.7도 그 점에서는 예외가 아니다. 벌써 다음 버전 작업이 시작되었다. 프로그램 내부의 버그가 발견되었거나 새로운 기능이 떠오른 건 아니고, 단지 운영체제의 특성과 관련된 enhancement가 불가피하게 생기게 됐다. 그 내역은 다음과 같다.

1. 테마가 적용된 옅은 파랑 선택막대

<날개셋> 한글 입력기의 외부 모듈에서 한자 선택 UI를 꺼내면 외형이 윈도우 7 기준으로 지금까지(up to 6.7)는 왼쪽과 같았다. 그렇던 것을 다음 버전부터는 오른쪽처럼 나오게 수정했다.

사용자 삽입 이미지

highlight 색상이 너무 옅었던 것을 좀 더 진하게 하고, 아이템의 크기를 약간 더 키웠다. 예전보다 보기가 훨씬 더 좋아졌다. 크기를 약간 키웠는데도 MS IME의 목록이 <날개셋>의 그것보다 여전히 더 크다.

잘 알다시피 MS에서는 소프트웨어의 GUI에서 highlight된 항목을 표시하는 방법을 슬금슬금 교체해 오고 있다.
전통적인 방법은 파란 바탕 solid color에다가 하양 글씨였다. 그 이름도 유명한 GetSysColor(COLOR_HIGHLIGHT) 말이다. 아니면, 컨텐츠 자체에 여러 색깔이 서식 형태로 들어갈 수 있는 워드 프로세서 같은 곳에서 블록 같은 걸 표시하는 방법은 흰 바탕을 검정으로 바꾸는 XOR 반전색이 통용되어 왔다.

그러나 요즘 MS에서 밀고 있는 방법은 배경에다 그냥 옅은 파랑을 씌우는 것이다. 이 기법의 원조는 사실 MS 오피스 2000의 '엑셀'로 생각보다 오래 됐지만, 워드에서까지 블록이 전통적인 반전색 대신 옅은 파랑으로  표시되기 시작한 건 오피스 2007부터이다.

윈도우 XP부터는 리스트 컨트롤에서 드래그 사각형을 점선 사각형 대신 옅은 파랑으로 대체하는 LVS_EX_DOUBLEBUFFER 스타일을 도입하였으며, 비스타부터는 메뉴와 운영체제의 공용 컨트롤(리스트 뷰, 트리)에서 선택 막대까지 반전색 대신 알록달록 옅은 파랑 그러데이션이 도입되었다.

그리고 이 테마 색상은 운영체제의 시스템 색상의 영향을 받지 않는다.
Aero를 사용 중일 때에는 잘 알다시피 GPU가 합성해 내는 glass 프레임의 색깔만 바꿀 수 있지, 기존 시스템 색상은 바뀌지 않는다. 어찌 보면 시스템 색상도 점점 과거의 유물처럼 돼 간다는 뜻 되겠다.

그런데 본인은 그 옅은 파랑이 윈도우 비스타나 7이나 동일한 줄로 지금까지 알고 있었는데, 그렇지 않다. 똑같은 Aero 기반이지만 비스타가 약~간 더 옥색에 가까웠고 7이 좀 더 파래졌다.

또한 그 색상도 알고 보면 짙고 옅은 구분이 존재한다. 7은 옅은 색과 짙은 색의 차이가 비스타 시절보다 더 커졌다(위 그림에서 왼쪽의 상하 한 쌍이 비스타 것,, 오른쪽의 한 쌍은 7 것). 그래서 이를 조정함으로써 이제는 비스타와 7에서 모두 보기 좋은 색상이 나오게 되었다. 지금까지 사용하던 채색 방법은 비스타에서는 어차피 별 차이가 없던 반면, 7에서는 너무 옅게 나온다는 문제가 있었다.

2. 윈도우 8 지원

시기가 시기인 만큼 <날개셋> 한글 입력기의 다음 버전은 여건이 허락하는 한 윈도우 8의 지원 강화가 계획되어 있다.
<날개셋>은 지금까지 윈도우 2000에서 발생하는 특수한 문제 해결(아직 윈98이 대세이던 시절), 외부 모듈 첫 개발, 64비트 지원 등 외부적인 큰 환경 변화를 몇 차례 대면했었는데, 윈도우 8 지원도 상당히 도전적인 과업이 될 것 같다.

우선, 윈도우 8을 접한 소감부터 좀 말하자면, 이제 얘들은 XP, 비스타 같은 이름을 일일이 짓기가 귀찮아졌는지, 연도도 아니고 숫자를 버전과 아무 관계 없는 브랜드명으로 쓰기로 작정을 한 모양이다. 윈8의 내부 버전은 6.2이다. (비스타가 6.0, 7은 6.1)

GUI가 동글동글하던 것이 전반적으로 다시 각진 컨셉으로 바뀌고, 그러데이션이 단색(solid color)으로 바뀌는 등, 좀 더 검소해지고 단순해졌다(simplify). 의외이다.

컴덕후라면 이미 익히 알듯이 데스크톱 모드에 이어 메트로 모드라는 게 생겼으며, 메트로 모드는 확실히 과거와의 호환성을 버리고 좀 더 '새끈하고' 스마트폰 앱과 더 친화적인 응용 프로그램 환경을 추구한 듯하다.
근데 데스크톱 모드에 도대체 시작 버튼을 무슨 생각으로 없애 버렸는지는 잘 모르겠다.

윈8에서는 문자 입력기 쪽 인터페이스가 완전히 바뀌는 바람에 기존 한글 IME들은 메트로 모드에서는 동작하지 않으며, 데스크톱 모드에서도 기존 IME 도구모음줄(language bar)가 누락된 채 거의 반쪽짜리 상태로 동작한다. 특히 메트로 모드에서 동작하려면 IME 프로그램이 반드시 디지털 서명이 돼 있어야 한다고 그런다.

무엇보다 심각한 문제는, 기존 API로는 운영체제에 설치되어 있는 IME 프로그램들이 전혀 조회가 되지 않는다는 점이다. 또한 상태 표시 아이콘 쪽도 알다시피 크게 바뀌었기 때문에 이에 대한 대처를 하려면 적지 않은 시간과 수고가 필요할 것 같다.

세벌식 파워업은 수동으로 두벌/세벌 전환을 한번 해 준 뒤에 돌리면 자동 글자판 전환이 다행히 잘 된다. 그러나 IME 설정 대화상자를 꺼내기가 굉장히 불편해졌는데(일일이 제어판으로 들어가야 함. 예전처럼 우클릭만으로 되지 않는다) IME 설정 대화상자를 곧바로 꺼내는 기능이 동작하지 않기 때문에 이에 대한 패치는 해야겠다.

이렇듯, 프로그램 자체의 기능과는 전혀 무관하게 프로그램을 또 고쳐야 할 부분이 몇 군데 생겼다. 그러나 이번 6.7은 그것만 빼면 현재까지는 여전히 버그가 발견된 게 없고 최고의 완성도로 만들어져 있다..

참고로 윈8은 명령 프롬프트에서 '다다.' 글자가 덧나는 버그는 고쳐져 있었다. 그리고 모든 프로세스에서 사용 중인 IME의 종류와 상태가 한데 공유된다! IME가 각 프로세스의 스레드별로 따로 기어들어가는 게 아니라, 별도의 전용 프로세스를 통해 IPC를 써서 응용 프로그램들과 소통하는 것 같다!

※ 여담

- 난 내 컴퓨터로 서식이 없는 글을 쓸 때 무슨 프로그램을 써서 할지가 고민된다.
일단 윈도우에서는 내가 만든 <날개셋> 편집기가 심리적으로 마치 우리집 안방에 있는 것 같은 편안함과 가벼움을 선사한다. 정다운(?) 비트맵 글꼴과 화려하기 그지없는 고급 입력 기능들을 그대로 쓸 수 있으니 이것도 좋다.

한편, 맥 OS의 텍스트 편집기는 비록 한글 입력기의 자유도는 뒤쳐지는 반면, 찍히는 글꼴의 품질이 윈도우와는 넘사벽급으로 차이가 나고 너무 우수하니 이 또한 글 쓰는 즐거움을 선사하는 요인이다.
두 장점을 하나로 합치려면 결국 <날개셋> 한글 입력기가 맥용으로도 나와야 할 텐데 말이다.;;

- 요즘 모바일용 입력 방식 중에는 그냥 버튼을 눌렀다 떼는 게 아니라 특정 제스처를 취했을 때 초성과 중성이 동시에 입력되게 되어 있는 한글 입력 방식이 있다. 이런 로직을 <날개셋> 한글 입력기로 구현하는 건 일도 아니다. 날개셋문자는 애초에 여러 낱자를 한꺼번에 배당을 할 수 있는 구조이기 때문이다. 그걸 글쇠 수가 충분한 편인 PC 키보드에서는 잘 활용을 안 할 뿐.

'가'를 ㄱ+ㅏ로 입력했을 때와 한꺼번에 입력했을 때 종성의 조합 여부를 달리 지정하는 것도 가능하다. 오토마타가 통상 A ? 1: B ? .. 같은 식으로 지정되어 있는 것을 A && B ? 라고 하여 동시 입력 여부에 대한 상태 분기도 직접 지정하면 되기 때문이다. 어지간한 변칙적인 한글 입력 방식에 대한 대비는 <날개셋>이 다 해 놓고 있다.

그렇기 때문에 본인은 어떤 새로운 한글 입력 방식이 있으면 그게 손이 편하냐, 빨리 칠 수 있냐 하는 것보다는 그 입력 방식을 구성하는 기본 동작과 로직이 어떠한지를 보는 편이다. 그게 나의 연구 주제이기 때문이다.

- <날개셋> 한글 입력기의 다음 버전은 6.x대의 마지막 버전이 될 것이다. 이 글에서 언급된 이슈 말고 또 무슨 변화가 생길지는 아직 미지수이다.

그런데 개인적으로 난 윈8은 너무 급격한 변화들 때문에 비스타 꼴 날 것 같은 생각이 든다. -_-;; 왜 자꾸 익숙한 UI를 쓸데없이 바꾸고, 게다가 보안을 빌미로 응용 프로그램 실행엔 번거로운 제약만 자꾸 추가하는지 모르겠다. 2000/ME와 비스타가 망하고 XP와 7이 무진장 장수했는데, 8은 아무래도 오른쪽보다는 왼쪽 계열로 갈 것 같다.

Posted by 사무엘

2012/09/05 19:35 2012/09/05 19:35
,
Response
No Trackback , 15 Comments
RSS :
http://moogi.new21.org/tc/rss/response/729

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

Comments List

  1. Lyn 2012/09/05 21:08 # M/D Reply Permalink

    각지게 한건 삼성처럼 "라운드 처리된 사각형"에 대한 애플의 공격을 피하기 위함이 아닐까요 ㅎㅎ

    그런데 한자 입력창이 자체구현이었군요 ;; 전 윈도우 IME꺼 빌려와서 쓰는건줄 알았는데

    1. 사무엘 2012/09/06 02:45 # M/D Permalink

      1. 하하~! 설득력 있군요. 이러다 RoundRect 함수 자체를 못 쓰게 되지는 않으려나 겁납니다. GDI+에는 있지도 않은 기능이라 하죠?

      2. 네, 6.7에서 도입된 한자어 사전의 데이터만 MS IME를 빌려 쓸 뿐, 창 UI는 자체 구현입니다.
      단적인 예로 날개셋은 마우스 포인터를 움직이기만 해도 선택 막대가 따라 움직이지만 MS IME는 그렇지 않지요. 날개셋 같은 UI가 반응성이 좋아서 경쾌하지만, 키보드만 주로 쓰는 사람에게는 불편하다는 지적도 있습니다.

      창 UI를 통째로 빌려 쓰는 API가 있을 거라고 저는 개인적으로 추정은 합니다.

  2. acuna 2012/09/08 11:20 # M/D Reply Permalink

    좋은 글 감사합니다.
    여쭙고 싶은게 있는데 혹시 Highlight된 사각영역을 출력하는 API가 따로 OS에 존재하는지요?

    1. 사무엘 2012/09/08 23:37 # M/D Permalink

      예. DrawThemeBackground던가, XP에서부터 추가된 운영체제의 theme API를 쓰면 됩니다. (uxtheme.h, uxtheme.lib)

    2. acuna 2012/09/09 11:10 # M/D Permalink

      감사합니다!

  3. 삼각형 2012/09/09 22:45 # M/D Reply Permalink

    1. highlight 에도 OS 별로 차이가 난다니. 저는 이런 자잘한 호환성 맞추기가 상황 별로 전부 재연해 봐야 하기 때문에 꽤 짜증나더군요. 중요한 로직 차이도 아니고 말입니다.

    2. 윈도우 8에 대한 지원을 생각하고 계시군요. 저도 Win8 기반 테블릿을 만저볼 기회가 한번 있었는데 테블릿 쪽에서는 괜찮은 UI를 보여주고 있더군요. 스마트폰과 PC의 경게를 허물겠다는 걸로 보입니다. 어쩌면 Win8 지원을 한다면 '날개셋'을 따로 모바일 용으로 만들지 않아도 될지도 모르겠습니다.

    별도 모바일 제품군을 만들지 않고(정확히는 있던 걸 통합해서) 데스크탑 제품군에 메트로 UI 같은 터치 전용 UI하나 만들고, 마켓 하나 만들고서는 테블릿과 PC에 다 맞추겠다는 건 좀 무리하다는 생각을 합니다. 솔직히 개인 사용자에게 OS 기술적 부분에서는 (안정성, 리소스 관리 등) XP 정도면 충분했죠.

    3. 저도 비스타 꼴 난다에 공감합니다. 처음부터 데스크탑과 모바일 모두를 잡을 수는 없겠죠. 하지만 ME가 있었기에 XP가 있을 수 있었고, Vista가 있었기에 Win7이 있지 않나 생각합니다. 그리고 모바일을 '포인팅 장치를 터치스크린을 사용하는 저사양 컴퓨터'로 만드는데 성공한다면 지금 분산되어 있는 OS시장을 통합하고 개발자는 한 플랫폼에 개발 여력을 집중할 수 있는 환경이 만들어 질지도 모르겠습니다.

    사실 OS라는 분야가 독과점이 필수적인 이유가 플랫폼이 다르면 따로 개발해야 하기 때문이죠. 하나가 높은 점유율을 가지고 다른 하나가 경쟁해 주는 구도가 가장 좋은 구도일 것 같네요. 지금은 너무 난잡하다는 생각이 듭니다.

    1. 사무엘 2012/09/08 23:37 # M/D Permalink

      1. 비스타와 7의 미묘한 옅은 파랑 배색 차이는 조사해 보고 저도 깜짝 놀랐습니다.

      2. 최신 운영체제 지원은 간과할 수가 없는 일이니까요.. ㅎㅎ 사실 멀티터치, 제스처 쪽 연구도 진행해햐 하는데 여건이 안 되어 못 하고 있지요. <날개셋>에 존재하는 보조 입력 도구가 그걸 활용하려고 만들어진 기능이거든요. 윈8에서는 그런 입력 장비에 대한 비중이 더욱 커져 있습니다.

      3. 비록 당장 윈8은 망한다 해도, 문화 충격이 어느 정도 가라앉은 뒤에 기능 보완도 충분히 한 다음 버전이 나오면 그건 대박 날 수 있습니다. ME가 있었기에 XP, 비스타가 있었기에 7... 공감해요.
      윈7 이후의 Windows 플랫폼의 변화 양상이 무척 궁금해집니다.

  4. 사무엘 2012/09/10 16:39 # M/D Reply Permalink

    속보: 윈도우 8을 기준으로 한글 IME들을 검색하고, 특히 MS IME의 벌식 정보를 알아 오고 바꾸는 알고리즘에 대한 대비책이 완성되었습니다.
    입력기, 타자연습, 파워업이 이 솔루션을 반영하여 모두 업데이트될 것입니다. 그 중 덩치가 가장 작은 파워업을 곧바로 업데이트해서 올렸습니다. 벌써부터 윈8을 써 보고 계시는 얼리어답터들은 참고하시기 바랍니다.

    윈도우 8은 그렇잖아도 글자판 설정을 바꾸는 절차가 상당히 번거로워졌는데(language bar 우클릭이 통하지 않음!) 파워업이 세벌식을 쓰는 데 큰 보탬이 될 것입니다.
    처음에는 설정창을 꺼내서 수동으로 두벌/세벌 전환을 해 준 뒤(레지스트리 값을 생성하고), 그 다음부터 자동 전환 기능만 쓰면 됩니다.

    1. 사샤나즈 2012/11/17 22:18 # M/D Permalink

      이 글을 상당히 늦게 봤는데... 기본 IME에서 오른쪽 클릭 통해요. ([한] 아이콘 부분 말고 [가] 부분에서) 아마 서드파티에서도 방법이 있지 않을까 싶어요.

    2. 사무엘 2012/11/19 09:24 # M/D Permalink

      음, 그런가요? 저도 나중에 다시 윈8을 접할 일이 있을 때 확인해 보겠습니다.

  5. 바보 2012/09/11 19:31 # M/D Reply Permalink

    아 이런..
    이 글 대충 보고 6.7로 업글한 뒤에 "왜 난 하이라이트가 계속 비스타처럼 나오지?" 하고 다시 보니 다음버전부터네요.

    그리고 6.5쓰고있었는데 윈도 ime로 바꾸고 업데이트했는데 프로그램 및 기능에 6.5가 그대로 있네요? 6.7도 물론 있구요

    그 상태에서 6.5를 지우니까 6.7도 맛이 가버리고 게다가 삭제도 안되고... ㅡㅡ;

    뭘 잘못한 거죠?

    1. 사무엘 2012/09/11 21:25 # M/D Permalink

      네, 윗글은 다음 버전 예고편입니다.

      말씀하신 상황은 상위 버전을 설치하면 하위 버전은 자동으로 제거되게 해 놓았는데 installer가 제대로 동작하지 않은 것 같습니다. 제가 설치 프로그램의 내부 엔진을 만든 사람은 아니기 때문에 구체적인 기술적인 지원은 해 드릴 수 없습니다. =_=;;

      제일 불편하지만 제일 확실한 방법으로는
      운영체제의 기본 IME를 날개셋 말고 MS IME로 바꾼 뒤 재부팅이나 재로그인..
      제어판을 통해 날개셋 제거.. 윈도우 시스템 디렉터리(System32, syswow64) 두 곳에서 NgsIme.ime를 확인 사살하여 삭제(명령 프롬프트 추천).. 그 뒤 최신 6.7 다시 설치..
      정도를 계속 시도해 보셔야 할 것 같습니다.

      비스타/7급에서는 삭제가 제대로 안 됐더라도 이 프로그램이 충분히 지워졌다고 사용자가 강제 지정하면 프로그램 추가/제거 목록에서 프로그램을 없애는 기능도 있지 않던가요?

  6. 태평동 김씨 2012/09/13 18:49 # M/D Reply Permalink

    프로그램을 감사히 잘 사용하고 있습니다. 그런데 강조색이 불편한 경우도 있더군요.

    문서편집기에서 드래그로 여러 문장을 선택하면 글자와 반대되는 색으로 배경이 강조되면서 나타납니다.
    흰 바탕일 경우 파란색으로 나타나지만 배경이 연녹색일 경우 검은색 배경에 하얀 글씨로 나타납니다.
    파란색 혹은 검은색으로 표현되지 않고 올리브색 등으로 나타났으면 좋겠습니다. 즉, 드래그 시에 강조되는 배경색을 선택할 수 있게 하거나 아니면 좀 옅은 색으로 되었으면 좋겠다는 바램입니다.

    또, 말 나온 김에 몇 가지 더 말씀드리자면,
    텍스트 편집을 하다보면 가장 많이 접하는 경우가 문장의 줄들을 합치는 것입니다. 엔터로 나뉜 문장들을 합치는 것인데 일일이 합치다보면 참 불편합니다. 또한 빈 줄이 여러 개인 경우에 그 줄들을 하나의 빈줄로 바꾸는 경우도 자주 있습니다.
    이런 경우들에 사용할 수 있도록 날개셋 편집기에서 문장들을 하나로 합치는 것이나 빈줄들을 하나의 빈줄로 바꾸는 기능을 넣으면 정말 좋겠습니다.

    그럼.. 좋은 저녁되세요.

    1. 사무엘 2012/09/13 21:27 # M/D Permalink

      안녕하세요?

      1. 편집기는 운영체제의 시스템 색상(고대비 모드가 아닌 이상 보통 흰 배경에 검은 글자)을 쓰는 경우 역시 시스템에 설정된 강조색을 사용하여 블록을 표시하며(파란 배경에 흰 글자), 그 외의 custom 색을 사용하는 경우 그 색의 '보색'으로 블록을 표시합니다.
      custom 색일 때도 시스템 강조색을 사용하게 할지도 생각했지만, 그 custom 색이 시스템 강조색과 비슷한 색일 때는 어떻게 할지에 대한 대비책이 크게 떠오르지 않아서 지금과 같은 정책을 쓰고 있습니다. 색깔은 개인 취향도 크게 타는 영역이기 때문에 쉽게 판단을 내릴 수 있는 문제는 아닌 듯하고요..

      2. 제 프로그램은 전문적인 텍스트 편집기를 지향하며 개발되는 건 아니지만, 그 정도 빈번한 텍스트 조작을 자동화해 주는 액세서리 기능은 갖추고 있습니다.

      블록으로 텍스트를 잡은 뒤 '텍스트 필터'(편집 메뉴.. F4)에서 '빈 줄 제거' 필터가 딱 님께서 원하시는 기능인 듯합니다. 빈 줄을 모두 완전히 제거할지, 아니면 연속된 여러 빈 줄은 한 줄로 먼저 줄일지도 지정할 수 있습니다.
      그리고 <날개셋> 편집기의 자체 찾기-바꾸기 기능은 줄바꿈 문자를 지정할 수 없지만, 텍스트 필터 중에 '일괄 치환' 필터는 \n이라는 탈출문자를 씀으로써 줄바꿈 문자를 지정할 수 있습니다.

      자세한 사용법은 해당 필터의 환경설정 대화상자에서 F1을 눌러서 나오는 도움말을 참고하세요.

  7. 태평동 김씨 2012/09/14 14:57 # M/D Reply Permalink

    아...!! 지금까지 이런 걸 모르고 있었다니!!
    꼼꼼히 도움말을 읽어볼 껄 그랬습니다.
    워드패드가 드물게 제대로 저장이 안 되는 경우(그림 파일이 있을 때)가 있어서 jpg하고 txt 파일로 정리를 했는데 정말 감동입니다.
    습관적으로 살아가는 것이 얼마나 안 좋은지 절감합니다!
    좋은 정보 감사합니다.

Leave a comment
« Previous : 1 : ... 1508 : 1509 : 1510 : 1511 : 1512 : 1513 : 1514 : 1515 : 1516 : ... 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:
2677614
Today:
2182
Yesterday:
2124