Windows 2000 IME 세벌식 버그 패치

2007. 2. 4. 09:27
10년도 더 전에 도스용 한글 3.0 구매하였는데 그 꾸러미 안에 세벌식 스티커의 들어 있었다.
당시에 쓰던 키보드에 붙여서 세벌식으로 배워보려 했건만 워드 작업이 잦아서 급한대로 쓰던 두벌식 계속 쓰고 있었다. 간혹 주위 사람이 본인의 컴퓨터를 쓰려다 스티커가 붙은 키보드를 보고 당황해하였다.나중에 컴 처분과 함께 키보드는 스티커가 제거된 채 다른 사람에게 옮겨갔다.
돌이켜보니 타인을 당혹케 하기만 하고 정작 본인은 익히지 못한 채 스티커를 허무하게 소비해버려서 아깝게 생각된다. 지금 그런 스티커를 판매 한다면 구매할 의사가 있을 정도로, 상당히 잘 만들어진 스티커였다고 기억한다.

최근에와서 그때 익히지 못하였던 세벌식에 대한 욕심이 다시 붉어져 이래저래 관련 사이트를 다녀보았다. 예전에 스티커 없이 몇번 배우기를 몇번 시도한 적이 있는데, 세벌식 스티커를 붙이면 좀 더 쉽지 않을까 하는 생각에 스티커를 판매/배포하는 곳이 없나 살펴보았다. 당시와 같은 세벌식 스티커를 찾지는 못했으나, 무료로 스티커를 배포하시는 고마우신 분의 사이트는 찾을 수 있었다.
그리고 세벌식 관련 도구를 찾아보다, 윈도우즈 IME의 세벌식 최종자판에 틀린 것이 5개나 있다는 사실을 알게 되었으며, 이를 패치해주는 도구를 구할 수 있었다.1)

헌데, XP에서는 사이트에서 안내해주는 대로 하면 쉽게 패치되었는데, 2000으로 돌아와서 하려니 오래 안 쓴 탓에 패치 작업이 번거로웠다. 좀더 쉽게 패치할 수 있는 방법을 두고 삽질만 한 것을 생각하니 자신이 좀 한심해진다.2)

1. 일단 MS IME용 세벌식 파워 업(Han3Tool.exe)을 다운받은 후, 실행하고 "최종 글쇠배열 패치"를 선택 후 "실행"을 누르면, 패치를 하려 했으나 공유문제로 패치가 되지 않는 파일을 볼 수 있다. 여기서는 Windows 2000 기본 IME인 IME 98 이므로 해당 프로그램이 imekr98u.ime 패치하려 했다.

2. 일단 imekr98u.ime 을 임의의 디렉토리에 복사한다. 해당 파일은 통상 c:\winnt\system32 에 존재한다.

3. MS IME용 세벌식 파워 업을 실행하고 최종 글쇠배열 패치를 선택한 후, 찾아보기를 통해 복사해둔 imekr98u.ime를 선택하여 패치를 실행한다.

4. c:\winnt\system32 에 있는 imekr98u.ime 파일을 imekr98u.ime.sav 등과 같은 이름으로 변경하고 패치해둔 파일을 복사해 온다.3)4)

5. 윈도우를 재부팅하면 패치된 IME를 사용할 수 있다.5) 키보드 형식을 세벌식 최종으로 선택한 후 `키,~키를 눌러 *,※가 나온다면 정상적으로 패치된 것으로 보면 된다.

--------
1) 김 용묵의 절대 공간, http://moogi.new21.org/story20.htm, IME2007 에서는 이 문제가 개선되었다.

2) 삽질의 내용은 이러하다. 기본 한글 IME를 완전히 내린 후 수동으로 파일을 선택하여 패치를 한 후 한글 IME를 다시 올리니, 원본에서 파일을 다시 덮어써버려 패치한 게 헛수고가 되어버렸다. 참고로,본인은 영문판 2000을 사용하기에 한글판에서는 IME를 완전히 내릴 수 있는지 여부는 확인해 보지 못했으나, 소개한 방법의 경우는 IME를 내릴 필요가 없어 문제되지는 않을 듯 하다.

3) 파일 복사후 파일비교를 권한다. 그리고 dllcache 폴더 내에 imekr98u.ime 파일이 있는 경우 이를 미리 삭제하여 두는 것이 좋다.
fc /b imekr98u.ime imekr98u.ime.sav
당연한 얘기지만, 실행 결과 파일이 달라야 한다.^^

4) 2000의 경우 기본 IME는 IME 98 이고 XP는 IME 2002 이며, 패치할 파일은 아래와 같았다.
IME 98 : C:\WINNT\system32\imekr98u.ime
IME 2002 : C:\WINDOWS\system32\imekr61.ime, C:\WINDOWS\ime\imkr6_1\imekrcic.dll
2000의 경우 dllcache 폴더만 잘 비워주면 IME를 내리지 않고도 쉽게 패치할 수 있었지만, XP의 경우 파일 보호 기능 등으로 인해 imekr61.ime.sav로 파일명을 변경하더라도 imekr61.ime이 다시 생기므로 패치된 파일을 덮어쓰기를 해야 했다. 그리고 덮어쓰기를 하였더라도 잠시 후 원래 파일로 변경되기도 하였다. (당연히 파일이 다시 생성되기 전에 복사할 경우도 마찬가지였다.)
아무튼 패치를 위해서는 요령이 좀 필요한데, 원리는 복사한 파일이 원 파일로 변경되지 않도록 파일을 열어두는 것이다. 무식하지만 한 예로 복사 직후 위의 비교 구문을 반복 실행하므로써 imekr98u.ime를 계속 access 하는 것이다. 타이밍만 잘 맞춘다면 적용이 되는 것이고, 실패할 경우 다시 복사하여 몇번 반복하다보면 성공할 수 있을 것이다. 실패했는지 성공했는지도 비교 결과를 보면 쉽게 알 수 있으니 생각보다는 유용하기도 하다.
imekrcic.dll 은 1번 과정에서 그냥 패치가 되므로 별도의 추가 과정을 요구하지 않는다..

5) XP의 경우, 재부팅 없이도 가능하다. 참조 : 재부팅없이 Windows XP IME 세벌식 버그 패치
시도 해보지 않아서 확인해 보지는 못했으나 2000에서도 될 것 같다는 느낌이 들기도 한다. 차후에 이 부분에 대해서도 확인보려 한다.

*) 나중에 알고보니 이와 동일한 방법이 이미 도아의 세상사는 이야기에 소개되어 있었다.

chic20 꼼쀼타 쪼물딱