다음 버전 개발 근황

지난해 말에 <날개셋> 한글 입력기 6.71이 나온 지도 벌써 두 주가 넘게 지났다.
한 열흘 동안은 프로그램 소스를 고칠 일이 없이 나도 새 버전을 잘 썼다. 한글 입력과 관련하여 내가 속으로 구상하고 있는 최소한의 기술적 기반을 아주 탄탄히 갖춰 놓은 이 프로그램에 만족하면서 지냈다.

그러나 세월이 흐르면서 역시 프로그램에는 약점, 버그 내지 개선할 점이 발견된다.
그리고 지금 추세대로라면 다음 달쯤에 6.72 정도의 마이너 업그레이드 버전이 또 나와야 할 것 같다.
이 글에서는 2013년 1월 현재의 <날개셋> 한글 입력기의 개발 소식을 좀 전하도록 하겠다.

1. 사용자 정의 조합 제어판 UI에 프로그램이 뻗는 버그가 있음

먼저, 좀 어이없고 치명적인 버그가 발견되었다.
6.71은 제어판에서 '<날개셋> 고급 입력기'의 관할에 있는 '사용자 정의 조합'의 데이터를 조합 로직이든 후보 데이터든 고칠 수가 없다. 그걸 고치고 나면 데이터가 쓰레기값으로 바뀌고 프로그램이 죽는다.

본인은 한번 만들었던 코드를 그냥 내버려 두는 게 아니라 끊임없이 최신 코딩 스타일로 리팩터링을 하는 편인데, 그 과정에서, 해제해서는 안 되는 메모리를 부적절한 타이밍에 먼저 해제해 버리는 실수가 들어갔다.
이런 버그가 생긴 것을 유감-_-스럽게 생각한다.

2. 외부 모듈, 한글 첫 타가 덧나거나 끊기는 문제

<날개셋> 한글 입력기 외부 모듈은 특정 응용 프로그램에서 한글 조합 첫 타가 덧나거나 조합이 끊어지는 등, 제대로 인식되지 않는 문제가 종종 있었다. MS 오피스의 엑셀이나 파워포인트 등, 평상시에는 텍스트 편집 모드가 아닌데 한글 입력과 동시에 cursor가 나타나고 텍스트 편집 모드로 진입하는 프로그램의 경우 이런 오동작이 있는 편이었다.

그리고 최근에는 유명 공개 소프트웨어인 Paint .NET의 텍스트 입력 도구에서도 첫 타가 제대로 처리되지 않는다는 버그 신고가 있어서 이를 확인했다.
분석을 해 보니, 문제를 해결하는 방법은 간단하다. 이미 알려져 있는 방법론을 적용하면 된다. 그런데 문제는, 그 방법론은 다른 프로그램에서는 또 다른 오동작을 일으킨다는 것이다.

모든 프로그램에서 정확하게 잘 동작하는 해결책은 본인은 MS 한글 IME의 소스를 보지 않은 이상, 난 알지 못한다. 이게 사실은 IME의 개발과 관련해서 굉장히 골치 아픈 문제이기도 하다. 결국 현재 IME를 사용 중인 응용 프로그램의 이름에 따라 일부러 서로 다르게 동작하는 지저분한 꼼수를 동원할 수밖에 없었다.

그래서 Paint .NET에서 발생하는 그 문제를 어쨌든 해결은 했다. 그러고 보니 네이티브 코드 프로그램이 아닌 닷넷 기반 프로그램을 디버깅한 건 이번이 처음인 것 같다. .NET 프로그램은 EXE의 PE 헤더로는 x86용 32비트 프로그램이라고 명시되어 있어도, 64비트 운영체제에서는 결국 64비트 IME가 동작한다는 걸 알 수 있었다. 신기한 환경이다.

하지만 근본적인 문제를 해결한 게 아니라 응용 프로그램별로 인위적으로 문제를 피해 가게 한 것일 뿐이기 때문에, 앞으로 또 특이한 프로그램에서는 한글 첫 타와 관련된 문제가 여전히 있을 수 있다.
내가 나름 <날개셋> 편집기라는 에디터까지 다 만들어 봤지만, IME가 아닌 응용 프로그램의 관점에서 어떻게 해야 “첫 타를 그렇게 특이하게 처리하는 프로그램”을 만들 수 있는지를 모른다. 그래서 IME도 그렇게 불완전하게 만들 수밖에 없음을 밝힌다.

3. 윈8 지원은?

그리고 많은 사용자들이 기다리고 있을 Windows 8 환경의 지원에 대해서도 얘기를 하겠다.
결론부터 말하자면 잘 되고 있다.

사용자 삽입 이미지

윈8의 문자 입력 시스템은 이전 버전과 비교했을 때 크게 두 가지가 바뀌었다.
첫째, 스레드 단위로 모든 프로그램이 제각각 서로 다른 입력 언어와 한영 상태를 갖던 전통 관행을 깨고 모든 시스템이 동일한 입력 언어와 입력 상태를 공유하는 옵션이 추가되었다.
둘째, 입력 언어당 한/영 상태 같은 오로지 한 개의 버튼만을 갖는 극단적인 간소화 모드가 추가되었다.
이 두 옵션은 모두 기본적으로 “켜져 있다”.

거기에다 갑자기 무슨 바람이 들었는지 IME의 아이콘들의 배색을 전부 black & white 배색으로 바꿔 버린 건 부가적인 사항이고.

일단 개인적인 평을 말하자면 '둘째'의 경우 왜 지금과 같은 체계로 바꿨는지가 불만이며 좀 이해가 안 간다.
기존의 TSF language bar에도 개념적으로 간소화 모드는 있었다. IME는 도구모음줄에다 버튼들을 등록할 때, 간소화 모드에서도 표시되어야 하는 정말 중요한 아이콘에 대해서는 별도의 옵션 플래그를 주게 할 수 있었다.

그래서 도구모음줄을 우클릭한 뒤 '작업 표시줄에 아이콘 추가' 옵션을 끄면 중요한 아이콘만 표시되는 간소화 모드가 된다. 사실 이건 사용자를 오도하기에 충분할 정도로 말을 굉장히 이상하게 번역해 놓은 것이다.

뭐 아무튼.. 이것만 활용하면 아무 문제가 없을 텐데,
윈8은 또 자체적인 간소화 모드를 구현하기 위해서 IME가 별도의 카테고리 등록을 하고 아이콘을 추가로 등록해야만 하는 등, 굉장히 비생산적이고 번거로운 절차를 추가했다.

그래도 어쩔 수 있나.. 까라면 까야지. 어쨌든 윈8만의 간소화 모드를 지원하게 해서 데스크톱 모드에서 도구모음줄이 나오게 했고, 그리고...

사용자 삽입 이미지

메트로 앱에서 Win+Space로 입력기를 전환하여 <날개셋> 한글 입력기를 구동한 모습 인증샷이다. 올레!
나는 평가판을 쓰고 있어서 그런지, 디지털 서명을 안 해도 동작을 하긴 한다.
윈8 지원이 잘 되면.. 6.72가 아니라 8자에 맞춰서 다음 버전을 그냥 6.8로 올려 버릴 수도 있다.

사실, '메트로'라는 단어는 윈8이 나오기 전에 잠깐 쓰이다가 폐기된 용어이고 현재 MS에서 공식적으로는 Modern UI라고 부른다. 하지만 난 '모던 UI'보다 '메트로'가 훨씬 더 직관적으로 잘 와 닿는데 어떡하지? 마치 notification area vs '시스템 트레이'처럼 윈도우 운영체제에는 공식 명칭과 비공식 명칭이 따로 노는 요소가 몇 가지 더 있다.

전체 화면에서 돌아가고 단축키를 외워야 하는 등, 메트로 앱은 어찌 보면 옛날 도스용 프로그램으로 회귀한 듯한 느낌이다. 단지 도스 시절보다 하드웨어의 성능이 훨씬 더 좋고 앱 프로그래머가 직접 하드웨어를 저수준에서 제어해야 할 필요가 없을 뿐이다.

4. 기타

사소한 사항이지만, 도움말과 UI의 용어를 추가로 좀 교정한 게 있다.
그리고 도구모음줄이 세로로 길쭉한 작업 표시줄에 embed되어 있어서 버튼 아이콘들이 여러 줄에 걸쳐서 나열될 때, 아이콘들이 언제나 순서대로 위에서 아래로 순서대로 잘 표시되게 로직을 개선했다. 이것도 원래는 스펙대로만 만들면 운영체제가 보장을 잘 해 줘야 하는 건데 좀 사소한 잡음이 있었다.

지난 6.7 이래로 6.71의 다음 버전도 실질적인 '새로운 기능의 추가'는 없이 버그 수정, 최신 운영체제 지원, 데이터와 도움말의 개선 같은 변화만 있을 듯하다.

Posted by 사무엘

2013/01/07 19:32 2013/01/07 19:32
Response
No Trackback , 4 Comments
RSS :
http://moogi.new21.org/tc/rss/response/780

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

Comments List

  1. 100 2013/01/08 20:20 # M/D Reply Permalink

    지금 미국에서는 이미 태블릿 pc가 늘어나고 있고, 데스크톱은 줄어들고 있는데, 윈도우
    7이나 윈도우 8의 화상 키보드에서 (세벌식으로 입력은 되는데) 두벌식밖에 표시가 안되고
    맨윗자리 배열도 뒤틀려 있어서
    태블릿 PC 같은 곳에서 세벌식 사용이 불편해질 것 같습니다.
    윈도우 8의 터치 키보드의 설정을 바꾸는 방법도 없고 (태블릿 PC에서는 세벌식 최종이나 390같은 4단을 사용하는 배열을 못쓰는건가?)
    인터넷 같은곳을 보면 세벌식이 뭔지도 모르고 안좋다고 글을 쓰는 사람도 있고
    채팅중에 세벌식 얘기를 꺼내면 “두벌식이 더 좋은데.”하는 사람도 있더라고요.
    전에 마인크래프트라는 게임을 즐겨 한 적이 있는데(두벌식자판 쓸때)
    그게임은 한글채팅 지원이 안되어서 따로 한글패치를 해야 돼는데
    한글패치라는게 죄다 두벌식,쿼티자판이어서 채팅할때마다 메모장을 이용해서 복사해서 썼습니다.

    또 아이폰에선 세벌식 지원을 안하고
    제가 아는 사람들도 세벌식을 쓸 필요성을 느끼지 못하고 있는것 같습니다.
    한글날 특선 다큐멘터리에도
    두벌식 자판만이 나옵니다.
    세벌식의 미래는 어떻게 될까요... 아예 없어지는건 아닌가 걱정이 됩니다.
    안마태자판도 한국에서는 별 성과가 없는 것 같고요.(예전에 산업자원부가 비판을 했다네요. 산업자원부는 안마태 세벌식 을 복수 표준으로 하는것도 거절했고, 공병우 세벌식도 마찬가지. 기술표준원은 왜이러는지 모르겠습니다.)

    또 궁금한것이 있는데 한글문화원 누리집에 글이 2010년 이후로 안올라오는 것 같은데 왜 그런지 아시나요? 가입도 안돼고요.

    1. 사무엘 2013/01/09 10:34 # M/D Permalink

      안녕하세요? 세벌식에 관심이 많으신 분 같네요. 반갑습니다.

      1. 일단 모바일과 태블릿은 근본적으로 PC 키보드처럼 글을 빠르고 많이 칠 수 있는 환경이 아니고 세벌식의 장점이 크게 부각되는 곳도 아닌 건 사실입니다.
      세벌식은 표준도 아니고 인지도도 안습한 수준이니 터치 키보드 같은 데서의 지원도 열악할 수밖에 없습니다. 더구나 외국 프로그램들은 한글 단축키 같은 것도 당연히 두벌식을 기준으로 만들어지겠죠. 당연히..

      2. 많은 분들이 그래서 세벌식의 미래에 대해 무척 비관적으로 보는데.. 저는 크게 긍정적이지도 않지만 그 정도로 비관적이지도 않습니다.
      극소수의 매니아 글자판으로 남을지언정, 한국인이 최소한의 멘탈이 있다면 도깨비불이 없고 이 정도로 큰 차이가 있는 한글 기계화의 한 축이 그렇게 호락호락 쉽게 없어지겠어요..? 분명 그렇지도 않을 거예요.

      3. 안 마태 글자판은 범용/일반적인 타자 동작을 가정하고 만들어진 입력 방식이 아니기 때문에 두벌식 내지 공 병우 세벌식과 동일선상에서 경쟁 가능한 글자판은 아니라 여겨집니다.

      4. 한글 문화원은 공 병우 박사 시절과는 달리, 상주하는 직원이 있는 것도 아니고 사이트의 관리에 어려움이 있어서 운영이 중단되어 있습니다. 관계자들도 각자 다 자기 생업과 자기 SNS/홈페이지로 흩어져 있고.. 좀 안타까운 점이지요.

  2. kyh 2013/01/26 14:35 # M/D Reply Permalink

    날개셋 타자연습을 사용하다가 속담의 표현 중에 틀린 부분이 있어서 글을 남깁니다.
    예를 들면, “돈만 있으면 개도 멍첨지다” 인데 멍첨지가 엉첨지로 되어 있습니다.
    멍첨지는 표준국어대사전, 민중국어사전 모두 멍첨지만으로 나타내고 있습니다.
    또한 “사돈(집)(의) 잔치에 중이 참여한다”도 “사돈이 잔치에 중이 참여한다”로 되어 있습니다.
    사소한 부분이지만 바로잡았으면 좋겠습니다.

    1. 사무엘 2013/01/26 16:13 # M/D Permalink

      오, 그렇군요. 좋은 지적에 감사드립니다. 고쳤습니다.

Leave a comment

2012년의 끝을 앞두고 <날개셋> 한글 입력기의 새 버전이 나왔다.
원래 6.8을 계획했으나 그만치 개발은 못 하고 6.71로 마무리 지었다. 여기에는 이번 버전에서 윈도우 8 메트로 UI용 IME를 아직 못 만들었다는 이유가 가장 크게 작용했다. 데스크톱용도 윈도우 8이 제시하는 새로운 규격대로 맞춰진 건 없으며(흑백 아이콘, 새로운 표시 상태 등), 달라진 것도 없다.

MSDN에 개발 관련 정보가 뜨질 않으니 내가 뭘 더 할 수가 없다. “윈도우 8에서는 이런 점이 달라지니까 IME 개발자들은 여기에 대비해야 한다. 더 자세한 스펙은 추후에 게재될 것이다”라고 해 놓고 아직까지 게재가 되지 않고 있다.

1.
그럼에도 불구하고 이번 버전은 나온 시기가 시기인 만큼, 가장 먼저 윈도우 8에 대한 지원이 부분적으로 강화되었다. 사실, 수 년 전에 윈도우 비스타나 7이 나왔을 때도 <날개셋> 한글 입력기는 수차례 해당 최신 OS에서만 발생하는 문제를 해결하느라 패치가 몇 번 나와야 했다. 바뀔 게 없을 것 같은 분야여도 매번 은근히 바뀌는 게 많다.

그래서 이번 버전에서는.. 윈도우 8에서 편집기를 실행해서 제어판을 열고 '외부 모듈 관리'로 갔는데 IME들이 하나도 뜨지 않던 문제를 해결했으며,
편집기에서 빈 입력 스키마(운영체제의 문자 입력 프로그램 사용) 모드로 한글 윈도우 8이 내장하고 있는 옛한글 입력기로 옛한글을 입력하는데 글자가 종종 제대로 입력되지 않고 오동작이 발생하던 문제를 해결했다. <날개셋> 편집기는 자체 입력기와 운영체제 입력기를 모두 잘 수용하는 것을 목표로 하니까 말이다.

윈도우 8의 옛한글 입력기는, 옛날 MS 오피스 200x 시절에 한글판 plus pack이 제공하던 옛한글 입력기와는 동작 방식이 좀 달랐다. 단순히 유니코드 5.2를 지원하는 것 이상으로, 지금까지는 고려할 필요가 없던 특이한 상황에 대한 동작을 요청하는 게 있어서 내 프로그램의 에디팅 엔진을 보강했다. 뭐, 엄밀히 말하면 내 프로그램이 지금까지 TSF 인터페이스를 제대로 구현 못 했던 것이니 말이다.

다만, 3글자를 커버해야 하는데 2글자를 커버하는 것은 정황상 MS IME의 버그로 보인다. 내 프로그램에서 고쳐야 할 부분이 없다. 겉으로 보기만 좀 이상할 뿐 다른 문제는 없으므로 안심해도 됨.

2.
제어판의 GUI가 운영체제의 최신 GUI 요소를 반영하도록 몇몇 군데 개선되었다. 사소하지만 주목할 만한 개선 사항이다. 예를 들어, 제어판은 이미 개념적으로 split 버튼을 사용해 오고 있었는데 운영체제가 제공하는 진짜 split 버튼을 사용하도록 하는 조치가 이제야 취해졌다. split 버튼 자체는 이미 윈도우 비스타에서부터 있었는데도 말이다. 아울러 트리와 리스트의 모양도 좀 더 예뻐졌다.

3.
<날개셋> 편집기는 텍스트 파일을 열 때 유니코드 UTF16/UTF8, 그리고 한글 완성형/조합형 코드에 대해서는 자동 감지를 한다. 그러나 그 외의 인코딩은 자동 감지를 못 하고 사용자로부터 수동 확인을 받는다.

예전까지는 프로그램 실행 직후 자동으로 열리는('이전에 편집하고 있던 문서 기억' 옵션) 파일이나, '파일' 메뉴에 있는 '최근 파일' 명령으로 파일을 열 때도 매번 인코딩 확인 대화상자가 떴다. 그러나 이번 새 버전에서는 자동 감지가 되지 않는 파일을 다시 열 때는, 사용자가 무슨 인코딩으로 열었는지를 기억하게 했다. 중국어나 일본어, 유럽어처럼 한글도 유니코드도 아닌 인코딩으로 파일을 자주 편집하는 사용자에게는 이 조치가 굉장히 편리하게 와 닿을 것이다.

단, 아무 문제 없이 제대로 연 파일에 대해서만 인코딩을 기억한다.
<날개셋> 편집기는 이 프로그램에서 그대로 다시 저장을 했을 때 정보가 손실되는 파일에 대해서는 파일을 연 직후에 경고문을 띄운다. null 문자가 있어서 뒷부분은 모조리 잘렸다거나, 줄바꿈 문자가 일치하지 않는 부분이 있거나, 혹은 인코딩이 잘못 지정되어서 유니코드로 변환이 안 된 코드 바이트들은, 도로 저장할 때 원형이 보존되지 않고 소실되기 때문이다.

불러오는 과정에서 그런 문제가 있었던 파일이라면 사용자가 어차피 인코딩을 잘못 지정했을 가능성이 높으므로, 인코딩을 기억하지 않는 것이 훨씬 더 합리적이다.

4.
예제 데이터에도 변화가 생겼다. 예전 글에서 밝혔듯이, 네벌식이 정식 유형 파일로 들어갔으며, 일명 '강화 세벌식'이라고 불리던 세벌식 무한 낱자 수정 입력 방식 역시 <날개셋> 한글 입력기의 상징적인 기능인 만큼 유형 파일로 승격되었다. 한편, 팥알 님이 고안하신 세벌식 3-2012 글자판이 글쇠배열 파일로 추가되었다.

5.
그리고 끝으로, <날개셋> 타자연습은 크게 두 가지를 개선했는데,
첫째, 게임을 전체 화면에서 실행할 때 점수 숫자가 올라가는 게 뭔가 랙이 걸린 듯이 이상하게 업데이트되던 버그를 고쳤다. CPU 탓인지 GPU 탓인지는 모르겠지만, Core 2 Duo급 컴에서는 문제가 없었는데 i5 이상 되는 더 좋은 컴퓨터에서는 이런 현상이 종종 있었다.
그리고 둘째, 좀 어이없는 버그이고 언제부터 들어갔는지는 모르겠지만, 연습글 분석을 시키자 프로그램이 뻗던 버그를 고쳤다.

입력기와 타자연습을 모두 사용한다면 모두 업데이트를 할 것을 권장한다.
아, 그리고 잊을 뻔 했는데, 두 프로그램 모두 이번에 도움말을 처음부터 끝까지 다 읽어 보면서 내용을 교정하고 싹 고쳤다. 이것도 읽어 보시면 좋을 것이다.

Posted by 사무엘

2012/12/25 08:32 2012/12/25 08:32
Response
No Trackback , 10 Comments
RSS :
http://moogi.new21.org/tc/rss/response/774

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

Comments List

  1. sjh 2012/12/25 21:04 # M/D Reply Permalink

    페이스북아이디가 없어서 여기에 올립니다.

    세벌식 글쇠배열 표시 프로그램이나 타자연습에서
    왼손 아랫자리가 세벌식은 ㅁ은 4번째, ㄱ은 3번째, ㅔㅗㅜ는 2번째손가락으로 치는걸로 알고있는데(두벌식이나 쿼티,드보락과 달리)
    그렇게 나오지 않네요.

    1. 사무엘 2012/12/26 07:06 # M/D Permalink

      무슨 말씀이신지요?
      모음의 경우 ㅗㅜ(V,B)는 검지(2)가 맞지만, ㅔ(C)는 셋째입니다.
      그리고 받침을 말씀하시는 거라면 ㅁ(Z), ㄱ(X)는 각각 왼손 다섯째와 넷째손가락에 대응하는 게 맞습니다.
      초성은 ㅁ(I), ㄱ(K) 모두 오른손 셋째이지요.

  2. likesam 2012/12/25 22:48 # M/D Reply Permalink

    항상 감사히 사용하고 있습니다.

    1. 사무엘 2012/12/26 07:06 # M/D Permalink

      저도 감사합니다. 유용하게 사용하세요. ^^

  3. sjh 2012/12/26 16:22 # M/D Reply Permalink

    저도 그렇게 알고 있었는데,
    http://pat.im/840 이 사진을 보니까 그렇게나와있네요.
    저도 잘은 모르겠습니다.

    p.s 날개셋 타자연습 덕분에 2달연습했는데 지금 세벌식 400타정도 나옵니다.

    답글다는법을모르겠네요.

    1. 사무엘 2012/12/26 23:45 # M/D Permalink

      오오, 팥알 님 홈페이지에 이런 자료도 있었군요.
      공 병우 세벌식은 약간 색다른 운지법을 권장했다는 걸 오늘 처음 알았습니다.
      저는 왼손 새끼손가락을 쓰는 건 아무 거부감이 없는데, 반대로 오른손이 좀 걸리더군요.
      ㅋ(0)은 새끼손가락으로 도저히 칠 수가 없어서 진작부터 넷째로 익혔고, 요즘은 ㅍ(p)까지 약손가락이 편해지려 합니다.

      아무튼 세부적인 운지법은 절대적인 법칙이 있다기보다는 사람마다 차이가 있을 수 있겠죠.
      세벌식을 익히신 지 두 달 만에 400타 나오신 것을 축하드립니다. ^^

  4. 정준영 2012/12/29 13:38 # M/D Reply Permalink

    6년전부터 날개셋을 아주 잘 사용하고 있습니다ㅋ 이렇게 좋은 입력기 만든 김용묵님께 일단 감사드립니다

    제가 최근에 윈도우 8을 설치했습니다. 그런데 날개셋 입력기가 앱 상태에서 동작을 지원하지 않는 바람에 입력기를 삭제할 수가 없네요. 제가 세벌식에 쿼티를 쓰면 좀 나은데, 세벌식에 드보락을 쓰다보니가 ms입력기를 쓰기도 힘든 상황입니다. (지금 상황은 아예 드보락 키보드를 불러와서 쓰고 있지요)

    앞으로 윈도우 8에서 날개셋 입력기를 쓸 사용자가 늘어날 것 같은 만큼 이부분을 해결해 주셨으면 좋겠습니다.

    1. 사무엘 2012/12/29 23:09 # M/D Permalink

      네, 반드시 짚고 넘어가야 할 문제인데, 공식적인 개발 리소스가 없어서 더 진행을 할 수 없습니다. 답보 상태가 생각보다 오래 지속될지도 모릅니다.
      더구나 메트로용 IME는 보안 문제 때문에 디지털 서명까지 요구하고 있는 걸로 저는 알고 있어서 더 골치가 아프네요.
      아무튼, 제 프로그램을 성원해 주셔서 감사합니다. ^^

  5. 잔혹꼬맹 2013/01/03 16:49 # M/D Reply Permalink

    http://image.fileslink.com/624555c333107d4/img.png 스샷 주소

    페인트 닷넷이라는 프로그램에서

    한글, 국민, 국민은 순서로 입력해본 것입니다.

    혹시나 해서 기본 윈도7 입력기로 입력했을때는 잘 입력되었습니다.

    확인좀 부탁드립니다.

    1. 사무엘 2013/01/03 18:06 # M/D Permalink

      정말 오랜만에 접하는 '유의미한' 버그 신고이군요.
      MS IME가 아닌 날개셋에서만 발생하는 문제이고, 쉽게 100% 재연가능하고..
      특정 프로그램에서 첫 타가 씹히거나 덧나는 문제는 굉장히 구리고 고전적인 버그인데, 조만간 살펴보겠습니다.
      알려 주셔서 고맙습니다~!

Leave a comment

근황, 소식, 내 계획 짬뽕

1.

2012년이 다 저물어 가고 있다.
일단, 올해 하반기에는 문화· 정치적으로 모처럼 아주 기쁜 소식이 있었으니 그것부터 먼저 회고하고 넘어가야겠다.
바로 한글날이 22년 만에 다시 빨간날로 회복된 것! 그것도 미우나 고우나 이 명박 정권 때 이뤄졌다.
결정이 하도 지지부진하니 내년 달력을 만드는 업자들이 “이거 한글날은 빨간날로 해야 됩니까, 말아야 됩니까? 빨리 결정해 주세요!” 라고 독촉을 할 정도였다고 하는데.. 결국은 통과됐다.

알다시피 한글날은 원래 과거의 식목일처럼 공휴일인 기념일이었다. 그랬는데 노 태우 정권 때 공휴일에서 제외되어, 근처의 '철도의 날', '학생의 날'처럼 안 쉬는 여러 기념일 중 하나로 전락했다.
노 무현 정권 때는 국경일로 승격됐으나, 제헌절처럼 “안 쉬는 국경일”이라는 희대의 이상한 어정쩡한 날이 되었다.

그래서 한글 학회, 한글 문화 연대 같은 순수주의 어문 운동 단체에서는 수 년째 정부를 상대로 청원을 넣고 시민 계몽을 하고, 올해는 특히 온갖 기자 회견과 퍼포먼스를 연 끝에 드디어 승리를 쟁취해 냈다.
너무 무리하게 말을 순화하자는 식으로 약간 극단적인 주장에 모두 공감을 할 수는 없지만, 그래도 이 단체들이 정말 훌륭한 일을 해 냈다. 잘한 건 잘한 것으로 인정하고 이들의 열정을 칭송해 주자.

한글날 공휴일 지정을 가로막아 온 최종 보스는 역시나 경제 단체였다.
경제 단체들의 강력한 반발 때문에 산업 기능 요원 제도도 병무청이 단호하게 못 없앴다는 점을 감안하면, 얘들이 하는 짓이 다 병크는 아니다. 허나 공휴일이 너무 많다는 논리로 한글날 공휴일화를 반대하는 건 이미 안 통하는 논리이다. 안 그래도 우리나라는 노동자들의 근로 시간이 이미 세계 최상위를 다툴 정도로 길며, 우리나라는 대체 공휴일이라는 개념이 없기 때문에 날짜수만 평균 이상이지 실질적인 노는 날 수는 그리 많지 않다.

설령 공휴일이 정말 너무 많다면, 성탄절과 석가탄신일부터 칼질을 하는 게 순리일 것이다. 종교 공휴일 때 노는 나라는 주변의 CJK 중에서도 K밖에 없다. 이것도 합리적이고 이성적인 국민이라면 누구나 공감하는 바인데 왜 국민들 뜻대로 선뜻 안 되는 걸까?

“국경일 중에 삼일절 같은 날은 중요한 날이긴 하지만, 딱히 기쁜 날은 아니다. 그러나 한글날은 해당 국가의 정치나 종교와 관련이 없으면서 오로지 문화적으로 레알, 진정으로 경축할 가치가 있는 기쁜 날이다.” 이 점을 기억하자.
한글날도 공휴일이 됐는데 이제 사형 집행만 좀 부활하면 정말 잃어버려진 과거 회복이고 기쁜 일이 될 텐데...

2.

자, 그리고 비주얼 스튜디오 2012를 드디어 회사에서 깔아서 써 봤다.

외형이 또 심하게 달라졌다. 아무리 버전업이 돼도 3.x나 6.x나 아이콘 하나 안 바뀌고 외형이 심하게 변화가 없는 <날개셋> 한글 입력기에 비하면 MS의 변화를 위한 변화 저력은 정말 대단한 수준이 아닐 수 없다.
2012는 우중충한 군청+보라 배색이던 2010과는 달리, 은색· 회색· 흰색 배색으로 확 바뀌었으며, 2010과는 달리 non-client 영역에 일반적인 thick frame조차도 없다. 무슨 말이냐 하면 옛날의 아래아한글 97급으로 외형이 독자적인 형태가 됐다는 뜻이다.

16컬러풍으로 회귀한 아이콘 디자인, 그러데이션에서 단색(solid color)으로, 동그란 모서리에서 각진 사각형으로 회귀한 건 영락없이 10여 년 전의 VS .NET 첫 버전을 떠올리게 하는 외형이다. 아니, 윈도우 8 자체가 전반적으로 복고풍이다.
물론, 배색만 단순해졌을 뿐, 안티앨리어싱이 적용되어 아이콘의 색상 수 자체는 여전히 트루컬러급이다. 16컬러 “풍”으로 바뀌었을 뿐이지, 진짜 16컬러로 후퇴한 건 아님. ㅎㅎ

외형뿐만 아니라 2012는 기능도 무척 강화되어, IDE 에디터에서는 사용자가 선언한 명칭이 청록색으로 따로 표시되고, 굳이 Ctrl+Space를 누르지 않아도 첫 타부터 인텔리센스 자동 완성이 슝슝 튀어나온다. 오오~~

그리고 성능 분석과 프로파일링 기능이 더욱 강화되었으며, 소스 코드 정적 분석 기능이 드디어 추가되어 고품질 코드를 만드는 데 더욱 기여하게 되었다. 정적 분석 기능은 이전 버전의 VS에서도 있긴 했으나, 제일 비싼 엔터프라이즈급 버전에만 있었기 때문에 개인 인디 개발자가 접하기는 어려웠다.

<날개셋> 당장 다음 버전은 여전히 VS 2010으로 빌드할 예정이나, 이 버전의 사용 기간은 의외로 짧아질지도 모르겠다. 그리고 정적 분석을 돌려서 소수나마 코드에 존재하는 몇몇 논리적인 문제를 해결하기도 했다.

3.

지난 12년간 <날개셋> 한글 입력기를 통해 얻은 것은

  • 수능, 내신 다 씹어먹고 대학 진학 성공
  • 한글 연구 진영에서는 절대부동의 인지도 확보. 병역특례 TO도 사실상 그것 덕분에 얻은 거나 마찬가지
  • 인디 소프트웨어 개발자(개인 개발자) 커뮤니티에서의 인지도 확보
  • 보수적으로 잡았을 때 국내외에 몇천 명 정도로 추정되는 사용자와 잠재적 지지자. 국내는 물론이고, 생각지도 못했던 나라의 현지인이나 교포에게서 한글 로마자 입력 방식, 신세벌식, 세벌식 무한 낱자 수정 등등을 고맙게 잘 쓰고 있다는 연락 받았을 때 굉장한 보람 느꼈음.
  • 몇 차례의 대회/소프트웨어 공모전 입상을 통한 통산 몇백만 원 정도의 상금 수입
  • 거기 들어간 기술의 일부를 떼어 주는 개인 개발 용역으로 통산 1천몇백 만원 정도의 수입 (그리 큰 액수는 아니지만, 상대적으로 쉽고 재미있게 덕업일치를 이루면서 번 돈이라는 게 중요)
  • 학부 시절, 졸업/개별연구 명목으로 5학점 정도의 전공 학점 기여. 학술지 논문 1회 게재
  • 석사 논문 주제와 학위

그리고 무엇보다, 한글을 내가 원하는 어떤 방식으로도 입력하고 다룰 수 있으면서도 마치 기계식 타자기를 컴퓨터로 옮겨 놓은 듯한 한글 오덕질용 작고 가벼운 에디터. 그리고 Windows 운영체제에서는 거의 만렙을 찍은 한글 IME가 내 컴퓨터에 있다는 것에 대한 자부심과 정신적 만족감. 그걸 내가 혼자 다 만들었다는 것에 대한 성취감. 이로부터 파생되는 한글에 대한 자부심, 애국심 등등이다.

다음으로 잃었거나 어쨌든 줄어든 것은..

  • 적절한 대학 GPA (ㅋㅋㅋㅋㅋ)
  • 의대, 공무원, 대기업, 공기업 등에 들어가기 위한 스펙 쌓을 기회 (정말 하나도 거들떠보지도 않았다..)
  • 여타 분야나 IT 기술에 대해 관심을 갖고 익힐 여유
  • 연애와 결혼 기회 (...)

이 정도면 수지 맞는 장사이려나..? ㅋ

4.

내가 개인적으로 아쉬움을 느끼는 것은, '한국어 공학'에 비해서 '한글 공학'의 위상이 굳건하지 못하다는 점이다.
한국어 공학과 한글 공학은 목표는 비슷하지만 다루는 대상과 방법은 상당히 다르다.
그리고 내 관심분야는 '한국어 공학'이 아니라 '한글 공학' 쪽이다.

한글 자체만으로 오덕질을 할 거리가 전혀 없고, 더 발전할 거리가 보이지 않았다면 나도 그냥 사전학, 코퍼스 언어학, 자연 언어 처리 같은 데 관심을 뒀을 수도 있다.
아니, 언어학 쪽에 관심을 둘 필요조차 없이 그냥 자동차나 컴퓨터, 심지어 철도만 연구하는 평범한 공돌이의 길을 갔을 가능성이 높다.
그러나 문자가 저렇게 있는 걸 보니, 그걸 연구하지 않고서는 다른 분야는 도저히 못 파겠다..

물론, 지금 분위기를 이해를 못 하는 건 아니다.
지금이 옛날 같은 타자기나 XT/286 컴 시대도 아니고 문자 기계화 자체만으로 뭘 더 연구할 게 있는지 의아해할 만도 하다.

그래서 '한글 공학'은 문과 계열보다 오히려 언어학을 전공하지 않은 여타 분야 이공계(특히 입력기 쪽)나 디자인 분야(당연히.. 글꼴 쪽) 종사자들이 더 연구하는데.. 그쪽에서는 반대로 언어학 기반이 없으니 연구의 깊이에 한계가 있다.

그러나 한글은 주변의 한자나 라틴 알파벳이나 일본 가나와는 구조가 확연히 다른 문자이고, 그 조합 원리 자체만을 이용해 얼마든지 오덕질을 하고 입출력 기능을 더 다양하게 확장할 수 있다. 내가 늘 말하지만 한글은 두벌식으로만 입력하기에는 너무 아깝고 천편일률적인 정사각형 네모꼴로만 쓰기에도 너무 아까운 문자이다. 그래서 그런 학문 경계들을 허물고, 한글 입력과 출력 모두에서 새로운 솔루션을 만드는 게 꿈이긴 하나...

대학원의 박사 진학은 일단 좌절되었다.
나는 정말 이 분야를 가고 싶고 특정 교수의 학풍을 계승하고 싶은데 실력이 부족해서 떨어진 것이라면, 몇 번이고 입시에 재도전을 했겠지만, 나는 그런 경우가 아니니 내 연구 주제를 감당이나 지도를 못 하겠다고 교수님들이 날 받아 주지 않았다.

내 연구 주제는 특정 단과에 맞아 떨어지는 게 아니기 때문에, 딱 석사를 마쳤던 대학원에서 박사를 안 받아 주면 나는 딱히 다른 대학원을 갈 데도 없다. 그러니 난 최종 학력은 그냥 석사로 만족해야 할 듯하다.
논문 쓰는 게 힘든 한편으로 재미있었고 이런 걸 또 쓰라면 쓰겠는데, 그걸 하지 말라니 어쩔 수 없지. 이해를 하며, 원망은 안 한다.

한편으로는 이게 밥벌이가 돼야 할 텐데 하는 우려도 좀 든다. 당장 내가 몇 달 안으로 생각하고 있는 건,

  • 날개셋 마이너 업데이트 (6.7x. 다음 달 초-중순쯤 나올 예정)
  • 지금까지 내가 만들어 놓은 것들에 대한 문서를 재정비. 홈페이지와 프로그램 도움말 주요 내용을 영작
  • 날개셋 메이저 업데이트 (6.9? 7.0? 윈도우 8용 IME 온전히 완성)

정도. 이미 내가 벌여 놓았고 관성 때문에 계속 진행해야 하는 일들은 이 정도에서 몇 개월 안으로 슬슬 끝을 볼 생각이다.
그 다음으로는 공부가 너무 소홀했던 IT 여타 분야 기술과 지식도 좀 독학하고, 무엇보다도 글꼴로 체제 변환을 하여 비밀 프로젝트를 몇 년간 진행할 예정이다.

그 결과물을 학계와 업계에 발표했는데도 이와 관련된 다른 일자리나 추가 수입이나 반향이 없다면..
2015년쯤 이후부터는 본인도 한글 관련 연구는 다 접고, 그냥 회사에서 시키는 일만 하는 소프트웨어 개발자로 돌아가거나 심지어 철도 업종으로 전업을 하거나, 공무원/고시 준비생-_-으로 돌아갈지도 모르겠다.

뭐, 그 정도의 최악의 상황까지도 각오는 하고 있다. 그러나 나의 20대와 30대 초반을 정말 건전하고 뜻있는 일을 하는 데 정열을 바쳤다는 사실에는 어떤 경우든 후회가 없다.

Posted by 사무엘

2012/11/29 08:29 2012/11/29 08:29
, , ,
Response
No Trackback , 2 Comments
RSS :
http://moogi.new21.org/tc/rss/response/762

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

Comments List

  1. 주의사신 2012/11/29 20:48 # M/D Reply Permalink

    형제님이 하시려는 일이 아무래도 매우 독특하다 보니 교수님들이 재미있어 보인다는 느낌이 들지 않아서, 아마 안 된 것이 아닌가 싶네요. 날개셋처럼 어느 정도 만들어서 공개하면(버전 3은 되야 하지 않을까 싶네요. 1.0 Hell이라는 표현이 괜히 있는 것이 아니죠...), 어느 정도 가망성이 있지도 않을까 하는 생각도 해 봅니다.

    1. 사무엘 2012/11/30 07:27 # M/D Permalink

      제가 나이가 들고 세상 물정 알게 되고 특히 신랑감 신붓감으로서 '스펙'을 가늠하는 처지가 되고부터는.. 사람들이 왜 닥치고 안정적인 직업만 찾고 거기에 들어가려고 일찌감치 준비를 하는지 더욱 실감을 하게 되더군요. 개인적으로는 그것 때문에 약간의 불안, 허탈감도 느끼고 있습니다.

      그러나 후회는 없습니다. 어차피 그들과 나는 갈 길이 완전히 다르고 선택의 여지가 없었으며, 지금 내 모습이 마음에 안 든다고 해서 옛날에 제게 제 모습을 바꿀 여유나 기회 따위는 없었다는 걸 알기 때문입니다. 제가 10년, 15년 전에 내가 하고 싶었던 일에만 몰두를 안 했으면 저는 인간 못 됐을 겁니다.

      3기 서울 지하철 계획이 취소되고 그 대신 민자 광역전철이나 경전철로 대체되는 것 같은 현상이 제게도 일어나고 있습니다.
      정식 대학원생 명목으로 연구를 못 해도 다른 형태로 회사 승인을 얻어서 하려는 연구는 계속할 겁니다.

      형제님도 이제 한 달도 안 남으셨군요..!
      정말 추울 때 가시게 되어 좀 힘드시겠습니다.

Leave a comment

문화 체육 관광부와 국립 국어원에서 2009년부터 해마다 <국어 정보 처리 시스템 경진대회>라는 걸 개최하여 올해로 4회째를 맞이했는데, 올해는 예전의 인서울 관행을 깨고 부산 영도에 있는 한국 해양 대학교에서 개최되었다. 개최 일자는 지난 10월 12일. 공교롭게도 한글 운동 단체들에서 열심히 밀고 있는 조선어 학회 수난 70주년 추모 행사와 겹치는 날짜였다. 그건 서울 경복궁에서 열렸고 저 경진대회는 부산에서 열렸다.

말은 경진대회이지만 사실 참가자들이 동일한 조건에서 시험을 치면서 기량을 겨룬다거나 하는 건 아니기 때문에 사실은 '공모전'이 더 정확한 명칭이다. 일차적인 개최 목적은 21세기 세종 계획(1998~2007) 때 구축된 세종 말뭉치를 이용하여 한국어 분석과 관련된 의미 있는 데이터 처리를 하는 싸제 프로그램의 개발을 독려하는 것이다. 하지만 그 외에도 한국어와 한글의 기계화 및 교육과 관련된 유용한 소프트웨어라면 무엇이든 괜찮다. 본인은 독자 여러분도 잘 알다시피 작년(3회) 대회 때 <날개셋> 한글 입력기 6.3을 출품하여 은상을 받았다.

주최 측에서는 이 대회를 꽤 의욕 있게 밀고 있다. 내년에도 내후년에도 끊임없이 계속해서 대회를 주최할 것이라는 의지를 밝힌 바 있으며, 작년부턴가 기존의 <한글/한국어 정보 처리 학술대회>와 이 경진대회를 아예 병행해서 개최하기 시작했다. 그리고 올해에는 심사에 앞서 오전에 부스를 만들어서 일반인과 심사위원이 모두 참관 가능한 작품 전시(데모) 세션을 추가했으며, 게다가 작년 대회 입상자 중에도 원하는 분은 올해 대회의 데모 세션에 같이 참여해 달라고 초청장을 보냈다.

내 프로그램을 홍보할 기회가 왔으니 나는 초청을 거절할 이유가 없었고, 지난 10월 12일엔 회사에 휴가까지 내어 오랜만에 부산에 좀 갔다 왔다.
경부선 막차인 밤차를 타고 부산에 도착한 건 새벽 4시 반이 덜 돼서였다. 미리 봐 놓은 지하철과 시내버스 경로로 대회 장소엔 예정보다 훨씬 일찍 도착했다. 다만, 세월이 세월인지 밤샘은 이미 엄두를 못 내는 지경이 됐고 밤차도 더는 피곤해서 못 탈 것 같다. 피곤이 밀려오기 시작한지라 책상에 엎드려서 자면서 시간을 보냈다. 밤차는 교통비(굳이 비싼 고속 교통수단을 쓸 필요 없음)와 숙박비(차에서 잠을...)를 아낄 수 있는 저렴한 방법이지만, 제일 피곤한 방법이기도 하다.

부스 개방 시각이 다가오자 대회 주최 측에서 직원이 와서 각종 장비들을 세팅해 줬다. 나는 간단히 준비해 온 유인물과 프레젠테이션 슬라이드로 부스를 꾸몄다. 작년 대회 입상자가 나 포함 3명이 온다고 했는데 역시나 내가 예상했던 대로 대상, 금상, 은상 수상자가 나란히 왔다. 울산대 팀은 그렇잖아도 최고 등급인 대상을 받은 데다 부산은 지리적으로 거리도 별로 안 멀고, 이 대회만 작정을 하고 미는 연구실이 있으니 이런 자리엔 거의 확실히 오리라고 예상했다.

한편, 작년에 금상을 받은 최 시영 선생님은 1인 기업 사장이랄까 프리랜서랄까, 어쨌든 조직에 매여 있지 않은 분이기 때문에 이런 데에 가는 데 제도적인 제약이 없는 분이다. 최근엔 data-p라는 프로그래밍 언어도 하나 고안해서 대외적으로 뭔가 알려야 할 게 많은 처지이기도 하다(실제로 나중에 컴퓨터공학 교수들 앞에서 data-p 얘기 많이를 늘어놓으셨다). 그러니 올 거라 생각했는데 역시 오셔서 나하고 반갑게 인사를 나눴다. 말동무가 하나 늘었다.

저분은 프로필을 보아하니 서울대 법대 출신의 엄청난 엄친아인데 독특한 웹 기반 세종 말뭉치 검색 도구를 만들어서 이런 대회의 상위권에 입상하고, 최근에는 전산학에까지 관심을 뻗치고 계신다. 뭘 하시는 분인지가 궁금해지지 않을 수 없다.
그에 반해, 대학원이나 일반이 아닌 학부생들은 아무래도 이런 좁고 전문적인 분야의 대회에서 상위권에 입상하는 작품을 만들기가 현실적으로 어려울 것이며, 입상하더라도 또 중간고사를 앞두고 먼 길을 가서 이런 대회의 데모 세션에 참여할 처지는 못 될 것이다. 이런 나의 모든 예상은 적중했다.. ^^

공식적인 데모 세션은 2시간이었다. 나야 ISEF에 참가하던 고딩 시절 이래로 이런 건 한두 번 하는 게 아니긴 하지만, 여전히 다른 사람들에게 내 프로그램의 본질에 대해서 설명해 주기란 참 쉽지 않았다. 세벌식, 무한 낱자 수정, 오토마타, Bksp 없이 오타 고치기, 텍스트 필터, 에디터와 IME 등등등... 무슨 얘기부터 할까? 이런 것들이 어느 하나만 알아서는 context를 이해할 수 없는 유기체를 구성하고 있다. C밖에 모르는 사람에게 어느 세월에 C++의 클래스, 상속, 오버로딩, 가상 함수 개념에 대해서 설명해 주고 그것도 모자라서 템플릿이라든가 람다 함수에 이르기까지 그 필요성과 장점을 가르쳐 줄 수 있겠는가?

확실히 한국어 공학에 비해서 “한글 공학”은 인지도가 미미한 것 같다. 우리나라의 사회 문화 분위기가 한국어와 한글의 구분이 상당히 모호하고 오락가락 하는 건 사실이지만, 결국 어차피 그 말이 그 말이고 반드시 구분해야 할 필요가 없는 상황에서 병적으로 둘은 완전히 독립적이고 무관한 개념이라고 집작하고 몰고 가는 것도 또한 보기 좋지 않은 모습인 듯.
비록 내 프로그램은 올해의 대회 출품작이 아니기 때문에 심사 대상도 아니지만, 심사위원 중 한 분은 “님 프로그램은 우리 대회보다 규모가 더 큰 일반적인 소프트웨어 공모전에도 출품해 보셈”이라고도 말씀하셨다.

데모 세션이 끝날 무렵에 웬 반가운 손님이 한 명 왔다. 올해에 본인의 석사 졸업 대학원 학과에 석사로 새로 입학한 파릇파릇한 석사 후배. 학교에서 내 얘기를 이미 들었는지 나에 대해서 어느 정도 이미 알고 있었다. 나는 대학원 재학 시절에 석사 신입생이라고는 좀체 구경을 못 했다(한두 명 합격한 지원자는 있었으나, 등록을 안 하고 그걸로 끝). 그러다 겨우 논문 학기가 다 돼서야 여학생 후배 두 명을 본 게 전부인데, 남자 후배라니 반갑지 않을 수 없었다. 말동무가 셋으로 늘었다.

부스 전시는 정오 무렵까지 그럭저럭 잘 했다. 이제 느긋하게 앉아서 올해 입상작들의 발표와 심사 장면 구경만 하면 된다.
주최 측에서는 데모에 참여한 작년 입상자들을 예우 차원에서 경진대회 관객으로 자동 등록을 시켜 줬으며, 점심과 저녁 식사는 물론, 생각도 안 했던 여비까지 챙겨 줬다.

출품된 프로그램들은 로컬, 웹, 앱을 골고루 커버하는 다양한 형태였다. 로컬 프로그램 중엔 정통 MFC 기반 프로그램은 없었고, 모두 닷넷 프레임워크 기반이었던지라 세대 차이를 실감했다. 하긴, 업무용 프로그램이야 어떤 형태로든 RAD가 지원되는 툴로 만드는 게 능률과 생산성 면에서 나을 테니 말이다.
말뭉치가 어떻고 태깅이 어떻고 하는 구체적인 내용은 나도 그것만 전문적으로 판 게 아니니 잘 모르겠다. 발표 중간엔 다시 몰려오는 잠의 쓰나미를 주체할 수 없어서 잠시 졸았다.

올해는 KAIST 전산학과에서 NLP 연구의 선두주자이신 최 기선 교수님 연구실에서 작품을 출품하여 대상을 받았다. 그러고 보니 나는 나름 한글 입력기를 연구한다면서 학부 시절에 '한국어'와 관계가 있는 연구를 하는 교수님은 한 번도 안 마주치고 졸업을 해 버렸으니 이것도 기이한 일이다. 저분을 포함해 박 종철 교수, 시 정곤 교수(이분은 전산학과가 아닌 인문사회과학부 소속) 같은 분들 말이다. 박 교수님은 이번 대회 행사에서 개회사를 하셨는데, 국어의 위상을 화폐 단위의 위상에다 빗대어 말씀하시는 걸 들어 보니 생각보다 국어 사랑 정신이 투철한 전산학자이시라는 게 느껴졌다.

서울을 벗어난 장소에서 올해는 작년 입상작 개발자까지 초청하여 데모 세션을 연 것은 바람직한 시도라고 느껴져서 기분이 좋다. 사실, 옛날에 정보 올림피아드도 그런 식으로 공모 부문 입상자끼리의 교류와 전시 행사가 좀 있으면 좋겠다고 난 예전부터 생각해 왔었다. 참가 작품수가 늘어나고 대회의 권위와 위상이 더 올라가면, 심사와 시상 기준을 다음과 같이 더욱 세분화도 해야 할 텐데 이런 욕심까지 부리는 건 아직은 좀 이른지도 모르겠다.

- 분야: 말뭉치 도구, 교육용 소프트웨어, 또는 기타 유틸
- 부문: 대학 학부, 대학원, 개인 인디 개발자, 또는 기업
- 내력: 첫 개발인가, 아니면 동일 아이디어 하에서 예전 출품/입상작의 꾸준한 개선 내지 리메이크인가

그런데 이 대회를 앞으로 적극 육성하겠다면서 올해는 뽑는 입상작 수가 더 줄었다. 작년에 9명이던 것이 올해는 7명. 게다가 이미 작년도 재작년에 비해서는 지급되는 상금의 총액이 좀 줄어든 것이었다. 이것부터 좀 개선해야 할 문제가 아닌가 싶다. ^^;;

작년과 마찬가지로 올해도 주최 측에서 참석자 전원에게 저녁까지 쏘는 대인배 대접을 했다. 나도 늦게까지 얘기를 나누면서 교제할 사람이 주변에 여럿 있었지만 나는 선약을 잡은 상태였던지라 눈물을 머금고 먼저 자리를 떴다. 완전히 풀코스를 뛰었으면 영도를 완전히 빠져나가는 시각은 밤 8~9시 사이가 됐을 것이고, 남의 차를 얻어 타고 부전이나 부산 역까지 도착하는 시각은 그보다 더 늦어졌을 터이니, 진짜 부산에서 진한 하루를 보내게 됐을 것이다.

자가용을 가져갔으면 시간과 장소 제약이 없이 인근의 태종대 같은 부산 구경을 더욱 자유롭게 하고 돌아갈 수 있었을지 모르나 이 경우 주차나 유류비 같은 다른 문제 때문에 골치가 아프게 됐을 수도 있다. 게다가 난 그렇잖아도 대중교통만 이용하고도 피곤해서 이 고생을 했는데, 운전까지 해야 했으면 어찌 됐겠는가?

어쨌든 부산에서 기억에 남는 즐겁고 유익한 추억을 남겼다.  이 글에서 다 못 한 주변 이야기는 다음에 올라올 부록에서 이어질 예정이다.

Posted by 사무엘

2012/10/26 19:33 2012/10/26 19:33
, ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/748

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

Leave a comment

1.

<날개셋> 한글 입력기는 제어판에서 불러다가 곧장 쓸 수 있는 20여 개의 다양한 예제 입력 방식들을 덩달아 제공하고 있다.
6.7 이후 다음 버전에서는 예제 데이터에 아래와 같은 여러 변화가 생길 예정이다.

- 6.7에서 잘 알다시피 종성 지향 두벌식을 활용하여 'MS 두벌식'이라는 유형 파일이 추가되었는데.. 여기에다가 한글 자모 외의 숫자와 기호는 글쇠를 먹지 않게 하는 입력 스키마 설정도 추가했다. (지난 6.5에서 추가된 글쇠 인식 customize 기능으로) 어차피 시스템의 영문 글자판과 똑같은 글자는 IME가 입력시키는 게 아니라 아예 글쇠 자체를 가로채지 않고 응용 프로그램으로 넘겨 준다는 뜻.
이것까지 갖춰 주면 진짜 MS IME와 고증이 100% 일치하게 된다. 특히 외부 모듈에서 말이다.

- 네벌식이 글쇠배열 *.key이 아니라 오토마타와 낱자 결합 규칙을 갖춘 유형(*.ist) 파일로 승격되었다.
받침을 입력하려면 모음을 아무 모음이나 써도 되는 게 아니라 타자기 설계 차원에서 받침용으로 의도된 모음을 써야만 하며, 그렇지 않으면 받침은 다음 글자로 튕긴다.

모음의 용도를 구분하는 건 다양한 방법으로 할 수 있다. 비받침용 모음은 0으로 대응하는 가상 받침을 같이 입력되게 하여 여타 받침과의 결합을 차단시킬 수도 있는데, 본인의 경우 두벌식 모음과 세벌식 모음으로 구분하여 오토마타가 O 변수를 써서 구분하도록 하는 방법을 썼다.

이 외에도 네벌식 오토마타는 초+중(+종)과 중+종은 허용하지만, 초에서 바로 종은 허용하지 않게 설계되어 있다. 97 이전의 도스용 아래아한글이 이런 오토마타를 갖추고 있었다. 또한 ㅒ, ㅖ가 바로 입력 가능하지 않다는 특성상 ㅑ+ㅣ, ㅕ+ㅣ로 해당 모음을 입력할 수 있게 했다.

네벌식은 그나마 옛날 타자기 표준이라는 역사적인 의미가 있고, <날개셋> 기능 활용면에서 의미가 있어서 추가했을 뿐, 타자 관점에서 효율적인 입력 방식은 절대로 아니다. 특히 공 병우 세벌식에 비하면 이런 허접하고 불편한 타자기로 한글 입력을 해야 했을 옛날 타자수들을 생각하면 그저 안구에 습기가 찰 뿐이다.

- 일명 '한소프트 세벌식'과, '드보락 호환 두벌식' 글쇠배열은 효용성이 떨어진다고 판단하여 삭제했다.
특별히 '한소프트 세벌식'에 대해 보충 설명을 하자면, 정체가 불분명하고 원문 자료를 제공하던 사이트도 운영이 중단되어 접속이 불통된 지가 이미 수 년이 지난 상태이다. 글쇠배열도 어차피 그리 잘 만들어진 것도 아닌지라 퇴출을 결정했다. 특히 숫자를 저렇게 Shift를 누른 채 양손으로 입력하게 해 놓으면 도대체 어쩌라는 건지? -_-

2.

현재 '세벌식 순아래' 글쇠배열이라는 게 있어서 예제 파일도 아니고 아예 프로그램에 내장되어 있는 배열 중 하나이다.
그러나 이것은 장기적으로는 *.key 급으로 격하될 예정이다. 내장 데이터로 쳐 주기에는 너무 듣보잡화해 있기 때문이다.

공 병우 박사의 이념을 물려받은 권위와 정통성 있는 세벌식 연구 기관에서--한글 문화원이라든가, 한글 문화원이라든가...-- 앞으로 390과 최종을 통합하는 새로운 세벌식 표준안을 제정한다면, 그 새 배열이 지금 순아래가 있던 자리를 대체하게 될 것이다.

그리고 그 통합안은 더 장기적으로는 390을 또 대체하게 될 수도 있다. 과거에 390이 389를 대체했듯이 말이다.
통합안은 기호 문제 때문에 최종보다는 390에 훨씬 더 가깝게 만들어질 것이다.
그 반면 2000년대부터 세벌식을 접한 사람들은 390보다는 최종이 더 많다. 본인도 최종 사용자.
최종은 27개 겹받침 모두 수록이라는 궁극의 아킬레스건이 있기 때문에 상징적인 의미가 크며, 통합안이 나온 뒤에도 별도로 존속할 가능성이 높다.

이런 이유로 인해, 기존 390 사용자들만 통합안으로 갈아타면, 최종과는 달리 390은 존재의 의미를 상실하여 역사 속으로 사라지게 될 것이다. 이것이 나의 짧은 생각이다.

3.

내 프로그램에는 역사적으로나 설계 방식면에서 의미가 있는 세벌식 글쇠배열 몇 개가 key 파일로 제공되고 있다. 세벌식 389는 받침 배열이 390과 최종의 짬뽕 같으면서도 숫자가 노트북 PC의 키패드 배열과 일치한다는 특징이 있으며, '송 영상'(닉: 길동무)이라는 분이 고안한 영상 세벌식은 세벌식계의 떡밥인 왼쪽부터 시작하는 세벌식을 나름 독창적으로 구현한 배열이다.

누가 만들었는지 모를 왼손/오른손 세벌식은 no shift로도 모자라서 진짜 말 그대로 한 손으로 타자를 치는 것에 특화되어 있다. 내가 알기로 영문 드보락 자판에도 이런 왼손/오른손 변종 배열이 있다. 아마 옛날에 도스용 에디터 같은 데서 이것저것 수집한 자료이지 싶다.

이런 것들은 역사적인 의미 외에 실용적으로 쓰일 가능성이 높지 않으며, 오토마타나 낱자 결합 규칙 같은 것도 그냥 일반적인 PC용 한글 입력기의 설정을 그대로 가져와 쓰는 것만으로도 충분하기 때문에, 유형 파일이 아니라 글쇠배열 형태로만 간단히 제공된다.

4.

현재 프로그램이 기본 제공하는 예제 입력 방식이 20여 개가 있다지만, 파일 하나가 겨우 몇백~몇천 바이트밖에 하지 않으니, 다 합쳐도 크기는 3만 바이트가 채 되지 않는다.
본인은 <날개셋> 한글 입력기의 사용자가 만든 UCC..는 아니고 UCI (user-created input methods) 데이터를 받는다.
마음에 드는 건 프로그램의 다음 버전에다 같이 수록도 흔쾌히 해 줄 것이다. 사실은, 이런 데이터만 공유하는 커뮤니티가 좀 있으면 좋겠다.

선정 기준은 다음과 같다. 하나 이상을 잘 만족하면 된다.

- 아이디어가 기술적으로 독창적일 것: 복벌식이나 신세벌식 같은 것. 이런 식으로 <날개셋>의 조건부 수식과 오토마타, 가상 낱자, 더 나아가 특수 글쇠 따위를 잘 활용하여 두벌식과 세벌식 사이를 왔다 갔다 하는 독창적이고 기발한 한글 입력 방식은 얼마든지 웰컴이다. 수록 0순위임. 다만 한 아이디어 당 한 개, 많아야 두 개로 국한임.

- 역사적 가치가 있거나, 인지도· 권위가 있을 것: 역사성이라 함은 앞서 언급했던 여러 legacy 세벌식 글쇠배열 말이다. 아니면 다수가 쓰거나 명목상의 표준이기라도 해야 한다.
북한 국규 표준은 나름 그쪽에서 권위를 가지고 통용되는 입력 방식이니, 통일을 대비해서라도 예전에 key로만 제공되던 것을 최근에 완전한 유형 형태로 격상했다. 아래아한글 97과 맥 OS, MS 두벌식 같은 기존 메이저 소프트웨어가 미묘하게나마 차이가 존재하는--그것도 오토마타 차원에서!-- 독창적인 한글 입력 방식을 제공하는 것도 바람직한 일이다.

휴대전화용 3대 표준 입력 방식(천지인, 이지한글, SKY-II)은 기술적 독창성과 권위를 모두 갖추고 있으니 두 말할 나위도 없이 수록이다. 사실 이것들을 포인팅 장비로 써 볼 수 있는 보조 입력 도구(패드)도 만들어야 하는데, 아직 6.7에서는 숙원을 못 풀었다.

- 타자 행동 관점에서 아주 효율적이거나 독창적일 것: 모바일용 입력 방식은 워낙 기술적인 메커니즘이 많은 반면, PC용 입력 방식은 딱히 그런 trick은 없이 그냥 글쇠배열 논쟁으로 흐르는 경향이 있다.
역사적인 뿌리나 인지도가 없고 그렇다고 기술적인 독창성도 없는 마이너 글쇠배열이 <날개셋>의 예제로 등재되기 위해서는 진짜 타자 효율이라도 압도적으로 좋다는 증거가 있어야 한다. 그게 아니면 순아래/한손 배열처럼 장애인 접근성 분야라도 파든가.

'영상 세벌식'은 타자 능률까지는 모르겠지만 왼쪽에서 오른쪽으로 흐르는 세벌식이라는 점이 독창성을 인정받아 예제 데이터로 수록되어 있다. 앞서 말한 기술적인 독창성 말고, 배열 자체가 독창적이라는 뜻이다.

- 한글 입력과 관련된 실생활에서 유용할 것: <날개셋> 한글 입력기는 기본적으로 한글 입력에 특화되어 있기 때문에 예제 데이터도 한글 입력 방식을 우대함을 원칙으로 한다. 한글이 아닌 문자는 한국 문화권에서 한글과 같이 즐겨 쓰이는 문자들로 국한한다.

가령, 일본어 문자는 아무래도 아랍· 태국-_- 문자보다야 한국에서 더 친숙하며, <날개셋> 고급 입력기의 사용자 정의 조합 기능을 이용해서 간단히 커버 가능한 예이기 때문에 히라가나와 가타카나가 모두 수록되어 있다. 구결도 마찬가로 국어 정보학 분야에서 유용하기 때문에 수록이다.
콜맥 글자판은 한글 입력과 관계가 없는 영문이지만, 드보락 다음으로 나름 인지도가 있는 마이너 배열인지라 영문 배열은 딱 하나만 선택해서 넣었다.

이상으로 내가 예제 입력 데이터를 선별하여 수록하는 대원칙을 공지했다.
저런 조건 중 하나 이상을 만족하고 기존 예제들과도 완전히 다른 입력 방식이 과연 얼마나 있을지는 잘 모르겠지만, 내 프로그램을 통해 여러 창의적인 한글 입력 방식이 많이 만들어지고 쓰이면 좋겠다.

<날개셋> 한글 입력기는 한글 입력과 관련된 그런 지적 재산들을 모두 구현하고 관리할 수 있는 프로그램이니 말이다.
그런 기반을 마련하기 위해 초창기엔 가장 엄밀한 극단이라 할 수 있는 공 병우 세벌식부터 추구한 뒤, 점차 더 generic한 쪽으로 내려오고 있는 중이다.

여담이지만, '한글 로마자 입력 방식'처럼, 그 자체가 한 입력 방식이 아니라 특정 포괄적인 아이디어 하에서 세부적으로 다양한 입력 방식이 파생되어 나올 수 있다면, 그건 유형 파일이 아니라 아예 별도의 '빠른설정'이라는 플러그 인 프로그램이 담당하게 된다.

Posted by 사무엘

2012/09/13 19:18 2012/09/13 19:18
, , ,
Response
No Trackback , 6 Comments
RSS :
http://moogi.new21.org/tc/rss/response/732

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

Comments List

  1. 팥알 2012/09/14 02:14 # M/D Reply Permalink

    얼마 전에 네벌식 타자기를 만져 볼 기회가 생겨서 굴려 보며 네벌식.ist도 만들어 보느라 없는 머리를 쥐어짰는데 날개셋 다음판에 들어가는군요. 제가 만든 건 가상낱자 기능을 쓰지 않고(실은 뭔지 몰라서) 변수 하나에 얽힌 조건식만 오토마타에 끼워 구현했습니다. 타자기에서는 초+종만 찍을 수 있어서 초+종을 막지는 않았습니다.

    돌이켜 보면 저 스스로도 공병우 자판으로 업무를 보아 온 사람이어서 한글문화원 같은 단체가 일찍 나서지 않은 것이 아쉽고 원망스럽기도 합니다. 어쩌면 공병우 자판이 더 발전할 수도 있었을 2000년대를 그냥 보냈으니, 당장 완벽한 개선안이 나오더라도 많이 늦었습니다. 제가 공개한 3-2011 자판과 3-2012 자판를 성급히 공개한 것이 당장 쓸 배열이 아쉽기 때문이었는데, 단체 차원에서 이보다 더 철저히 연구하고 검증한 개선안이 나오고 보급되었으면 합니다.

    공병우 세벌식 대표안은 당연히 요즈음의 PC 환경에서 실무 작업을 하는 사람들에게 가장 편리한 쪽으로 연구되어야 할 것이고, 저도 포함하여 공병우 최종 자판을 오래 써 온 사람들의 취향은 조금 억누를 필요가 있을 것 같습니다. 공병우 최종 자판처럼 기계화까지 바라는 배열은 응용안으로 따로 가꾸면 된다고 봅니다.

    1. 사무엘 2012/09/14 10:32 # M/D Permalink

      안녕하세요? 블로그에 타자기 역사 글 올리시다가 늦은 시각에 여기 들어오셨군요. ^^
      저는 지난번에 블로그에다 올렸던 윈도우 7/8 관련 작업에 이어, 지금은 예제 데이터와 도움말을 재정비하는 중입니다. <날개셋> 프로그램 작업을 하고 있으면 즐겁습니다.

      가상 낱자는 동일한 낱자를 내부적으로 다르게 취급되게 표현하고, 그 과정에서 없는 낱자를 있는 것처럼 보이거나 반대로 있는 낱자를 없는 것처럼 보이게 해 주는 기능이기 때문에 입력 방식을 만들 때 다양하게 쓰인답니다.

      한글 문화원은 그저 아무 이유 없이 가만히 있기만 한 건 아니고요, 내부적으로 좀 일이 있었습니다. 이에 대해서는 더 먼 미래에 차츰 얘기를 하도록 하죠.
      통합안을 다시 만든다고 해서 뭔가 거창하거나, 390이나 최종하고 완전히 동떨어진 글자판이 나오는 건 절대 아니니 오히려 너무 기대를 할 필요는 없을지도 모릅니다. 기계식 타자기와의 호환성, 그리고 모바일 시대의 요구 사항 부합이라는 두 이념을 잘 절충해야겠지요.

      다만, 최종 글자판은 그 자신만의 특징과 정체성이 있기 때문에 언제까지나 독자적인 위상은 유지하고 있을 걸로 보입니다.

    2. 팥알 2012/09/14 15:24 # M/D Permalink

      가상 낱자 기능이 그런 거였군요.
      이해하지 못해서 쓰지 않았는데, 앞으로 궁리해서 꼭 써먹어야겠습니다.^^

      타자기는 기계가 아예 나오지 않지만, 전화기 자판은 꼭 더 좋은 배열이 나오면 좋겠습니다.

    3. 사무엘 2012/09/15 22:55 # M/D Permalink

      네, 당장 세벌식에서 겹모음용 ㅗㅜ와 홑모음용 ㅗㅜ를 구분하는 것도 가상 낱자로 구현되어 있습니다. ^^

  2. 김재주 2012/09/15 15:00 # M/D Reply Permalink

    전 전역하고 학교생활에 다시 적응하고 나면 stochastic 알고리즘을 이용해서 두/세벌식 자판 최적화를 시도해볼 생각입니다. 한번 만들어 보고 싶은 게 많은데 여기에선 할 수 없는 것들이 많네요

    1. 사무엘 2012/09/15 22:52 # M/D Permalink

      기대할게요. 좋은 연구 성과 남기시길 바랍니다. 파이팅~~!

Leave a comment

지난 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

오랜만에 <날개셋> 한글 입력기의 새 버전 소식을 전하게 된 것을 기쁘게 생각한다.
6.51 다음으로 6.7! 나의 대학원 석사 졸업 기념작이다.
나의 대학 학부 졸업 기념작은 까마득한 옛날인 2005년 여름에 나온 3.41이고,
4년 전 여름에 나온 5.0은 병특 만료 기념작이다.
작년에 6.2가 나온 뒤 거의 정확히 1년 만에 버전이 0.5만치 올라가게 되었다.

이번 버전은 비주얼 C++ 2010으로 개발된 첫 버전이다. 5.5부터 지난 6.51까지는 약 3년 동안 2008로 개발됐다.
더 옛날의 2.5부터 5.31까지는 거의 6년 동안 2003을 썼고 말이다. 그에 반해 VC++ 2005는 처음에 64비트 에디션을 빌드할 때만 잠깐 썼고 그다지 즐겨 사용되지 않았다.

버전 번호에 7이라는 숫자가 들어가는 것은 지난 12년간의 <날개셋> 한글 입력기의 개발 역사상 최초이다. 물론 6.x를 졸업하고 아예 메이저 버전이 7로 진입할 날도 얼마 안 남았고 말이다.
6.7은 여느 역대 버전들과 마찬가지로 다방면의 기능 추가와 개선을 거쳤다. 하지만 이번에도 시간과 여유의 부족으로 인해 원하는 기능, 넣고 싶었던 기능들을 모두 충분히 넣지 못했다. 그렇기 때문에 6.7까지는 안 하고 6.65, 심지어 6.66-_-으로 번호를 정하는 것도 이론적으로 충분히 가능하나, 국민 정서를 감안하여 그러지는 않았다.

한동안 <날개셋> 한글 입력기의 API에 큰 변화가 없었기 때문에 타자연습 3.3은 입력기 6.2부터 6.51까지 API 호환이 지켜졌으나, 이번 6.7에서는 클래스 가상 함수 한 군데의 프로토타입이 바뀌는 바람에 정말 어쩔 수 없이 API 호환이 깨지게 되었다.

타자연습은 1년 전이나 지금이나 바뀐 건 없고, 입력기 6.7의 API를 기준으로 재빌드한 프로그램만 다시 올렸다.
물론, 이제는 API 호환이 안 되는 버전의 <날개셋> 입력기 외부 모듈과 타자연습이 서로 같이 실행되어도 충돌이 없기 때문에, 굳이 타자연습에서 입력기 6.7에 새로 추가된 기능을 꼭 써서 타자 연습을 해야 할 분이 아니라면, 이미 설치된 타자연습 3.3을 또 재설치해야 할 필요는 없다.

이번 6.7에서 내세울 만한 변화는 다음과 같다.

1. 편집기의 에디팅 엔진 최적화

비록 눈에 당장 차이가 느껴지지는 않는 변화이긴 하나, 새 버전에서는 에디팅 엔진의 최적화가 최후 종결자 지점에 이르렀다.
텍스트의 여러 군데가 동시다발적으로 바뀌어서 구간별로 어디는 다시 그려져야 하고, 어디는 단순히 위로 몇 줄 스크롤하면 되고, 더 아랫부분은 반대로 아래로 스크롤되어야 할 때... O(n^2) 복잡도까지 감수하면서 구간별로 모든 가짓수를 100% 정확하게 파악하여 동작하게 했다. (물론, n이 너무 커지면 골치 아프게 그런 것 따질 필요 없이 그냥 화면 전체를 다시 그려 버리면 된다)

예전에는 그냥 최악의 상황을 가정하고 무조건 화면을 다시 그리게 하던 것이 지난 6.2 버전이던가 그때쯤에 크게 개선되었다. 그러나 그것도 동작이 지금 정도로 정교하지는 못했으며, 나중에 다시 생각해 보니 논리 자체에도 원천적으로 결함이 있어서 아주 특수한 상황에서는 여전히 화면 잔상이 남는 버그까지 있었다.

그 점이 찝찝했었는데 이번 버전에서는 드디어 작정하고 매달린 끝에 완전히 끝장을 내고 말았다. 만세! 새로운 기능 구현도, 단순 리팩터링도 아니고 최적화 작업을 끝냈을 때의 홀가분한 기분은 직접 구현해 본 사람만이 느낄 수 있을 것이다. 역시 좋은 프로그래머란, 모든 경우의 수를 논리적으로 잘 따지는 사람임을 느꼈다.

텍스트 에디터를 만들면서 이런 식으로 구간과 구간 사이의 여러 변화들을 한데 합성하는 알고리즘을 구현하는 게 굉장히 힘들었다. <날개셋> 편집기는 한글에만 초점을 맞추려고 complex script는커녕 글씨 크기 변경도 안 되고 가변폭 글꼴조차 지원 안 하는 아주 제한된 에디팅 엔진을 의도적으로 고수하고 있지만, 그 정도를 만드는 데도 지금까지 의외로 복잡하고 어려운 알고리즘이 제법 들어갔다. undo/redo를 관리하는 것도 그렇고.

2. 한글 입력 오토마타 차원에서의 기능 추가

이 달 초에 블로그 글을 통해 먼저 소개한 바 있는 종성 지향 두벌식은, 예전에는 없던 완전히 새로운 개념이 추가된 것이다. 같은 두벌식이라도 음절 경계에서 자음을 초성으로 볼 것인가, 종성으로 볼 것인가 하는 것을 이제 사용자가 직접 지정하는 것은, 한글 입력 전문 프로그램으로서 매우 중요한 기능이 아닐 수 없다.
종성 지향 두벌식과 맞물려 돌아가는 BKSP 옵션, 특수 키, 타수 복원 알고리즘 등등도 다 일관성 있게 동작하도록 로직의 수정과 보강이 이뤄졌음은 두 말할 나위가 없다.

그리고 오토마타에서는 현재 입력된 날개셋문자가 두벌식인지(종성 지향 포함) 세벌식인지를 나타내는 변수를 추가하여, 한 오토마타가 벌식에 따라 다르게 동작할 수도 있게 했다.

사실 이 두 기능은 내 학위 논문에도 들어가야 했을 아이디어인데 논문 학기가 다 끝난 뒤에야 생각이 나고 구현된 것이 좀 아쉽다. ^^;;

3. 단어 단위 한자 변환

<날개셋> 한글 입력기의 아주 오랜 숙원이 이번 버전에서 드디어 부분적으로나마 성취되었다. 만세!
드디어 '대한민국'에서 '국'을 조합 중이거나 '국'의 뒤에다 커서를 두고 한자 키를 누르면 단어를 한꺼번에 大韓民國로 바꿀 수 있다. 그리고 한자를 한글로 바꾸는 것도 최대 12글자까지 한꺼번에 할 수 있다.

사용자 삽입 이미지

이렇게 하기 위해서는 제어판의 '편집기 계층'에서 '단어 단위 한자 변환' 옵션을 켜 주면 된다. 그리고 이 기능은 아무데서나 쓸 수 있는 건 아니고, 자체 편집기나 TSF A급 프로그램(워드패드, MS 워드 등 몇몇)에서만 가능하다.

단, 이것은 아주 초보적인 수준으로만 구현된 것이기 때문에 한계도 적지 않다.
커서 바로 앞까지 끝나는 범위의 단어만 한자로 바꿀 수 있으며, 글자가 아닌 단어 영역에 대해서 블록 같은 시각적인 피드백이 없다.

그리고 이 단어 사전은 <날개셋> 한글 입력기가 자체적으로 갖추고 있는 게 아니다. MS 한글 IME의 한자 사전을 빌려다 써서 동작한다. 그래서 내 프로그램으로 단어 단위 한자 변환을 하려면 윈도우 비스타/7의 한글 IME가 설치되어야 있어야 한다. 자체 사전이 아니므로 사용자 사전 등록 기능 같은 것도 없다.

이번 버전은 그냥 최소한의 노력으로 <날개셋> 한글 입력기도 이제 제한적으로나마 단어 단위 한자 변환이 가능하다는 걸 맛만 보여 준다는 데 의미가 있다. 그러나 이렇게만 해도 정말 신기하기 그지없다.

4. 그 밖의 사소한 변화들

- <날개셋> 한글 입력기의 외부 모듈은 설치하여 구동하고 나면 language bar에 예닐곱 개의 아이콘들이 주렁주렁 달리는 편이었는데, 이번 버전부터는 잉여력이 꽤 강한 전/반각 모드, 텍스트 필터(극소수의 TSF A급 프로그램에서만 사용 가능), 문자표는 제외하고 기본적으로 4개의 아이콘(한/영, 한자, 제어판, 보조 입력 도구)만 표시되게 바꿨다. 나머지 아이콘들은 별도의 명령을 내려서 사용자가 표시하도록 해야 표시된다.

이렇게 하니까 훨~씬 깔끔하고 좋다. 외부 모듈이 개발된 지도 벌써 7~8년째인데 왜 지금까지 이렇게 정리를 할 생각을 안 했나 모르겠다.

- 그리고 <날개셋> 편집기에서 외부 모듈을 사용하면서 편집기의 도구-옵션 명령으로 프로그램의 GUI 언어를 변경한 경우, 외부 모듈의 도구모음줄 아이콘의 툴팁이나 명칭도 해당 언어로 바뀌게 했다. 크게 의미 있는 변화는 아니지만 프로그램간의 일체성을 향상시킨 조치이다.

- 외부 모듈의 한자 변환 후보 선택 중에 Ctrl+C를 누르면 선택된 한자를 클립보드에다 복사가 되게 했고, Shift+엔터/번호를 누르면 한(韓) 형태로, 그리고 Ctrl+엔터/번호를 누르면 韓(한) 형태로 삽입이 되게 했다. 저 기능도 언젠가 넣어야 할 필요를 느끼고 있었는데 이렇게 하는 게 제일 좋을 것 같다.
필요는 발명을 낳는 법. 단어 단위 한자 변환과 연계하면 더욱 편리해진다. '대한민국(大韓民國)' 같은 문구를 한번에 바로 삽입할 수 있으니 말이다.

- '한글을 소리 나는 대로' 필터가 받침 ㄷ계열(ㄷ, ㅅ, ㅌ 등)+ㄹ을 지금까지 ㄹㄹ로 동화시키고 있었는데 이를 ㄴㄴ 계열로 수정했다. 그런데 한국어에서 저렇게 동화가 일어나는 경우가 전혀에 가깝게 없기 때문에 <날개셋> 3.0 이래로 이에 대한 문제를 제기할 일이 없었다.

- '한글 낱자 종류 변환' 필터에 호환용 한글 자모 4개 나열로부터 표준 한글 자모나 한글 글자마디를 만드는 변환 기능을 추가했다. 이것은 우리나라 표준 문자 코드에 명시되어 있는 스펙이기 때문에 도입했다. (거의 사문 전락 수준이 아닌가 의심되긴 하지만.)

- 굳이 나열하기에도 구차한 여러 버그 수정들은 덤. 사용자는 거의 접할 일이 없겠지만.
- 그리고 이번 버전부터 후원 안내문이 프로그램 설치 화면과 도움말 구석에 추가되었다.

5. 제공 자료들

새로 추가된 한글 입력 기능을 활용하여 두벌/세벌 판별 변수를 활용한 복벌식용 모아치기 오토마타, 그리고 맥 OS의 세벌식 자판이 예제로 추가되었다. 종성 지향 두벌식을 사용하여 고증을 100% 살린 MS 두벌식도 예제로 제공된다.
그리고 6.7의 새로운 기능으로만 가능한 건 아니지만, 아래아한글 97이 과거에 제공하던 세벌식 semi-모아치기 오토마타도 예제로 추가했다.

아래아한글 97을 기억하시는가? 아래아한글 2.0 기반의 에디팅 엔진과 3.0 기반의 파일 포맷, 그리고 한컴 2바이트 코드를 사용하던 마지막 버전임과 동시에, 당대로서는 가장 완성도가 높았고 1990년대 말과 2000년대 중반까지 전국적인 사랑을 받았던 명작 워드 프로세서이다.

아래아한글 97은 세벌식 글자판에서 우리나라의 소프트웨어 역사상 전무후무한 한글 입력 로직을 갖고 있었다.
초성만 가장 먼저 입력한 뒤엔, 그 후의 중성과 종성은 아무 순서대로나 입력하면 된다. 아래아한글 97의 오토마타를 <날개셋> 식으로 기술해 보면 다음과 같은데...

0 → A ? 1 : B|C ? 2 : 0
1 → A ? 1 : B|C ? 2 : 0
2 → B|C ? 2 : 0

수식이 정말 심하게 단순하다!
<날개셋>의 표준 모아치기 오토마타는 초성을 나중에 뒤늦게 입력하는 경우를 고려하는 것도 있기 때문에 0부터 3까지 4상태이다. 그러나 아래아한글은 초성 아니면 중성/종성으로만 딱 칼같이 나눠서 겨우 3상태이고 수식도 더 간결하다.
거기에다가 아래아한글의 전통인 조건부 / 키만(초성 입력 직후에만 ㅗ, 나머지 상황엔 / 그대로) 수식으로 넣어 주면 100% 정확한 아래아한글 스타일 세벌식이 완성된다.

Mac OS의 세벌식에 이어 아래아한글 97의 세벌식 입력 오토마타를 구현해 보니 스스로 생각해 봐도 재미있다. 다 똑같은 한글 입력 방식 같아도 실제로는 100% 똑같지가 않다.

내가 예전 글에서 썼듯이, <날개셋> 한글 입력기는 그야말로 한글 덕후들의 지적 욕구를 충족할 수 있는 프로그램, 한글 덕후의 마음의 고향 같은 프로그램을 표방하며 개발되고 있다. 그리고 이번 6.7은 그 이상향에 더욱 근접했다고 볼 수 있으며, 글을 다 써 놓고 보니까 마음이 바뀌는 듯. 이 정도면 6.51에서 6.7로 충분히 버전을 올릴 만도 하다는 생각이 든다. ^^

Posted by 사무엘

2012/08/27 08:20 2012/08/27 08:20
, ,
Response
No Trackback , 13 Comments
RSS :
http://moogi.new21.org/tc/rss/response/725

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

Comments List

  1. 사샤나즈 2012/08/27 17:58 # M/D Reply Permalink

    잘 읽었습니다.
    이전 종성 지향 두벌식 글과 함께 읽고, 자음을 두 번 누르면 쌍자음으로 조합되도록 조합 규칙을 수정한 두벌식의 자판을 바꾸어 적용해 보았는데,

    1. 'ㅅㅅㅡㄹ' 의 순서로 '쓸' 을 입력하려 하면 'ㅅ슬' 이 입력됩니다. 기존 H2 타입에서 종성 위치에 자음이 있을 때 모음을 입력하면 나오는 결과와 같습니다만 해결법이 있나요?

    2. 자음이 표시되기는 초성 위치에 표시되더라도 실제 코드는 종성 코드기 때문에 오토마타에서 'D'로 초성 위치에 자음이 있는지 확인할 수가 없는 듯합니다. 해결책이 있을까요?

    또한 이번 윈도우8에서는 특정 가이드라인을 만족시키지 않는 입력기는 메트로 모드에서 쓸 수 없도록 했는데, 이 가이드라인에 날개셋 입력기를 대응시킬 계획을 갖고 계신가요? 또 현재는 윈도우8에서 language bar(태스크바와 완전히 통합되어 따로 떼는 옵션이 보이지 않네요)에 날개셋 로고 포함 아무 아이콘도 표시되지 않아 수정은 필요할 듯합니다.

    마지막으로, 좋은 입력기를 계속 개발해 주셔서 감사합니다. ^-^

    1. 사무엘 2012/08/27 22:23 # M/D Permalink

      안녕하세요?
      한글 입력기의 동작에 대한 질문은 막연한 문장만으로는 제가 상황을 짐작하기 어렵습니다. 제가 추측을 바탕으로 제시한 다음 답변들만으로 문제가 해결되지 않는다면, 현재의 입력 설정을 파일로 첨부하여 제게 메일을 보내 주시기 바랍니다.

      1. H2와 H2J 타입은 그런 동작 방식을 구분해 주는 개념이 아닙니다. 혹시 이번 버전에서 추가된 ‘MS 두벌식’ 설정을 고치신 것이라면, “ㅅ+ㅅ=ㅆ” 결합은 종성이 아니라 초성에다 추가해야 합니다. 그래야 ‘ㅅ슬’이 되지 않고 ‘쓸’로, ㅆ이 다음 글자의 초성으로 한꺼번에 넘어갑니다. 종성 결합은, 종성에서 결합은 되지만 도깨비불 현상이 일어날 때 “ㄱ+ㅅ=ㄳ”처럼 종성과 초성으로 갈라지는 규칙의 집합이거든요.

      왜 이렇게 동작하는가 하면, 이 입력 설정은 ‘초-종성 공유 낱자 결합 규칙’을 사용하기 때문입니다. 자세한 것은 프로그램 도움말에서 ‘초 종성 공유 낱자 결합 규칙’에 대한 설명을 참고하세요. 이 용어는 색인에도 바로 등록되어 있습니다.

      여담이지만 두벌식은 쌍자음은 원래 반드시 Shift+한 타로만 입력하는 것이 맞습니다. 종성 지향 두벌식은 진짜 초성과 종성의 문맥 구분이 없는 진정한 두벌식인데, “ㅅ+ㅅ=ㅆ”을 해 버리면 진짜 종성 ㅅ+초성 ㅅ을 연달아 입력할 수가 없어지기 때문입니다. 천지인 입력 방식이 ‘국가’와 ‘구카’를 구분할 수 없어서 어느 하나는 조합 종료 타이머를 쓰는 것처럼 말입니다.

      2. 예, 맞습니다. 종성 지향 두벌식으로 입력한 첫 자음은 누가 봐도 명백하게 종성이기 때문에 오토마타의 D 변수에 표시되지는 않습니다. 그리고 오토마타의 내부 상태 번호도 초성이 아닌 종성 상태입니다.

      그런 명목상의 자음은 오토마타 수식에서는 (!D && F && O&2)라는 조건으로 식별해야 할 것 같네요. “조합 중인 한글에 초성이 없고 종성만 있는데, 그 글자가 두벌식 한글인가?”라는 뜻입니다. O 변수는 이번 6.7 버전에서 추가된 유용한 플래그이고요. (자세한 것은 역시 도움말 참고)

      하지만 오토마타는 아주 특수한 녀석을 디자인하는 게 아니라면 가능하면 조합 중인 낱자를 끌어들이지 않고, 입력으로 주어진 낱자인 A~C만으로 동작하게 만드는 게 깔끔하고 좋습니다.

      끝으로, 윈도우 8의 지원을 위한 별도의 연구와 조치는 현재로서는 아직 계획된 바가 없습니다. 얼리어답터 분들께는 좀 아쉽겠지만, 개인 사정상, <날개셋> 한글 입력기의 윈도우 8 대처가 윈도우 8의 정발보다 더 이를 가능성은 높지 않습니다.

      입력기의 내부 메커니즘에 대해서 어려운 설명이 많이 나왔는데, 잘 이해가 되셨나 모르겠네요. ^^
      감사합니다.

  2. 까막눈 2012/08/28 10:30 # M/D Reply Permalink

    너무 좋은 프로그래 만들어주셔서 감사합니다. 며칠전에 다운받아서 설치하고 연습중인데요,
    편집기에서 세벌식 390을 추가해본 후에 자판을 보니, / 자리에 원래 ㅗ가 있어야 하는것 아닌가요??
    그냥 / 자리에 / 가 있네요??? 버그인것인지?? 그렇다면 어떻게 수정하면 되나요
    감사합니다.

    1. 사무엘 2012/08/28 11:22 # M/D Permalink

      반갑습니다.
      ‘왼’, ‘과’ 같은 글자를 입력하면서 /를 눌러 보시면 ㅗ가 정상적으로 입력될 겁니다. 이 글 본문에도 이미 언급돼 있듯이, 이것이 원래 세벌식 글자판의 스펙이며, 고증에 충실한 것입니다. 특히 아래아한글은 세벌식 390 글자판을 만드신 분이 관여하고 있는 제품이기도 하니까요.

  3. 까막눈 2012/08/28 11:48 # M/D Reply Permalink

    390에서 초성없이 그냥 / 키를 누르면 / 가 찍히는데, 초성이 있는 상태에서 누르면 ㅗ가 나오는군요!
    그래서 화면에서 키배치에서는 / 가 찍혔군요.. 경우에 따라서 다른게 행동하네요.. 하지만 9위의 'ㅜ'는 안그렇네요..
    몰랐습니다... 좋은 프로그램 만들어주셔서 감사합니다.

  4. 까막눈 2012/08/28 11:53 # M/D Reply Permalink

    최종에서는 그렇지 않고 ㅗ가 무조건 찍히는데 반해, 390에서는 조건부로 달라지네요??
    좋은것 같습니다.. 근데 이렇게하면 shift-G 로 누르는 / 는 불필요한 키배정같은데요..흠
    이건 좋은 아이디어 같은데, 그럼 390이 먼저나온걸로 아는데 최종(391)에서는 왜 그런 행동이
    없어졌는지 모르겠네요.. 뭐 딱히 질문은 아니고, 궁금해서 적어봅니다..
    무척 세심하게 만들어주신 프로그램, 정말 훌륭합니다.
    감사드리고 또 감사드립니다..
    건강하세요!

    1. 사무엘 2012/08/28 17:29 # M/D Permalink

      네, 맞습니다. 다른 이유는 없고요, 제 프로그램은 390에만 조건부 /를 적용해 주고 있습니다. Shift+G를 누를 일이 크게 줄어드는 것도 사실이죠.
      최종 같은 여타 세벌식에서도 /의 수식을 "T&&!E ? H3|O_ : 0x2F"로 수동으로 넣어 주면 조건부 /를 쓸 수 있습니다. 그리고 ㅜ가 들어있는 9는 어떤 경우건 조건부 글쇠의 대상이 아닙니다.

      그에 반해 아래아한글은 최종 같은 공 병우 세벌식에 모두 조건부 /가 가장 엄격히 적용되고 있고요.
      이중모음 정석은 아시지요? V, B 의 ㅗ,ㅜ로는 이중모음이 안 되고 9, /로만 되는 것?

      이것도 원래 세벌식 FM이라면 지켜 주는 게 마땅하고 도스 시절엔 그걸 지키는 에디터도 있긴 했는데, DOS 시절이 끝나면서 거의 구분이 없이 사문화한 규정이 됐습니다.
      세벌식 안에서도 이런 식으로 배리에이션이 제법 있습니다. 이런 것들을 수용하려는 목적으로 <날개셋> 한글 입력기가 개발되었는데 버전이 올라가면서 세벌식 뿐 아니라 두벌식 쪽 지원도 늘고 있지요.

      이는 뒤집어 말하면, 글쇠와 한글 자소 사이에 왜곡이 존재하는 두벌식이 처리 난이도가 더욱 높기 때문에 미래의 후대 버전에서야 지원이 제대로 되기 시작했다는 뜻으로도 풀이할 수 있겠습니다.
      프로그램을 유용하게 사용하시기 바랍니다. ^^

  5. 주의사신 2012/08/28 15:17 # M/D Reply Permalink

    여기에 지혜가 있으니 지각이 있는 자는 그 프로그램의 수를 세어 볼지니라. 그것은 프로그램의 역사에서 비롯된 수니, 그것의 수는 육점육십육이니라. (계 13 : 18 패러디)

    위 구절을 쓸 수 있을 뻔 했은데, 일부러 피해 가신듯 하군요. 그리스도인이 만든 프로그램에 붙이기에는 조금 난감한 숫자가 아닌가 하는 생각도 조금 듭니다.

    1. 사무엘 2012/08/28 17:30 # M/D Permalink

      악은 모양이라도 피하고 싶어서 말이지요.
      프로그램의 역사에서 비롯된 수라니... 센스가 쩌십니다. ㅋㅋㅋ
      이번 버전이 마음만 먹으면 6.66을 붙일 수 있는 초유의 기회였죠.

      이번 버전은 역대 버전들 중 커널인 ngs3.dll 크기와 설치 배포 패키지의 크기가 가장 커졌습니다.
      과거에는 기능 때문에 커널 크기가 커지다가도 리팩터링, 기능 분할 등으로 인해 크기가 종종 감소하기도 했거든요.
      그러다가 이제는 다시 최고점을 찍었고요. 게다가 VC 2010이 같은 소스 코드도 좀 더 크게 컴파일하기도 해서..
      msi 파일도 과거에 거대한 msvcr71.dll과 mfc71.dll을 직접 내장하고 있었던 3.1 이래로 최고 크기를 경신했습니다.

      단일 프로그램을 혼자서 1.0부터 6.7까지 만들었다니.. 덜덜~

  6. 다물 2012/08/28 20:12 # M/D Reply Permalink

    혹시 윈도우 8을 지원하는 제품인가요?

    1. 사무엘 2012/08/28 22:21 # M/D Permalink

      아니요, 위의 댓글에도 언급돼 있듯, 이번 버전은 아직 윈도우 8 지원과 관련된 작업은 진행된 것이 없습니다.
      그러고 보니 날개셋뿐만 아니라 파워업도 분명 8에서는 또 제대로 동작을 안 할 가능성이 높아 보이는데, 테스트를 해야겠군요.

  7. Lyn 2012/08/30 10:11 # M/D Reply Permalink

    석사 완전히 끝나신거군요. 축하드립니다

    1. 사무엘 2012/08/30 11:43 # M/D Permalink

      감사합니다. 내일 학위 수여식이 있답니다. ^^

Leave a comment

<날개셋> 한글 입력기를 오래 써 본 분들은 아미 아시겠지만, 이 프로그램에서 두벌식 글자판의 자음 글쇠는 내부적으로 다음과 같은 수식으로 표현된다.

T<=1 ? 초성: 종성

그래서 ㄱ을 예로 들면,

T<=1 ? H2|G_: H2|_G

그 반면, 세벌식 글쇠는 간단하게 해당 자모 하나로 끝이다.

H3|G_ (초성 ㄱ) 아니면
H3|_G (종성 ㄱ)

H3은 세벌식 자모를, 그리고 H2는 두벌식 자모를 뜻하는 날개셋문자 접두사이다. G는 ㄱ을 뜻한다. 다만 알파벳 한 글자만 있으면 변수와 구분이 되지 않기 때문에 부득이 뒤에 _가 추가되었다.

종성은 앞에 _를 추가하는 것으로 초성 명칭과 구분한다. 그리고 이렇게 하는 것만으로 명칭의 길이가 두 글자를 넘어섰으므로 뒤에 별도로 또 _를 추가하지는 않는다. <날개셋> 한글 입력기의 헤비 유저라면 이 정도 수식은 이미 다 익숙할 것이다.

두벌식에서 번거롭게 수식이 추가된 이유는 한 글쇠가 상황에 따라 초성 역할도 하고 종성 역할도 해야 하기 때문이다. 오토마타에서 1번 상태는 통상 초성을 첫 입력받은 상태이기 때문에 그때까지는 ㄱ을 초성으로 내보내고, 중성이나 종성이 입력된 뒤부터는 종성으로 내보내라는 뜻이다. 한 마디로 말해 두벌식 타자기에 존재하던 ‘받침’ 글쇠를 이 수식이 담당한다고 생각하면 된다.

세벌식이 아닌 두벌식 자모는 종성을 처리할 때 세벌식 자모에 비해 다음과 같은 두 가지 추가 작업이 행해진다. 두벌식 글자판에서 한글이 입력되는 과정을 생각해 보면 자명한 것들이다.

첫째, 두벌식 종성 다음에 두벌식 중성이 이어지면, 잘 알다시피 도깨비불 현상이 일어난다. 직전에 입력되었던 마지막 종성 한 타가 다음 글자의 ‘초성’이 되고, 그 글자와 중성이 한데 결합한다.

둘째, 두벌식 종성이 계속 입력되었는데 기존 종성과 새 종성이 결합이 불가능하면 새 종성은 다음 글자의 종성이 아니라 ‘초성’으로 넘어간다.


두벌식을 세벌식에다가 추가적인 처리를 덤으로 하는 관점에서 한글 입력기를 설계하면 대체로 이런 식의 구현체가 나온다. <날개셋> 한글 입력기도 그렇고 아래아한글도 그렇고, 심지어 맥 OS의 한글 입력기도 그러하다.

특히 맥 OS는 두벌식과 세벌식의 낱자 결합 규칙이 완전히 동일하다. 초성은 쌍자음을 원시 자음의 연타로 입력할 수 있는 반면 종성(ㄲ, ㅆ)은 그렇게 할 수 없는 것이 둘 모두 똑같다. 초성의 결합 규칙과 종성의 결합 규칙이 분명히 구분되어 있으며, 두벌식에서 다음 음절로 이어진 첫 자음도 응당 초성으로 간주된다.

그런데 ‘초성’이 아닌 ‘종성’ 관점의 두벌식 한글 입력 방식도 생각할 수 있으며, 사실 이것이 초성과 종성의 구분이 없는 진정한 두벌식다운 두벌식이라 할 수 있다. 이 사상이 반영된 구현체는 마이크로소프트 Windows의 한글 IME가 유일하다.

MS IME의 두벌식은 초성과 종성의 구분이 없고 자음 입력은 어떤 경우에든 종성 문맥으로 간주된다. 그렇기 때문에 모음 없이 자음을 바로 입력할 때도 ㄳ, ㄻ 같은 겹자음을 만들 수 있다. 심지어 그 상태에서 ‘ㄱ (ㅏ) 가 (bksp) ㄱ (ㅅ) ㄳ (ㅗ) ㄱ소’ 같은 자유로운 입력도 가능하다.

이것은 <날개셋> 한글 입력기에서는 지금까지 가능하지 않았다. 수식 없이 H2|_G 같은 기존 두벌식을 종성만 배당하면, 모음 없이 당장 겹자음을 만드는 것을 비슷하게 흉내는 낼 수 있다. 그러나 완전히 똑같게는 못 한다. 계속해서 다음 음절로 입력되는 자음은 어차피 종성이 아니라 초성이 되어 버리고, 종성의 낱자 결합 규칙이 적용되지 않기 때문이다.

또한 두벌식 종성으로 자음, 그 다음으로 모음을 입력한 뒤 Bksp를 눌러 보면, 첫 타에 해당하는 자음은 종성이 아니라 초성으로 바뀌어 있는 것도 볼 수 있다. 내부적으로 두벌식 종성과 두벌식 중성 사이에는 도깨비불 현상이 한번 일어나서 종성이 초성으로 넘어간 걸로 간주되기 때문이다.

이 문제를 해결하고 종성 위주 두벌식을 도입하기 위해, 본인은 <날개셋> 한글 입력기의 어느 부분을 개량하면 좋을지 굉장히 많이 고민했다. 기존 패러다임과 새 패러다임을 어떻게 조화시킬까?
어느 구조체를 확장할까, 어느 API에다 옵션 플래그를 추가할까, 아예 날개셋문자에다가 새로운 타입을 추가할까..? 이런 결정을 내려야 할 때가 정말 내가 엔지니어로서 현역이고 살아 있음을 느낀다.

API 호환성을 깨뜨리지 않고 가장 후폭풍이 적은 방법을 며칠간 고민하던 중, 결국은 날개셋문자에다 타입을 추가하는 게 가장 바람직하겠다는 결론을 도출하였다. 그래서 H2에 이어 일명 H2J라는 타입이 도입되었다. 일명 ‘두벌식 종성’ 타입. <날개셋> 한글 입력기 다음 버전인 6.7에서 바로 볼 수 있을 예정이다.

현재 한글 입력과 관련된 날개셋문자 타입은 H3과 H2 말고도 H3의 자매격에 해당하는 다중 자모가 둘 더 있다. <날개셋> 한글 입력기는 기존 H3만으로도 ‘ㅏ+종성ㄴ’ 같은 다중 자모를 배당할 수 있다. 초성 ㄱ을 입력 중에 저걸 누르면 곧바로 ‘간’이 되고, ‘오’를 입력하던 중에 저걸 누르면 곧바로 ‘완’이 된다. 다중 자모는 동시치기 같은 것과는 전혀 다른 개념이므로 그런 것과는 절대로 혼동하지 말라.

그런데 디폴트인 H3은 ‘초-중-종’을 순서대로 적용하는 반면, 여타 다중 자모는 ‘중-종’만 적용 후 음절을 끊고 다음 글자 초성을 또 입력시키거나 ‘종’만 적용 후 ‘초-중’은 다음 글자로 넘긴다. 세벌식은 음절 경계와 관련된 변칙적인 처리가 없으니 이런 다중 자모까지도 생각할 수 있는 반면, 두벌식은 다중 자모까지는 갈 수 없고 음절 경계 처리에만 치중한 파생 타입만을 생각할 수 있는 셈이다.

‘두벌식 종성’ 타입으로 입력된 종성은 도깨비불 현상이나 결합 실패로 인해 다음 글자로 넘어갈 때 초성으로 바뀌는 게 아니라 종성이 그대로 유지된다. 그리고 그 상태에서 중성을 입력하더라도 종성은 초성으로 바뀌지 않고 종성 상태로 그대로 보존된다.

이 타입을 쓰면 두벌식으로도 자음을 배당할 때, 골치 아픈 수식을 쓸 필요 없이 언제나 마치 세벌식처럼 H2J|_G라고 언제나 종성 형태만 넘겨 주면 끝이다. 다만, <날개셋> 편집기처럼 초-중-종성의 형태를 완벽하게 보존하는 한글 글꼴 체계에서는 처음에 초성을 입력했는데 초성이 아니라 종성이 나타나기 때문에 마치 도깨비불 현상만큼이나 보기가 어색할 것이다.

이 어색함은 표준 한글 자모를 호환용 한글 자모로 치환해서 표시해야 덜해진다. 즉, 애초에 초성과 종성의 구분이 없는 글자판은 역시나 초성과 종성의 구분이 없는 글자 코드와 글꼴을 동반해야 자연스럽다는 뜻. 실제로는 한글의 구성 원리를 어기고 전혀 자연스럽지 않은 처리가 추가로 행해지는 셈이다. 오버헤드는 ‘세벌식 < 기존 세벌식 관점에서 추가로 구현된 두벌식 < 새로 도입된 종성 지향 두벌식’의 순으로 많아진다.

H2J 타입을 쓰면 <날개셋> 한글 입력기로도 MS IME의 두벌식과 완전히 동일하게 동작하는 입력 방식을 구현할 수 있다. 사실 내 프로그램은 세벌식 자판과 관련된 응용 기능들은 거의 1.x 시절부터 제공해 온 반면, 두벌식을 두벌식답게 지원하는 편의 기능들은 훨씬 나중에 도입되어 왔다. 특수 도깨비불 규칙(3.9부터)이라든가, 초-종성 공유 낱자 결합 규칙(6.0)에 이어, 종성 지향 두벌식(6.7)의 순이다.

알면 별로 어려울 것 없는 내용인데 이 글 내용을 제대로 이해한 분이 얼마나 되려나 모르겠다. <날개셋> 한글 입력기는 올해로 개발 12주년이고 무려 7.0을 바라보는 시점인데 아직도 한글 입력의 본질과 관련된 새로운 기능이 추가되고 향상된 게 있다는 게 내게는 무척 흥미롭고 의미심장하게 느껴진다.

Posted by 사무엘

2012/08/08 08:20 2012/08/08 08:20
, , , ,
Response
No Trackback , 4 Comments
RSS :
http://moogi.new21.org/tc/rss/response/717

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

Comments List

  1. Lyn 2012/08/08 11:32 # M/D Reply Permalink

    우왕 ...

    1. 사무엘 2012/08/08 14:30 # M/D Permalink

      지금 C++이 단순히 객체지향뿐만이 아니라 메타프로그래밍, 함수형-_- 등 갖가지 패러다임이 짬뽕으로 들어간 프로그래밍 언어인 것처럼,
      <날개셋> 한글 입력기도 한글 입력에 관한 한 짬뽕 복합 패러다임을 지향하고 있습니다. 한글 입력과 관련된 아이디어는 무한정 구현할 수 있게..;;
      세벌식이 이런 독특한 방향으로 발전했다면, 두벌식은 저런 방향으로 기술할 수 있다는... 그런 예를 보이는 것이죠.

      특수 도깨비불 현상으로 할 수 있는 일의 일부를 결국 초-종성 공유 낱자 결합 규칙으로 간략화할 수 있고,
      두벌식 종성 날개셋문자를 쓰면 그냥 공유 결합 규칙을 쓸 필요도 없이 그냥 종성 결합만 쓰면 되기 때문에
      한 기능이 다른 기능의 역할을 겸임하는 것도 있습니다. 하지만 이들 개념들이 다 동등한 것은 아니지요.

  2. Lyn 2012/08/10 10:18 # M/D Reply Permalink

    열정이 부럽습니다

    1. 사무엘 2012/08/10 16:36 # M/D Permalink

      열정이 뭔가 물리적인 보상으로 돌아올 수 있어야 이 일에만 더 열심히 전념할 수 있을 텐데요.. ^^;;

Leave a comment

<날개셋> 한글 입력기의 개발자가 심층 분석한 MS 한글 IME 리포트.
버그를 나열하기 전에 먼저 독자의 이해를 돕기 위한 기술 설명부터 하겠다.

A. MS IME의 두벌식과 세벌식의 구현 차이 -- 오토마타

일단 좋은 말부터 꺼내자면, MS 한글 IME는 현존하는 한글 입력기들 중, 어떤 의미에서는 기본에 충실하게 가장 FM대로 만들어져 있다. 두벌식과 세벌식의 로직이 서로 확고하게 분리되어 있으며 구조가 완전히 다르다. 그리고 MS 버전의 두벌식 한글 입력기는 전산학적으로 볼 때 진정한 두벌식의 고증에 가장 충실하게 만들어져 있다.

무슨 말이냐 하면, 자음이라면 초성을 조합할 때와 종성을 조합할 때의 조합 규칙에 차이가 없다. 그래서 초성이 입력되는 상태에서도 ㄶ, ㄳ 같은 겹받침을 바로 입력할 수 있는 반면, ㄲ, ㅆ 같은 쌍자음은 연타가 아니라 반드시 Shift로만 입력할 수 있다. 이 동작 방식은 내가 알기로 윈도우 95 시절 이래로 시종일관 변함 없다.

<날개셋> 한글 입력기나 아래아한글의 두벌식 입력기는 그렇지 않다. 도깨비불 현상만 추가되었을 뿐 세벌식의 사고방식으로 두벌식을 덤으로 구현한 형태에 가깝다. <날개셋>의 경우, 이 점을 감안하여 지난 6.0 버전에서 초-종성 공유 낱자 결합 규칙이라는 개념이 추가되었으며, 이를 사용하면 두벌식 입력 방식을 좀 더 두벌식스러운 사고방식으로 설정할 수 있다.

뭐, 아래아한글도 1980년대 말에 1.0이 처음 개발되었을 때는 개발자들이 세벌식이 정확하게 뭔지 몰라서 자음만 한 벌 더 있을 뿐 여전히 도깨비불 현상이 존재하는 형태로 만들었다가, 고 공 병우 박사에게서 지적 받고 고쳤다는 일화가 전해지긴 한다만.

B. MS IME의 두벌식과 세벌식의 구현 차이 -- 글쇠 인식

표준 두벌식 글자판은 A부터 Z까지 딱 알파벳 글쇠 26개에만 한글이 배당되어 있고 나머지 글자들은 영문과 완전히 똑같다. 그렇기 때문에 MS 한글 IME는 두벌식일 때는 알파벳 글쇠만 가로채어 사용하며, 숫자, 기호, 공백 글쇠는 처리하지 않고 응용 프로그램으로 그대로 넘겨 준다.

세벌식은 그렇지 않다. 몇 가지 영문과 일치하는 기호가 있긴 하지만 일반적으로 공 병우 세벌식은 4단까지 독자적으로 사용하고 숫자와 기호 영역까지 침범한다. 그래서 MS IME는 세벌식에 대해서는 아예 공백까지 포함한 48개 글쇠 자리를 모두 가로채어 동작한다. <날개셋> 한글 입력기는 가로챌 글쇠 영역 자체를 필요에 따라 정밀하게 제어하는 옵션을 아주 최근의 6.5 버전에서야 추가했다.

이렇게 두 글자판의 구현이 제각각 따로라는 점 자체는 나쁘지 않다. 그러나 이는 MS IME에 두벌식을 쓸 때는 괜찮은데 세벌식을 쓸 때만 자잘한 버그가 존재하는 빌미를 제공하고 있다. 역사적으로 볼 때, 이런 버그는 더럽게 안 고쳐진다는 특징도 있었다. 두벌식과 세벌식의 넘사벽 급의 인지도 차이 때문이다.

10년도 더 전에 포트리스라는 대포 쏘기 게임이 인기였을 때, 세벌식으로는 한글 모드에서 Space로 대포 쏘기가 안 되어 채팅과 게임을 같이 하기가 불편하다는 이슈가 있었다. 두벌식에서는 Space가 응용 프로그램이 직접 접수한 공백이지만, 세벌식에서는 Space가 직접 오는 게 아니라, 한글 IME가 가공을 하고 보내 준 공백이라는 완성된 문자열이 오기 때문이다.

C. 윈도우 7에서의 변화

자, 앞에서 다룬 건 MS 한글 IME의 두벌/세벌 메커니즘의 차이이고, 지금 하는 얘기는 운영체제의 버전에 따른 디테일의 변화 쪽이다.

16비트 윈도우 시절에는 운영체제에 유니코드도, 국제화(I18N)도, 지역화(L10N)도 없었다. 동일 제품을 한중일 나라의 문자를 입출력할 수 있게 개량하는 것은 MS의 각 지사에서 완전히 독자 기술을 사용해서 알아서 재량껏 해야 했다.

그러다가 윈도우 95/NT4가 되면서 글꼴 쪽도 획기적으로 발전하고(내장 비트맵, 트루타입 컬렉션 등), 입력기 쪽도 한중일 통합 IME 프로토콜이 처음으로 제정되었다. 그리고 입력기 프로그램은 EXE가 아니라 여타 운영체제에서 유례를 찾기 힘든 독특한 형태인 DLL이 되었다. 그래서 윈도우만 입력기의 한영 상태가 각 프로그램별로(정확히는 스레드별로) 완전히 따로 놀지, 공유가 되지 않는다.

윈도우 2000부터는 추가 글꼴과 코드 페이지 데이터만 설치해 주면 세계 어느 나라 윈도우에서도 아무 나라 언어의 입력기를 설치할 수 있게 되었고, 윈도우 XP부터는 고급 텍스트 서비스라고 불리는 일명 TSF 기술이 도입되었다. 윈도우 비스타부터는 이제 전세계 언어의 입력기와 글꼴이 추가 설치를 할 필요도 없이 기본으로 제공되며, TSF 프로토콜이 주류가 되고 기존 IME 프로토콜은 호환성 계층을 통해서나 제공된다.

이로써 비스타에서 문자 입력 방식의 그랜드 슬램이 달성되고 해피엔딩이 된 것 같은데, 윈도우 7에 와서는 기능이 추가된 건 없으면서 뭘 또 잘못 건드렸는지 문자 입력 쪽의 안정성이 전반적으로 하락했다. MS 한글 IME만의 버그인 것도 있고 운영체제 자체의 버그인 것도 있다. 이 글에서는 지금까지 언급한 A~C를 염두에 두고, 2012년 현재 MS 한글 IME에 존재하는 것으로 알려진 버그들을 정리해 보았다.

1. 세벌식 최종 + 전각문자

맥 OS는 공 병우 박사(이분이 요즘 같았으면 전형적인 앱등이이셨다ㅋㅋㅋ)의 텃새 덕분에 전통적으로 세벌식 최종이 강세였으며, 세벌식이라 하면 곧 최종 자판을 가리켰다. 그러나 PC 쪽은 도스 시절 이래로 390이 강세였기 때문에 세벌식이라 하면 곧 390을 가리켰다. 최종은 아래아한글조차 97에 와서야 제공하기 시작했을 정도로 인지도가 미미했다.

윈도우 95 때 처음으로 세벌식 최종 글쇠배열이 있긴 했지만 그런 인지도 부족으로 인해 틀린 배열이 굉장히 많았다. 그게 98에서 좀 바로잡히긴 했지만 여전히 오류가 있었고, 그 오류는 윈도우 XP/오피스 2003에 가기까지 고쳐지지 않았다.

비록 최종 글자판은 참고표와 가운뎃점처럼 1바이트 아스키 영역에 없는 글자가 있는 게 특이점이긴 했지만, 윈도우 98부터는 어차피 한글 IME의 모든 내부 자료구조가 유니코드로 바뀌었기 때문에 큰 문제가 되지 않았다. 구조가 그러하니 내가 파워업을 개발해서 패치도 가능했던 것이고.

윈도우 비스타 + MS 오피스 2007에 와서야 드디어 100% 정확한 세벌식 최종 글자판이 제공되기 시작했다. 2003년 중반에 내가 한국 MS를 방문해서 수정을 강력하게 요청했던 것도 아마 작용하지 않았겠나 생각해 본다. 비록 그 해 가을에 발표된 오피스 2003에서 바로 반영되지는 못했지만 말이다.

그런데, 이 사람들이 일을 깔끔하게 처리하지 못했다. 전각 모드에서는 참고표와 가운뎃점이 제대로 입력되지 않는다. 얘들은 아스키 문자가 아니니 라틴 문자처럼 일괄적으로 0xFEE0를 더해서는 안 되는데 그거 처리를 추가하지 않은 듯하다. 윈도우 7+오피스 2010에서까지 변함없다. 물론 한국에서는 전각 문자를 거의 쓰지 않으니, 이건 심각한 문제는 아니다.

참고로 한중일의 MS 오피스는 XP 버전부터 운영체제의 IME를 자기 것으로 패치하는 게 관행이 됐다. 일본어 IME는 운영체제의 것과 오피스의 것이 차이가 난다는 말도 있는 듯하지만, 한글 IME는 운영체제의 것이나 오피스의 것이나 차이가 거의 없음.

2. MS 워드 2007 이상에서 세벌식을 쓸 때만 나타나는 역상 현상

워드 2007 이상에서, 오피스 2007 이상 또는 윈도우 비스타 이상이 제공하는 한글 IME로 세벌식을 써서 한글과 숫자, 기호, 공백을 입력한다. 그 뒤에 IME를 날개셋이라든가 다른 일본어· 중국어 입력기로 바꾼 뒤 글자를 입력한다. 그러면 예전에 MS 한글 IME의 세벌식으로 입력했던 공백이나 숫자, 기호가 역상(검은 배경, 흰 글씨)으로 바뀐다!

사용자 삽입 이미지
굉장히 기괴한 버그이다. 이것은 워드에서만 나타난다는 점에서 워드의 문제이기도 하지만 세벌식으로 입력한 비한글 문자에 대해서만 나타난다는 점에서 MS IME의 문제이기도 하다. B에서 언급한 기술 차이를 생각해 보라.

이 역상은 문서의 내부 서식이 아니라, 문자의 중간 조합 상태를 표현하기 위해 문자 입력기가 임시로 부여하는 시각 효과이다. 일본어 입력 중에 나타나는 점선 밑줄 같은 것 말이다. 해당 문서를 저장한 뒤에 다시 불러오면 다행히 사라지긴 하지만, 그 상태에서 조치를 취하지 않으면 인쇄도 그대로 역상 모양으로 된다. -_-

더욱 기괴한 건, 오피스 2003 같은 예전 버전의 MS IME로는 세벌식을 쓰더라도 이런 현상이 발생하지 않는다는 점이다. MS 제품 자체의 버그가 확실하다. 윈도우 7/오피스 2010에서까지 고쳐지지 않았다.

3. 윈도우 7, 한글 입력 중에 바탕 화면을 클릭했을 때

윈도우 7에서 MS 워드 2007이나 2010을 실행하여 아무 한글 IME로나 한글을 입력한 상태로 있는다. 창을 최대화하지는 않은 채로 가령, ‘아’를 조합하고 있는다. 그리고 그 상태로 마우스로 바탕 화면을 클릭했다가, 다시 워드의 제목 표시줄을 클릭하여 돌아온다.

비스타에서는 동일한 절차를 수행하고 나면 ‘아’의 조합이 종료되어 커서가 ‘아’ 뒤에 가 있다. 그러나 7에서는 커서가 여전히 ‘아’를 조합하고 있지만 실질적으로는 조합이 끝난 상태이다. 받침 ㄴ을 입력하더라도 ‘안’이 되지 않고 ㄴ이 새로 조합된다.

윈도우 7은 한글 조합 중에 창의 포커스가 바뀌었을 때의 내부적인 처리가 갑자기 좀 이상하게 혹은 엄격하게 바뀌었다. 비스타나 XP 이전에는 아무 문제가 없던 게 7에서 갑자기 문제를 일으켜서 그에 대한 방어를 해야 했다. <날개셋> 한글 입력기도 과거의 5.51과 5.52 때 이와 관련된 버그 패치가 행해졌다.

4. 윈도우 7의 콘솔에서 세벌식으로 조합을 종료할 때 글자가 덧남

윈도우 XP/비스타에서는 해당사항 없고 7에서만 발생하는 구조적인 문제이다. 서비스 팩 1에서도 고쳐지지 않았다.
명령 프롬프트에서 세벌식 자판으로 한글을 입력하다가 온점이나 스페이스처럼 비한글 문자를 입력하면서 조합을 종료시키면, 조합 중이던 한글이 덧난다. 가령, ‘다.’를 입력하다 보면 ‘다다.’가 된다.

이건 꽤 황당하고 심각한 버그인데 왜 아직까지 안 고쳐졌는지 이해가 안 된다. 게다가 윈도우 7은 출시된 지 이제 무려 3년이 다 돼 가지 않는가.
왜 세벌식일 때만 그렇냐고? 이 역시 B에서 설명되었듯, 비한글 문자를 처리하는 방식이 두벌식과 세벌식이 다르기 때문이다. 문자 입력 프로그램이 아니라 운영체제의 구조적인 버그이기 때문에 윈도우 7에서는 MS IME든 날개셋이든 동일하게 발생한다.

5. IME 2010, 콘솔에서 한자 후보 목록이 곧바로 나타나지 않음

이것은 약간 불편할 수는 있지만 그렇게 심각한 문제는 아니다. 콘솔에서 한글을 조합하는 중에 한자 키를 눌러 보면, 원래 한자 후보가 콘솔 창의 하단에 곧바로 떠야 하는데 뜨지 않는다.
물론 이 상태에서도 번호를 누르면 해당 한자로 바로 변환이 되며, 좌우 화살표 같은 페이지 전환 키를 누르면 그제서야 후보 목록이 나타난다. 뭔가 코딩 실수가 들어간 듯하다.

이 버그는 윈도우 7의 기본 한글 입력기에서도 존재하지 않으며, 한글판 MS 오피스 2010과 함께 설치된 한글 IME 2010에서만 나타나는 문제이다. 즉, 운영체제의 것을 대체하는 오피스의 IME가 오히려 버그를 포함하고 있는 셈이다.
<날개셋> 한글 입력기에는 물론 이런 문제가 없다.

Posted by 사무엘

2012/06/24 08:34 2012/06/24 08:34
, , , , , ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/699

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

Leave a comment

잘 알다시피 <날개셋> 한글 입력기는 Windows용 한글 IME이다(IME이기만 한 건 아니지만). 이 분야는 경쟁 프로그램이 거의 없다시피하기 때문에, MS가 직접 공급하는 IME를 제외하면 3rd party 한글 IME 중에서는 <날개셋> 한글 입력기가 가히 독주를 하는 중이다. 그 이유로는,

첫째, 모바일용도 아니고 PC용으로는 한글 입력 방식이 딱히 더 만들 게 없다고 여겨지고 있어서인 것 같다. 그리고 딱히 돈이 되는 것도 아니니까 말이다. 싸제 IME가 활발히 쓰이고 있는 중국어· 일본어 IME의 개발 환경과 비교했을 때 이것이 크게 다른 점이다.

그리고 둘째로는, 윈도우용 IME라는 게 여타 운영체제의 IME와 비교해 보더라도 그 아키텍처와 스펙이 미치도록 폐쇄적이기 때문이다. 비록 프로토콜이 공개돼 있는 건 있지만, 그것만 참고해서는 쌩쌩 잘 돌아가는 한글 IME를 절대로 만들 수 없다. 문서화되지 않은 무수히 많은 상황에 대한 대비를 해야 되는데 이걸 이제 와서 혼자 처음부터 만든다는 건 불가능에 가깝다.

그럼에도 불구하고 <날개셋> 한글 입력기 말고 ‘싸제’ 한글 IME가 전혀 없는 건 아니다. 본인은 MS가 개발하지 않은 한글 IME를 최소한 두 종류를 더 알고 있다.

※ 새나루

윈도우 DDK에 등재되어 있는 FakeIME라는 일본어 예제 IME를 고쳐서 만들어진 한글 IME이다. 오픈소스 진영에서 만들어진 프로그램답게 소스 공개이다. 개발자들은 본인처럼 아예 대놓고 국어 정보학 쪽으로만 발을 들인 것도 아닌데 이쪽으로 조예가 굉장히 깊은 고수 프로그래머이다.

싸제 IME답게 여러 실험적인 기능이 많아서 실속이 있으며, 그러면서도 <날개셋>보다 덩치 작고 가볍다는 이점이 있다. 특히 <날개셋>이 개발 방향의 특성상 의도적으로 더 지원하지 않는 다음 기능들 때문에 새나루를 선호하는 사람도 있다.

키보드 드라이버 차원에서 드보락 글자판과의 연동: 쉽게 말해, 단축키까지 드보락 식으로 나오면서 그 상태에서 한글 입력까지 지원.

글자가 아니라 단어 전체를 조합으로 잡아서 단어 단위로 한자 치환: 일부 한자 혼용론자가 무척 좋아하는 기능이라 한다. MS IME로는 이 기능은 TSF A급 프로그램에서만 가능하며, <날개셋> 한글 입력기 역시 훗날 이 기능을 추가한다 하더라도 MS IME처럼 TSF A급에서만 지원할 것이다.

이 외에도 잘은 모르겠지만, 안 마태 키보드 드라이버도 입력 스키마를 살짝 변조한 수준에 머물러 있는 <날개셋>보다 새나루가 좀 더 지원을 잘 하는 게 있는 듯하다.

다만, 새나루의 개발자는 <날개셋>의 개발자처럼 한글 입력기 하나에만 완전 목숨을 건 타입은 아니다 보니, 프로그램의 유지· 보수와 버전업이 <날개셋>만치 애착을 갖고 꼬박꼬박 되고 있는 건 아니어 보인다. 하긴, 무료 소프트웨어가 이 정도라도 개발되어 온 게 감지덕지지.

※ Unicode CJK IME

이건 아는 분이 얼마 없지 싶다. 이건 무려 남북 합작으로 개발된 프로그램이다. 주 개발은 북한의 평양 정보 센터(PIC)에서 했으며, 남한의 한국 과학 기술 정보 연구원과 고려 대학교 민족 문화 연구원은 프로그램을 설계하고 각종 한자 데이터베이스를 구축했다. PIC는 서체도 만들고 ‘단군’이라는 워드 프로세서도 개발한 적이 있을 정도로 문자 처리 쪽에 기술이 상당한 수준이다. 그러니 IME도 만들었다.

세벌식은 전혀 지원하지 않지만, 남북 합작 IME 답게 북한 두벌식을 지원한다. 그리고 한양 PUA 방식의 옛한글을 지원하며, 문자표, 부수로 한자 입력, 자체 한자 사전 등의 기능을 내장하고 있다.

제목에서 알 수 있듯, 이 제품은 한글 IME뿐만이 아니라, 동일한 UI 엔진 기반으로 개발된 중국어· 일본어 IME와 한 세트를 구성하고 있다. 북한에서 그런 것까지 만들었다. 하지만 이들 IME의 성능(사전 크기 및 어절 분할 정확도)은 본인이 판단하기에 운영체제가 기본 제공하는 중국· 일본어 MS IME보다 못하다.

이런 프로그램들과는 달리, <날개셋> 한글 입력기는 처음에는 전용 에디터로만 개발되고 있었다. 2.x 시절까지만 해도 본인은 내가 스스로 한글 IME를 만들 수 있을 거라고 생각도 못 하던 처지였다. 그랬는데 2003년은 참으로 드라마틱하게도 한글 IME 개발의 원년으로 등극하게 되었다.

새나루는 2003년 말에 첫 버전이 나왔다. 그리고 본인이 접한 Unicode CJK IME 역시 2003년 6월자 버전이었다(다만, 그 후로 유지 보수는 중단된 듯). 그리고 그 해 가을에 출시된 MS 오피스 2003은 한자 변환 기능이 크게 강화되어 단어 단위 한자 변환이 처음으로 도입된 버전이었다. 이게 다 우연인 걸까?

이런 일련의 사건을 계기로 본인은 운영체제의 IME 스펙을 처음으로 공부하기 시작했으며, <날개셋> 한글 입력기를 운영체제의 IME로 거듭나게 하려는 연구를 난생 처음으로 시작했다. 마침 2003년 하반기이면 <날개셋> 한글 입력기 역시 3.0이 개발 중이었고, 입력기의 내부 구조를 싹 뒤집어 엎고 있었다. 나의 대학 3학년 시절, 이때가 <날개셋> 한글 입력기의 미래를 결정하는 개발이 이뤄지던 시절이었으니, 흥미롭지 않을 수 없다.

그래서 <날개셋> 한글 입력기에 좀 이렇다 할 외부 모듈이 난생 처음으로 탑재된 건, 2004년 9월에 나온 3.02 버전이다. 한글 입력기를 표방하면서 정작 윈도우용 IME가 나온 것은 새나루나 남북 합작 IME보다 시기적으로 늦다.

첫 버전은 당연히 정말 불안정했고 볼품없는 퀄리티였다. 아직 운영체제의 IME 시스템의 내부 구조를 제대로 이해 못 한 상태에서 최소한의 글자 찍기만 가능하던 상태였다. 이 때문에 직후 버전인 3.1에서 당장 무더기 버그 패치가 이뤄졌으며, 그 후로 외부 모듈이 큰 안정화 단계를 마치기까지는 1년이 넘는 시간이 더 필요했다.

그러나 첫 진입 단계에서 이런 시행착오를 충분히 겪은 뒤엔, 워낙 탄탄한 자체 한글 입력 시스템을 갖추고 있던 <날개셋> 한글 입력기가 완성도 높은 윈도우용 IME로 완전히 자리잡게 되었다. TSF 인터페이스를 이용해 bksp 달라붙기 같은 <날개셋> 고유 기능까지 그럭저럭 재연해 냈고, 심지어 윈도우 95부터 오늘날의 7까지 모든 운영체제를 지원하는 최적화까지 덤으로 구현했기 때문이다.

<날개셋> 한글 입력기는 이런 내력을 거쳐 지금과 같은 모듈들이 잘 개발되었다. 하지만 IME(외부 모듈)이 첫 개발되던 그 시절을 본인은 지금도 잊을 수 없으며, IME 모듈의 개발에 영향을 끼친 위의 두 프로그램들에도 나름 애착을 갖고 있다.

Posted by 사무엘

2012/04/09 08:23 2012/04/09 08:23
, , ,
Response
No Trackback , 7 Comments
RSS :
http://moogi.new21.org/tc/rss/response/666

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

Comments List

  1. 김 기윤 2012/04/09 09:32 # M/D Reply Permalink

    오래된 역사와 여러 가지 시행착오들을 겪고나서 완성되는 날개셋 IME...!

    역시 덕후가 세상을 바꾸는 걸 지도 모르겠습니다. (?)

  2. Lyn 2012/04/09 10:18 # M/D Reply Permalink

    헛... ㄷㄷ

  3. 사무엘 2012/04/09 16:28 # M/D Reply Permalink

    김 기윤, Lyn: ㅋㅋ 논문이 끝나더라도 앞으로
    새로운 기능 & 이론 연구(다음 버전 개발),
    Mac OS 프로그래밍, (앞으로는 아마 윈도우 8 대비까지)
    그리고 언제까지나 이것만 붙들고 있을 수는 없으니 날개셋 다음 아이템 연구...

    focus가 여기저기로 분산되고 있어서 고민입니다.

  4. Lyn 2012/04/09 16:49 # M/D Reply Permalink

    IQ 한 50정도만 떼서 주시면 안될까요 (..)

    1. 사무엘 2012/04/09 22:14 # M/D Permalink

      저... 저보고 하시는 말씀인가요?? ㄷㄷㄷ
      저는 그냥 근성과 집념으로 오덕질만 해 왔을 뿐이지, 머리가 그렇게 남의 부러움을 살 정도는 절대 아닙니다 ^^

  5. a 2015/02/27 11:56 # M/D Reply Permalink

    http://www.kristalinfo.com/download/#cjkime
    Unicode CJK IME가 지금은 그냥 무료로 배포되고 있더군요.

    1. 사무엘 2015/02/27 16:24 # M/D Permalink

      오~ 저런 사이트도 있군요. 알려 주셔서 고맙습니다. :)

Leave a comment
« Previous : 1 : ... 3 : 4 : 5 : 6 : 7 : 8 : 9 : 10 : 11 : ... 12 : Next »

블로그 이미지

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

- 사무엘

Archives

Authors

  1. 사무엘

Calendar

«   2019/07   »
  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:
1219377
Today:
68
Yesterday:
531