1.
겨울방학도 이렇게 끝이 보인다.
본인이 이번 방학 때 이뤄낸 가장 뜻 깊은 성과를 둘 꼽자면 하나는 <날개셋> 한글 입력기 6.5이고, 다른 하나는 HFT(아래아한글 전용 글꼴) 해킹 성공이다.

사용자 삽입 이미지

저 글꼴들을 MS 오피스 제품에서도 쓰고 PDF도 자유롭게 만들고, 무엇보다도 화면에 anti-alias가 된 부드러운 모습으로 보니 너무 좋다.. 근성의 reverse engineering 오덕질을 통해서 이뤄 낸 성과. ㅋㅋ 새로운 글꼴로 아무 글이나 마구마구 써 보고 싶다.

또한, 날개셋 6.5 버전은 아직까지도 프로그램을 크게 고친 부분이 없을 정도로 역대 최고로 손꼽히는 안정성과 완성도로 잘 만들어졌다. 대단히 만족스럽다. 그래서 당분간 안심하고 완전히 새로운 기능 연구와 논문 준비 등에 전념할 수 있을 것 같다.

2.
윈도우 7은 콘솔(명령창)에서 세벌식을 쓰면 '다다.' 이렇게 한글이 덧나는 버그가 있다. 왜 SP1에서도 안 고쳐진 걸까? 예전에도 언급한 적이 있지만, 이런 건 두고두고 디스를 좀 해 줘야 된다.
윈도우 운영체제는 NT 계열도 꼭 이런 이상한 버그가 역사적으로 하나씩 있었다.

과거 2000은 256색으로 들어갔다가 돌아오면 군청색 제목 표시줄의 색깔이 옅어지는 버그를 유일하게 갖고 있어서 SP4에서까지 안 고쳐졌고,
XP는 테마를 저장했다가 불러오면 Luna 모드에서도 메뉴가 클래식 모드처럼 표시되어 색깔이 이상해지는 버그가 있는데 역시 SP3에서까지 안 고쳐지고 저렇게 끝났다.

이런 이유로 인해 본인은 한글 IME 개발과 관련하여 까탈스럽고 안 좋은 추억 때문에 남들이 7 좋아하는 것만치 7을 좋아하지는 않으며, 남들이 비스타 싫어하는 것만치 비스타를 싫어하지도 않는다. -_-;; 뭐, 비스타도 희한한 버그 의심 증상이 하나 있긴 했으나, SP1에서 곧바로 고쳐짐.

3.
<날개셋> 편집기는 txt 확장자를 자기 프로그램으로 연결한다거나 하지는 않는다.
그렇기 때문에 이렇게만 놔 둬서는 윈도우 7의 jump list를 활용하지 못한다. (윈7 사용자 중에 jump list가 뭔지 모르는 분은 없으리라 생각되지만, 어쨌든 모른다면 검색 요망)

탐색기에서 txt 파일을 우클릭하여 '연결 프로그램 선택 → 찾아보기' 등을 골라서 <날개셋> 편집기를 한 번이라도 지정한 뒤(꼭, 기본 연결을 시켜 놓을 필요는 없고 이렇게만이라도), 나중에 <날개셋> 편집기의 열기 대화상자로 txt 파일을 열고 나면 그건 앞으로 jump list 에 등재되게 된다.

jump list를 좀 더 창의적으로 활용하면, 편집기는 당장 저런 기본 용도만으로도 충분할 것이고(최근 파일 열기),
변환기는 클립보드 변환 같은 자주 사용할 만한 task를 등록해 놓을 수 있겠으며,
입력 패드는 자주 쓰는 보조 입력 도구를 실행과 동시에 바로 꺼내 놓게 할 수 있겠는데 더 자세한 활용법에 대해서는 좀 더 시간을 두고 고민해 봐야겠다.

4.
얼마 전엔 드디어 <날개셋> 한글 입력기 프로젝트를 비주얼 C++ 2010용으로 정식으로 포팅해서 빌드해 봤다. 특이사항으로는,

- 사소한 컴파일 에러가 있었으나, 더 깔끔하고 분명한 코드를 만드는 데 도움이 되는 에러였으며 쉽게 잡았다.
- VS 2010의 빌드 시스템은 $(TargetPath) 변수의 값을 예전과는 다른 방식으로 부여하는 듯하다. 그래서 이걸 조정하는 노가다를 매 프로젝트들마다 좀 해야 했다.

이것 외엔 딱히 트러블이 없었으니 무리 없이 잘 갈아탔다.

동일한 옵션으로 빌드했지만 x86 바이너리(32비트)들은 VS 2008과 비교했을 때 크기가 살짝 더 커졌고, x64 바이너리(64비트)들은 살짝 더 줄어들었다.
같은 코드를 빌드했을 때 바이너리 크기가 조금씩 더 커지는 건, VC6 이래로 개발툴이 업데이트되면서 비교적 일관되게 관찰되는 추세였다. 최적화가 인라이닝 등 코드 크기를 더 키우는 쪽으로 행해져서 그런 것 같다.

비주얼 C++ 2010은 C/C++ 언어도 빌드 중에 'Linking...'이라는 말이 안 뜨고 generating code...에 링킹이 포함되는 듯하다.
똑똑한 인텔리센스는 부러운 점이긴 하다만, 너무 커진 덩치, 이질감이 생긴 GUI와 도움말 시스템 때문에 2010은 개인적으로 언제쯤 도입하게 될지 모르겠다. 다만, 리소스 에디터가 드디어 윈도우 비스타의 PNG 내장 아이콘(256*256)까지 제대로 표시해 주는 점은 마음에 든다.

5.
내 경험상 윈7은 USB 메모리(스틱 or 외장 하드) 매체의 제거를 예전 OS에 비해 더 관대하게, 더 빨리 허용해 주는 것 같다. 해당 드라이브를 사용하는 프로그램들을 다 껐는데도 '사용 중이기 때문에 제거 못 함' 꼬장 때문에 할 수 없이 아예 OS를 로그오프하거나 아니면 그냥 강제로 매체를 제거해 버린 일이 거의 발생하지 않았다.

그리고 다른 얘기이다만, 윈도우 7은 Taskbar에 있는 각종 프로그램들 아이콘과 시스템 트레이의 아이콘을 드래그하여 마음대로 순서를 바꿀 수 있는 게 무척 인상적이다.
7에서 새로 바뀐 작업 표시줄은, 실행 중인 프로그램과(동일 프로그램이 중복 실행된 것 포함) 그렇지 않은 프로그램의 구분이 잘 되아 보이는 걸 개인적으론 안 좋게 생각했었다. 그러나 한동안 써 보니까 이게 그럭저럭 나쁘지 않은 디자인이라는 생각이 든다.

무엇보다도, 창을 몇 개씩 띄워 놔도 많이 띄웠다는 느낌이 심리적으로 안 드는 게 인상적임.
옛날에 윈9x의 전통적인 시작 메뉴 시절엔, 컴을 몇 년 쓰면서 수십 종류의 프로그램들을 설치하고 나니까 '프로그램' 메뉴 옆으로 프로그램 리스트가 두 칼럼 이상씩 차지하는 크고 아름다운 면적으로 주렁주렁 달렸던 거 기억하는가?

또한 인터넷 서핑하다가 브라우저 창이 열몇 개씩 넘어가니까 작업 표시줄 모습이 가히 가관으로 바뀌던 것도 기억하시는지? 윈도우 7은 복잡도를 제어하는 디자인에 무척 신경을 썼다..

6. 윈도우 비스타와 7 모두, 로그인 화면에서 암호를 입력하고 나면, 암호가 맞든 틀리든 일단 Welcome부터 출력하면서 설레발을 치다가 그 뒤에 암호가 틀렸으면 사용자 진입을 거부한다. “안 돼! / 돼!”도 아니고 츤데레도 아니고 이건 도대체 무슨 디자인일까?? -_-;;
암호가 맞을 때만 Welcome을 출력하게 개선되면 좋겠다.

7.
윈도우 9x는 프로그램을 조심해서 짜는 데에 도움을 준다.
NT 계열에서는 해제했던 메모리를 중복 해제하거나, 자원을 반납· 해제하는 걸 깜빡하는 식으로 대충 대충 짜도 당장 티가 안 나며 그냥 넘어간다. 그러나 9x에서 그랬다간 얼마 못 가 시스템 자원이 바닥난다거나 바로 뻗어 버리기 때문에, 이런 차이 덕분에 프로그램을 윈도우 9x에서 테스트하다가 버그를 발견하여 구조적인 문제를 해결한 경우가 지금까지 종종 있다.

아마 <날개셋> 한글 입력기도 한 2~3년 동안 윈9x에서 테스트를 안 한 채 개발을 계속하다가 버전이 1.0쯤 올라간 뒤에 다시 윈9x용으로 테스트하면, 여기저기서 원인을 알 수 없는 버그가 자꾸 튀어나와서 단순히 유니코드 API layer를 쓰는 것만으로는 윈9x를 결코 다시 지원할 수 없는 수준에 이를 것이다.
지금 <날개셋> 한글 입력기 소스가, 비록 같은 C++언어이지만 비주얼 C++ 6.0으로는 도저히 개발을 계속할 수 없는 이질적인 단계에 도달한 것처럼 말이다(각종 문법 차이 때문).

Posted by 사무엘

2012/02/23 08:33 2012/02/23 08:33
, , , ,
Response
No Trackback , 8 Comments
RSS :
http://moogi.new21.org/tc/rss/response/645

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

Comments List

  1. 백성 2012/02/23 09:57 # M/D Reply Permalink

    암호가 틀리면 환영합니다를 먼저 띄운 다음에 암호가 틀렸으니 나가보라는 메세지를 던지죠.
    짜증나서 관둠

    1. 사무엘 2012/02/23 14:32 # M/D Permalink

      좋아, 암호를 입력했으니 환영의 인사를 전해 주겠다.
      그럼 저는 어떻게 될까요?
      로그인 못 할 것이다. ㄲㄲㄲㄲㄲ

      (음, 일본 환타 CF의 DJ 선생도 생각나는군요.
      실컷 장단 맞춰 주고 나서는 '찌가이마스.')

    2. 백성 2012/02/24 03:14 # M/D Permalink

      쇼군센세상이 훨씬 더 부합해요.

      환영합니다 - 환요합니다 - 혐오합니다 킬킬 두음법칙상 꺼지라는 뜻이군!

  2. 주의사신 2012/02/23 10:27 # M/D Reply Permalink

    '다다' 버그는 IME 2010을 이용하면 해결이 됩니다. IME에서 OS 자체의 문제점을 해결해 준 것인지는 정확히 모르겠지만, 하여간 됩니다. 날개셋을 쓰면 '다다'는 그냥 있지만요.

    1. 사무엘 2012/02/23 14:31 # M/D Permalink

      MS IME는 두벌식일 때는 문제가 없습니다. 세벌식일 때만 저러지요. IME2010도 예외가 아닙니다. (두벌식일 때는 문제를 피해 가는 방법으로 프로그램이 동작합니다.)
      이건 운영체제의 버그이기 때문에 특정 IME 프로그램이 어떻게 할 수 있는 현상은 아니랍니다.

  3. 사무엘 2012/03/21 17:12 # M/D Reply Permalink

    MS 오피스 2010의 한글 IME에도 버그가 있습니다.
    콘솔(명령 프롬프트)로 가서 한글을 조합하고 한자 변환을 시키면 밑에 후보 리스트가 보이지 않습니다.
    위아래 화살표로 selection을 변경해야 그제서야 후보 리스트가 보입니다.
    물론, 후보 리스트가 보이지 않을 때도 1~9 번호를 바로 누르면 되긴 합니다. 화면에 뜨지만 않을 뿐 한자 후보 모드가 되긴 한다는 뜻이죠.

    제가 확인한 바로는 날개셋이나 심지어 윈도우 7이 원래 내장하고 있는 MS 한글 입력기에는 나타나지 않는 현상이고 오피스 2010과 동봉된 IME 2010만 이렇습니다.
    윈도우 7의 '다다.' 버그도 그렇고 오피스 2010까지... 별로 기능이 추가되거나 바뀌는 것도 없는 프로그램에 왜 이런 자잘한 버그가 들어가는지 모르겠네요.

  4. Y 2024/01/28 13:45 # M/D Reply Permalink

    HFT의 윤곽선은 Postscript와 같이 3차(cubic) Bezier 곡선을 사용하는 듯한데, 2차(quadratic) Bezier 곡선을 사용하는 Truetype 윤곽선으로 어떻게 변환하셨는지 궁금합니다.

    제가 알기로 낮은 차수의 Bezier 곡선을 높은 차수의 Bezier 곡선으로 변환하는 것은 자명하지만 높은 차수를 낮은 차수로 완벽히 변환하지는 못해서 여러 구간으로 쪼개 근사를 사용하는 것 같은데, 몇 개의 구간으로 나누셨는지가 궁금합니다.

    1. 사무엘 2024/01/29 05:20 # M/D Permalink

      안녕하세요?
      저라고 특별한 수가 있는 건 아니구요, 그냥 모든 3차 베지어를 무식하게 2개의 2차 베지어로 쪼갰습니다. 허무하죠? ㅎㅎ
      기복이 심한 곡선이라면 원본과의 오차가 커지겠지만, 지금까지 저 폰트를 10년 넘게 써 봐도 퀄리티가 원본 대비 그렇게 차이가 나지는 않는 것 같습니다.

      TTF가 아니라 CFF 방식의 OTF로 변환했으면 3차 베지어를 손실 없이 그대로 담을 수 있었겠지만.. ClearType이 제대로 지원되지 않는 등 그 당시(혹시 지금까지도?) Windows에서의 지원에 한계가 좀 있어서 그리하지 않았습니다.

      폰트 내부 구조에 일가견이 있는 분이시군요~!! 반갑습니다. ^^

Leave a comment
« Previous : 1 : ... 1647 : 1648 : 1649 : 1650 : 1651 : 1652 : 1653 : 1654 : 1655 : ... 2204 : Next »

블로그 이미지

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

- 사무엘

Archives

Authors

  1. 사무엘

Calendar

«   2024/12   »
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:
3044958
Today:
178
Yesterday:
1972