한글 IM의 역사 ...

마잇의 이미지

ubuntu-users 메일링 리스트를 읽다가 독일분께서 howto write korean 이란 제목으로 글을 올리셨더라구요. 기본적인 질문은 강력한 콩글리쉬로 답을 해드리긴 했습니다.

'왜 여려가지 한글 IM들이 있느냐?' 라는 질문에 저 자신도 잘 모르고 있었다는 생각을 하고 '나도 잘 모른다. 하지만 최종 사용자 입장에서는 거의 같은 기능을 제공한다. 차이가 없다. 걱정할 필요없다(scim설치했다고 해서)' 요렇게 대답을 해줬습니다.

저도 궁금할뿐더러 이 분도 궁금해 할 거라는 생각도 들고 해서 역사를 잘 알고 계신 분이 있으면 짤만한 정리를 부탁드려 볼까 합니다.

제가 알고 있는 것만 적으면,

한텀(범용 입력기는 아니고 내장 입력기능을 가졌던 터미널)
ami
imhangul
nabi
iiimf, uim
scim(scim-hangul)

제가 써본 시간 순서대로 적긴했는데 정확한건 아닙니다. imhangul, nabi는 같은 분이 만드셨고 imhangul은 gtk-immodule만, nabi는 xim, gtk-immodule 둘 다 지원하는걸로 알고 있습니다.
iiimf, uim은 제가 안써봤고 ...
scim-hangul은 nabi 만드신 분께서 개발에 참여 하시는걸로 알고 있습니다. 원저작자는 James Su 라는 이름을 쓰는 중국분 같더라구요.

왜 이렇게 바뀌게 되었는지는 잘 모르겠네요. 원 저작자분이 개발을 중단하시거나 새로운 input framework(uim, scim같은)에 적용하기 위해서 그랬는지...

아뭏든 리눅스에서 한글 입력을 불편없이 해주신 관련된 모든 개발자 분들께 늦게 나마 감사 말씀을 드리고 싶습니다. :)

댓글) 언급했던 그 글타래는 이곳에서 보실 수 있습니다. 글 작성은 포럼에 가입하거나 메일링리스트에 가입해야 하는 것 같습니다.
http://www.ubuntuforums.org/showthread.php?t=159352

댓글2) 두벌식으로 입력을 시작하자마자 일명 '도깨비불'현상에 거부감을 느끼는가 봅니다. 타이핑을 처음 배우는 한국사람도 마찬가지겠지요?

권순선의 이미지

HanIM도 있었고 '벼루'라는 것도 있었습니다. 무척이나 오래전의 기억들을 떠올리게 하는 글타래로군요. :-)

keizie의 이미지

툴킷과 데스크탑 환경이 바뀌었기 때문입니다. 예전에 쓰던 Xt나 Motif 같은 것들을 지금도 쓴다면 그 시절에 맞추어 만들어진 HanIM 같은 걸 쭉 쓰면 될 겁니다. 요즘도 한글 카드를 꽂아서 도깨비 한글을 쓰거나 윈도우에 한메 한글을 따로 깔아서 입력한다고 생각해보세요.

하지만 그간 많이 바뀌었죠. 여러 데스크탑 표준 규약이 나왔고 그에 따라 환경은 변하는데 예전 방식대로 만들어진 프로그램을 고치느니 새로 만드는 게 나을 수도 있습니다. HanIM이 한창 표준이던 시절 gtk+를 써서 ami가 나온 경우나, gtk2가 태동하던 시절에 각종 gtk IM 모듈이 나온 게 그런 식일 겁니다. IIIMF나 SCIM 같은 통합 프로젝트가 있으면 또 그에 맞춰 한글을 입력하는 모듈을 작성하는 거구요.

이따금 기존 방식과 다른 식으로 입력기를 구현하는 경우도 있습니다. xkb를 통해 복잡한 오토마타 과정을 피하고 거의 즉시 한글을 완성하는 방식이라던가 (이건 써보진 않았지만) 테이블 방식을 이용한 게 scim-tables-ko로 들어갔다던가 하는 게 있습니다. 또 im-hangul이 나오기 전의 gtk2에는 생뚱맞게도 일본에서 한글을 공부해 만든 두벌식 입력기가 들어가기도 했습니다. 조합이 제대로 되지 않아 지금은 없어졌을 겁니다.

요즘은 http://kldp.net/projects/hangul 에서 입력기를 비롯해 한글 관련 프로그램에서 공통으로 쓸만한 라이브러리를 만들고 있습니다. http://hangul-jfbterm.kldp.net/ 에서 이미 쓰고 있으며, 앞으로 scim-hangul에도 채택될 예정으로 알고 있습니다.

다만 지금 껏 아쉬운 것이 있다면, 뭔가 획기적인 입력방식이 드물다는 점입니다. 마우스로 대충 그려서 입력한다던가, 키보드 그림이 화면에 떠서 꾹꾹 눌러서 입력한다던가, 알파벳으로 입력된 문자열을 다시 넘겨서 한글로 뽑아낸다던가 하는 것들이 분명 주변에 존재하는데 입력 방식의 일종으로 인식되기보다는 그냥 신기한 기능으로만 남는 것 같습니다. (말 꺼낸 사람이....라죠? -_-)

Wolf의 이미지

굳이 아쉬운 점이 있다고 한다면...
통합 다국어 입력기는 중국 아니면 일본 주도라는 점이랄까요...
한글은 독립된 입력기에만 치중하다가 나중에야 다 버리고 통합되는 느낌을 줘서..

danskesb의 이미지

국내 한글 입력기들이 GTK+ 환경에만 너무 초첨을 맞춘 나머지 Qt 환경에 신경을 쓰지 못한 것이 아쉽습니다.
일례로 나비가 KDE에는 잘 안 붙죠. 그나마 요즘은 SKIM이 나와서 다행이라고 생각합니다.
윈도우즈와 MS 오피스 2003의 확장 입력기를 사용한다면 한글 필기 인식 같은 것도 지원합니다.
하지만, 저는 타블렛을 한 번도 안 써 봐서 이것은 불편하다고 생각합니다.
또한 일본어와 중국어 IM에 비해서는 처리해 줄 것이 단순하고 키보드로만 충분히 입력할 수 있기 때문에 지적했던 기능이 안 나오는 것 같습니다.

kz // scim-tables-ko 입력기는 진짜 운이 따라 주어야 쓸 수 있습니다.
조금만 느리게 쓰면 글자가 풀려 버립니다.
---- 절취선 ----
http://ubuntu.ksa.hs.kr

정태영의 이미지

peremen 님이 얘기하신 것중에 qt 환경에서 nabi 를 사용할 수 없다는 건 사실이 아닙니다 :) nabi 는 XIM protocol 을 사용하기 때문에... qt, gtk, motif 를 가리지 않습니다.

imhangul 과 헷갈리신게 아닐까 싶군요. 또한 qimhangul 이 있기 때문에 nabi, imhangul 등이 없더라도... immodule 을 지원하는 qt 를 사용하시고 계시다면 SKIM 등이 없더라도 한글 입력에 "전혀" 문제가 되지 않습니다 ;)

오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...

http://mytears.org ~(~_~)~
나 한줄기 바람처럼..

오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...

http://mytears.org ~(~_~)~
나 한줄기 바람처럼..

묵검추의 이미지

입력기에 한텀.. 을 적으셔서 생각이 든건데.... 예전에 어느분이 X 자체를 수정하셔서 한글을 입력 할 수 있게 하신것도 있었죠.. 하두 예전 이야기라 이름도 수정하셨던 분도 까먹었지만... ^^;
HanX 던가? 그게 뭐였죠..?
솔직히 그게 옳지 않은 방법이라고 사람들이 말을 많이 했지만.. 초보 입장에서는 무척 편했습니다. ^^

danskesb의 이미지

구글에서 찾아 보니까 잘 나오네요.
카이스트 FTP 서버에 올려져 있었군요.
http://sparcs.kaist.ac.kr/exhibition/extra/HanX/ForEachOS/Linux/
그런데 지금은 X.org로 바뀌었고 커널 버전도 상당히 올라가서 쓸 수 없을 것 같습니다.
http://www2.kr.freebsd.org/doc/FreeBSD_2.2.7_Installation_Guide/freebsd3.shtml
여기에 꽤 옛날의 리눅스 한글에 관한 역사가 있네요.
이 페이지를 지금 읽어 보니까 웃음만 나오지만... 그 때 사람들의 열정은 대단한 것 같습니다.
---- 절취선 ----
http://ubuntu.ksa.hs.kr

서 영진의 이미지

쩝 그 때 사람들이라뇨... 아직 살아 있습니다.

danskesb의 이미지

저는 GUI 위젯을 Qt로 쓰는 한글 입력기가 없다는 게 서운하다는 것 뿐입니다.
---- 절취선 ----
http://ubuntu.ksa.hs.kr

krisna의 이미지

제가 ami이전은 잘 알지 못하므로 자세히 이야기하기는 어렵지만, 그 이후의 이야기는 좀 해드릴 수 있겠습니다.

입력기의 변천은 입력기 독자적으로 발전해 온 것이 아닙니다. toolkit의 변화에 따라서 변해온 것이죠. ami가 등장한 것은 X11R6에서 제공하는 XIM 기능을 구현하여 I18n 환경에서 한글 입력을 구현한 것입니다. 이전의 HanX 같은 것들은 아마도 X11R5 시절에 사용 가능했던 것일 겁니다.

ami는 황치덕님이 GTK+1으로 만든 한국어 XIM 입니다. 그런데 시간이 지나면서 GTK+2.0이 나오기 시작했고, GTK+2.0은 입력기 프레임웍으로 XIM을 직접 연결하지 않았습니다. XIM과 툴킷 사이에 gtk-im-module 프레임웍을 도입했죠. 그래서 gtk+2.0 개발 과정에서 일본인 개발자 Yusuke Tabata가 한국어 입력기 모듈을 제작해서 추가했던 것입니다. gtk+2.0 초기 버젼에 그 모듈이 있는 것을 확인 하실 수 있을 것입니다. 그런데 그 입력기는 한국어 입력을 emacs에 있는 한국어 입력 테이블을 이용해서 만든것이다 보니 한국어 입력할때 음절을 제대로 분리하지 못해서 약간 불편한 점이 있었습니다. 그래서 그것을 보완하는 third party gtk-im-module이 개발된 것이고, 그 입력모듈을 gtk+2.0의 기본 입력 모듈로 추가하려는 계획이었습니다만, gtk+2.0 개발자인 Owen은 입력 프레임웍이 너무 복잡해지고 커지는 것을 원치 않는다면서 한국어 gtk-im-module(im-hangul)을 메인 스트림에 포함하려는 계획을 포기해버렸습니다. 그래서 그 중간에 개발되었던 모듈을 버리지 않고 아직도 프로젝트를 유지 하고 있는 것입니다.

당시에 GTK+2.0이 도입되면서 툴킷 내부의 기본 인코딩으로 UTF-8을 사용하기 시작했고 ami에서도 UTF-8 인코딩을 지원해야할 필요가 생겼습니다. 그러나 ami의 개발이 점차 늦어지는 상황에서 UTF-8 지원 코드가 일부 들어 갔지만, GTK+2.0 툴킷은 지원하지 못햇습니다. 그러다보니 GNOME 2.0 환경에서 ami가 GNOME의 애플릿으로 작동하지 못하는 문제가 있었습니다. 그런 문제를 한꺼번에 해결하고자 GTK+2.0 프레임웍으로 개발하고, 애플릿대신 Notification Area를 사용하며, 내부적으로 UTF-8 인코딩을 기본적으로 지원하는 XIM nabi가 개발되었습니다.

그런데 이쯤해서 XIM 프레임웍에 질려버린 CJK 일부 사람들이 여러 나라의 언어를 한꺼번에 입력 가능한 입력기를 만들고자 한 것입니다. 그래서 Sun Microsystems를 중심으로 iiimf 프로젝트가 시작되었고, iiimf는 한국어 입력기가 없었는데, 거기에 한국어 입력기 엔진(iiimf-hangul)을 추가한 것입니다. 그후 썬 쪽에서 kole라는 한국어 입력기를 또한 추가하였습니다.

다른 쪽에서는(아마 터보리눅스였을 것입니다) SCIM이라는 프로젝트를 시작하였는데 초기에는 한국어 입력기가 초기의 gtk im module과 같이 한국어 테이블을 이용하여 만들어져 있었습니다. 그런데 scim을 중국어 입력기로 사용하시던 김기태님이 한국어 입력기가 이상하다면서 SCIM 개발자 James Su에게 im-hangul을 소개했습니다. 그러자 SCIM 개발자가 im-hangul을 SCIM 프레임웍에 맞게 포팅하면서 scim-hangul이 새로이 추가되었습니다.

한편 GTK+2.0의 입력 프레임웍에 자극을 받은 일본 개발자 Yama Ken이 Qt im module 프로젝트를 시작했고, Daisuke Kameda가 작업을 하여 Qt에도 im module 프레임웍이 도입되었습니다. 그래서 im-hangul과 같이 손쉬운 한글 입력기를 제공하고자 하는 목적으로 qimhangul도 제작된 것입니다.

지금까지 이야기를 보면, 한국어 입력기가 많은 이유는 리눅스에 왜 GTK+와 Qt라는 같은 기능을 하는 툴킷이 여러개 존재하고, GNOME, KDE, XFCE등 데스크탑 환경이 여러개 존재하는지와 같은 이유라는 것을 알 수 있습니다.

참고로 외국인에게 한국어 입력기에 대한 설명을 하기 위한 kldp wiki 페이지가 있습니다.
http://wiki.kldp.org/wiki.php/KoreanInputMethod

또한 외국인을 위한 로마자 방식의 입력기가 있다는 사실도 알려주시는 것이 좋겠군요.
simpleHangul http://www3.sympatico.ca/d.moser/hangul.html
scim-tables의 "Hangul Romaja"

마잇의 이미지

krisna님 덕분에 잘 알게 됬네요.
krisna님이 imhangul, nabi, scim-hangul 개발자로 알고 있는데, 그렇다면 이 자리를 빌어 감사드립니다 ^^

Quote:
참고로 외국인에게 한국어 입력기에 대한 설명을 하기 위한 kldp wiki 페이지가 있습니다.
http://wiki.kldp.org/wiki.php/KoreanInputMethod

또한 외국인을 위한 로마자 방식의 입력기가 있다는 사실도 알려주시는 것이 좋겠군요.
simpleHangul http://www3.sympatico.ca/d.moser/hangul.html
scim-tables의 "Hangul Romaja"

세벌식 사랑 모임에 있는 자판 그림을 링크해주고 두벌식이나 세벌식 모듈로 입력해보라고 얘기하고 태영님이 simpleHangul을 링크해 주셨는데 romaja module 하고 uim에 있는 romaja 모듈도 설치해서 시도했었나 봅니다.

제대로 해석한건진 모르겠지만 세벌식이 직관적으로 입력하기 편하다는 말을 하네요. 그래서 그냥 세벌식으로 달리라고 했습니다.8) 우리와는 달리 다른사람들이 내 컴을 쓰거나 반대의 경우도 걱정해야 할 필요가 없으니 ...

--
마잇


--
마잇

soohyunc의 이미지

후후~ 저도 우분투 멜링 리스트에 가입되어 있었구, 그 독일친구로 부터 이멜을 받긴 받았는데, 이틀정도 멜첵을 안하고 다시 확인해보니, 어느분께서 친절히 답변을 달아주셨더라구요.. 그 분이 여기 이렇게 계셨는줄 몰랐는걸요? 쿠~

암튼 반갑습니다~

cjh의 이미지

krisna님이 쓰신 ami 이전의 역사는 다음 글들을 통해 찾아볼 수 있습니다.

제 글 중 1.2절
http://wiki.kldp.org/wiki.php/LinuxdocSgml/HangulOnUnixGuide-KLDP

김범철님이 쓰신 X입력기 구현에 대한 마이크로소프트웨어 기사중 일부
http://myhome.hanafos.com/~bumchul/DOC/xim.txt

--
익스펙토 페트로눔

--
익스펙토 페트로눔

atie의 이미지

여담으로, 마잇님과 정태영님의 설명을 잘 들었던 그 독일분이 KWord에서는 scim으로 한글 입력이 안된다는 버그 보고를 우분투에 했고 다른 외국분이 그 버그를 KDE 버그로 올렸으니 KOffice에서 한글 입력의 문제가 고쳐진다면 두 분의 설명 덕분일지도 모릅니다. :)
----
I paint objects as I think them, not as I see them.
Ubuntu Dapper user / Ubuntu KoreanTeam / Lanuchpad karma 10222

----
I paint objects as I think them, not as I see them.
atie's minipage