내가 에디터를 새로 만든 이유

오늘날처럼 유니코드에 OpenType, subpixel 렌더링(ClearType 같은) 등의 최신 문자 처리 기술이 컴퓨터에 보편화해 있고 심지어 스마트폰조차 화면 해상도가 1000을 넘어서서 큼직한 윤곽선 글꼴로 글자를 찍는 세상에,

<날개셋> 한글 입력기의 편집기 프로그램은 20년 가까이 전의 유물인 구닥다리 8*16, 16*16 비트맵 글꼴을 여전히 고수하고 있다.
그 많은 시간과 노력을 들여서 에디팅 엔진을 따로 만들고, 그것도 그런 초라한 자체 한글 출력 시스템 기반으로 만들어야 할 특별한 이유가 있는 것일까?

여기에는 여러 정황상의 이유가 있다. 지금은 그 명분이 다소 약해진 것도 있지만, 큰 방향은 변하지 않았다.

첫째, <날개셋> 한글 입력기가 처음 개발되던 1999년 말~2000년 초에는 아직 PC 환경이 굉장히 열악했다.
당시의 주류 운영체제이던 윈도우 95/98은 내부적으로 아직 유니코드 기반이지 않았기 때문에, 운영체제의 기본 GUI로는 영문 윈도우에서 한글이 찍혀 나오지 못했다. 운영체제의 언어하고 다른 언어의 IME를 설치할 수도 없어서 Global IME 같은 별도의 특수한 프로토콜이 따로 있을 정도였다. 지금 생각하면 얼마나 격세지감인가?

그렇기 때문에 그 당시에 나름 한글 관련 기능으로 유명세를 탄 아래아한글, 이야기 같은 프로그램은 32비트 Windows 환경에서도 여전히 '자체 한글' 에디팅 엔진을 사용하곤 했다. 운영체제의 언어를 불문하고 한글 입출력 환경을 제공하기 위해서이다. 이 추세를 <날개셋> 한글 입력기 역시 따른 것이다.
뭐, 아래아한글만 빼면 나머지 자체 한글을 지원하던 이야기, 새롬 데이타맨, Token 2는 어차피 전통적으로 고정폭 글꼴이 강세인 터미널 접속 프로그램이기도 했고 말이다.

둘째, Windows 환경은 저런 국제화나 유니코드 이슈를 떠나서라도, 맥(TextEdit)이나 리눅스(gedit)에 비해 전통적으로 에디터 프로그램이 부실했다. 가령, 운영체제가 기본 제공하는 에디터 중에는(메모장+워드패드) syntax coloring이 제공되는 놈이 없고, 특히 MDI를 지원하는 놈도 없다.

운영체제의 에디트 컨트롤을 그대로 사용하는 메모장은 윈9x 시절엔 아예 64KB 메모리 제한이 있었다.
지금의 메모장은 비록 명목상의 메모리 제한은 없지만 내부적으로 단일 버퍼 구조인 건 변함없기 때문에, 몇백 KB 이상의 큰 파일을 여는 덴 여전히 부적합하다. 로딩 시간이 굉장히 길 뿐만 아니라 앞부분에다 글자를 삽입하거나 지우는 오버헤드가 굉장히 크다. 직접 해 보면 안다.
이런 와중에 에디터 프로그램을 하나 만들어 보는 것도 나쁘지는 않겠다는 생각이 자연스럽게 들게 된 것이다.

셋째, 글꼴 관련 문제 때문이다.
수많은 글꼴들이 범람하는 시대이지만, 영문과는 달리 한글은 화면 본문으로 쓸 만한 글꼴이 오늘날까지도 대단히 드물다.
인제 와서 맑은 고딕을 시작으로 ClearType에 최적화된 글꼴이 좀 개발되어 상황이 아주 약간 나아졌다만,
정말 15년 전이나 지금이나 화면용 글꼴은 굴림, 바탕 일색이다.

이럴 바에야, 좀 아마추어 냄새가 나긴 해도 옛날에 개발되었던 수십 종의 비트맵 글꼴들을 그대로 살려 쓸 수 있는 자체 한글 체계가 일종의 참신함과 매력을 줄 수도 있다.
하지만 이 장점은 도스 시절 비트맵 글꼴을 경험하지 못한 세대가 늘면서 점차 사라질지도 모르겠다. -_-;;

그리고 사실 이보다 더 큰 이유는 완전한 조합형 기반 세벌식 한글 표현 때문이다. <날개셋> 한글 입력기는 무려 2008년이던 과거 5.0 시절에 최초로 유니코드 5.2 옛한글을 앞서 도입했는데, 이 역시 독자적인 한글 입출력 시스템을 사용하기 때문에 가능했던 일이다.

굳이 옛한글이 아니더라도 가령 초성 ㄱ과 종성 ㄱ을 구분하고, ㄱ+종성ㄴ이나 ㅏ+종성ㅇ 같은 중간 형태 역시, 자체 한글 체계로는 아주 쉽게 표현할 수 있는 반면 Windows 제도권(?) 글꼴 시스템으로는 그럴 수 없다.
<날개셋> 한글 입력기의 특장점 중 하나가 초성만 쏙 지우고 모아치기를 하고 무한 낱자 수정을 하는 등, 그런 미완성 중간 한글을 남발하는 기능들이다! 그런데 그런 걸 화면으로 표현을 못 하면 어떡한단 말인가?

이건 프로그램의 본질적인 정체성이 달려 있는 문제이다.
극소수 옛한글 표현이 가능하게 설계된 글꼴로는 제도권으로도 저런 것들 표현이 가능하지만, 글꼴 파일 덩치가 심하게 크고 아름답다.. (한자가 같이 들어있는 경우가 많기도 하고)

글꼴이라는 게 오늘날 체계가 굉장히 복잡해져 있다. 그 이유 중 하나는 글립 인덱스 개수 한계 때문이다. 단일 글꼴만으로 유니코드 전영역의 글자를 담는 게 불가능하다. 글립 인덱스는 파일 포맷만 확장한다고 간단히 해결되는 게 아니라 이와 얽힌 각종 운영체제 API나 내부 구조체와도 연계가 되어야 해서 문제 해결이 더욱 어렵다.

그런 데에 얽매일 바에야 속 시원하게 <날개셋> 한글 입력기 같은 단순한 전· 반각 문자 체계가 유리한 점도 있다. 어차피 유니코드 영역의 대다수를 차지하는 주범은 한자이고, 한자는 전각으로 처리 가능한 아주 단순한 문자이니까 말이다. -_-;;

본인이 독자적인 에디팅 엔진과 글꼴 시스템을 개발한 마지막 이유로는, <날개셋> 한글 입력기는 단순히 입력기만을 지향하는 프로그램이 아니라는 점을 생각할 필요가 있다.

<날개셋> 한글 입력기는 '한글 IME' 계층과, 이 IME와 통신하면서 글자를 입력받고 수정하는 편집기 계층 사이의 통신 프로토콜까지 독자적으로 생각하고 구현한 시스템이다. 통신이 왜 필요하냐 하면 이미 있는 글자도 낱자 단위로 고치고 다시 조합을 재현해야 하기 때문이다. 그러니 이걸 모두 시연하려면 에디터를 직접 만들어야 한다. 이걸 만들면서 Windows 운영체제의 문자 입력과 관련된 표준 프로토콜을 모두 공부하고 구현하는 효과까지 달성했다.

<날개셋> 한글 입력기는 텍스트 필터라 하여 한글 입력 기능을 일괄 처리와 자동화하는 기능까지 제공하고 있다. 텍스트를 변형하는 기능을 제공하는 플랫폼 역시 자체적인 에디터 말고는 선택의 여지가 없다. 뭐, 텍스트 필터만 시연하는 게 목적이라면 기존 에디트 컨트롤만 끌어다 써서 만드는 것도 나쁘지는 않겠지만 말이다.

그래서 본인의 프로그램은 에디터를 제공하지만, 그렇다고 해서 전문적인 여타 프로그래머용 에디터를 표방하면서 개발되는 건 결코 아니다. 애초에 그런 부류와 경쟁하려고 만들어진 프로그램이 전혀 아니다.
오히려 <날개셋> 한글 입력기는 자체 에디터가 있고, Windows용 IME가 있고, 여타 프로그램 내부에서 IME를 훅킹하여 동작하는 입력 패드가 있어서 한글 입력기로서 존재할 수 있는 front end가 세 종류이다. 입력기가 존재할 수 있는 모든 경우를 상위 계층에서 생각하여 구현했다.

본인은 <날개셋> 한글 입력기가,
덩치 작지만 깊은 철학과 굉장한 활용 가능성이 있는 프로그램,
사람에게 휠체어가 아니라 자전거 같은 요긴한 도움을 주는 프로그램, (자동차급은 아니어도)
세벌식 기계식 타자기를 컴퓨터로 그대로 옮겨 놓은 듯한 고성능 고효율 프로그램,
한글을 마음껏 입력하고 싶은 생각이 절로 들고 한글 덕후에게 마음의 고향 같은 인상을 주는 프로그램이 될 것을 지향하며 개발하고 있다.

솔직히 내가 만들었지만 내가 생각해도 이 프로그램은 긍정적인 쪽과 부정적인 쪽 모두 좀 똘끼가 굉장히 충만한 프로그램이다. 어떻게 이런 걸 만들 생각을 했는지.. -_-

따라서 이 글의 결론을 한 줄로 요약하면,
<날개셋> 편집기는 앞으로도 글씨 크기 조절 기능을 제공할 가능성은 전혀에 가깝게 없을 것이다. ㅋㅋㅋㅋㅋ

Posted by 사무엘

2012/01/13 08:46 2012/01/13 08:46
Response
No Trackback , 8 Comments
RSS :
http://moogi.new21.org/tc/rss/response/626

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

Comments List

  1. 주의사신 2012/01/13 09:50 # M/D Reply Permalink

    1. 마이크로소프트는 참 많은 일을 합니다만 그 중에는 게임 스튜디오들도 있습니다. 처음에는 왜 그런걸 하지 생각을 했었는데, DirectX, XBox 등을 만드는 회사에서 게임을 안 만들어 보면, 제대로 된 Library를 제공하기 어려울테니 그런 일을 하고 있구나 하는 생각을 하게 되었습니다. (아마 매출 부분에서 개발 툴 사업부 다음으로 적지 않을까 생각이 드는군요.)

    날개셋 편집기도 그런 부분에서 이해를 하려 합니다. 저는 안 쓰지만요!


    2. Notepad++을 쓰고 있는데, 초기 구동 속도가 조금 많이 느린 것을 제외하면 참 쓸만합니다.

    1. 사무엘 2012/01/13 13:41 # M/D Permalink

      저의 경우에도, 타자연습이라는 응용 프로그램을 하나 덤으로 만드는 게 <날개셋> 한글 입력기의 API 디자인에도 영향을 주고 있습니다. 그냥 이렇게 만들어 놓으면 이렇게 쓰일 거라고 예상만 하면서 기능을 넣고 라이브러리를 만드는 것하고는 또 다른 관점을 보여주더군요. ^^
      <날개셋> 편집기는 왜 이런 식으로 만들어졌고 도대체 정체가 뭔지에 대해서 이해하는 데 이 글이 도움이 되었으면 합니다.

  2. 자랑쟁이 2012/01/13 17:30 # M/D Reply Permalink

    정말 도깨비불 현상이나... 너무 많은 서체를 만들어야 하는등...은
    완성형 방식(네모꼴)의 정말 큰 문제점이죠. (사실 그것보다 더 큰문제는,
    초성을 종성에 사용이라는 한글 조합 원리에 어긋난다는 것이겠습니다만....)

    그래서 학부때 탈네모꼴 서체에 관심을 갖다가 삼벌식에 관심을 가졌었는데,
    탈네모꼴 서체와 삼벌식 입력체계가 합쳐지면 정말 엄청난 시너지를 가져오겠더군요.
    (무엇보다 만들어야하는 자모의 갯수가 혁신적으로 줄어드는 것이 엄청난 매력으로 다가왔었습니다.)

    하지만 안상수 선생님께서 탈네모꼴 안상수체를 발표하면서 가장 크게 이슈화 되었던 문제가,
    심미감과 가독성의 문제였는데, 안상수 선생님은 '익숙함에서 오는 문제'라고
    일축하셨던 예가 있지요. 그나마 공한체가 버젼을 거듭하며
    꽤나 가독성과 심미감의 문제를 해결 했었지만,
    그 뒤로 맥이 끊기다 시피한게 많이 아쉽더군요.

    개인적으론 이렇게 된 이유로는 한글 서체를 만드는 공개 프로그램,
    혹은 저렴한 서체 저작 프로그램의 부재가 가장 컸다고 보고 있습니다.

    사실 이런 부분에 대한 사회와 국가차원의 지원이 시급한것 같은데... 쩝...
    많은 공무원들이.... 보이진 않지만 중요한 것과 중요하진 않지만 크게 보이는 것 중에
    후자를 선택해서 시행 한다는게 많이 아쉽습니다.

    1. 사무엘 2012/01/14 09:00 # M/D Permalink

      혹시 이 글 보셨는지요? http://moogi.new21.org/tc/560 님께서도 내용을 이미 다 알고 공감하실 것 같네요. ^^
      조합형 한글 서체를 만드는 툴의 부재는 매우 아쉬운 문제입니다. 그거는 한글 서체 제작에서 핵심 기술인데, 개발에 대한 아무 보상이 없으니 글꼴 업계에서 내부적으로나 쓰이고 있지 공개가 되지 못하고 있습니다.

  3. 백성 2012/01/13 22:42 # M/D Reply Permalink

    1. 편집기를 따로 만드신 건 참 잘 하셨습니다. 메모장이나 다른 어떤 데를 가 봐도 이런 미완성 글꼴 남발에 특수기능, 옛한글 지원 같은 건 못 하죠. 인제 아이콘도 바꾸셔야 되는데요 ㅎㅎ

    2. 옛한글은 맘에 드는 글꼴이 도무지 찾아봐도 없습니다. 열에 하나 찾아도 인터넷에서 쓰는 법을 모르니...
    그냥 MS에서 조합형 조금 변형해서 옛한글 찾으면 안 되나 싶은데... 한글 관련한 건 완전히 아무런 관심도 안 가지고 있는 MS가 미울 뿐입니다

    3. 마음의 고향! 딱 저를 두고 하신 말씀이군요. ㄳㄳㄳㄳㄳㄳㄳㄳ

    ※글꼴 조절 기능이 안 나온다면... 화면 확대 기능(보조프로그램의 돋보기)을 편집창에서만 활성화시켜 글꼴 키우는 것처럼 눈속임하는 땜방질 작업은 안 되나요? (에라, 내가 어둠의 경로를 통해 소스를 입수하여 돋보기를 내장시켜야 되나? ㄲㄲㄲㄲㄲㄲ 그전에 프로그래밍부터 배워야 될텐데 ㅠㅠㅠㅠ)

    1. 사무엘 2012/01/14 09:00 # M/D Permalink

      제가 무슨 이념과 철학으로 지금의 날개셋 같은 프로그램을 만들었는지 이제 다 이해를 하신 듯하군요. 듣자하니 Windows 7의 다음 버전은 기본 글꼴인 맑은 고딕에 유니코드 5.2 옛한글 조합 기능이 모두 들어간다고 합니다.
      그나저나 편집기의 아이콘은 2.5 버전부터 썼던 거니 수명이 벌써 9년. =_=;;;

  4. 비밀방문자 2012/01/25 09:36 # M/D Reply Permalink

    관리자만 볼 수 있는 댓글입니다.

    1. 사무엘 2012/01/25 17:11 # M/D Permalink

      안녕하세요? 반갑습니다.
      제 프로그램은 그런 용도로 사용되기에는 좀 어려운 프로그램일 것 같네요. ^^
      다만, 제 프로그램을 있는 그대로 설치해서 뭔가 기능을 소개하는 게 목적이라면, 그런 건 저의 동의를 구할 필요도 없고 아무 비용 부담 없이 자유롭게 가능합니다.
      어떤 교육을 생각하고 계시는지 궁금하네요.
      자세한 문의는 이곳 운영자 소개에 들어있는 제 이메일 주소로 개인적으로 해 주십시오.
      감사합니다.

Leave a comment
« Previous : 1 : ... 1297 : 1298 : 1299 : 1300 : 1301 : 1302 : 1303 : 1304 : 1305 : ... 1841 : Next »

블로그 이미지

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

- 사무엘

Archives

Authors

  1. 사무엘

Calendar

«   2022/01   »
            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:
1734804
Today:
495
Yesterday:
506