1.
바로 며칠 전에 날개셋 한글 입력기 9.0과 함께 공개된 타자연습 3.7의 경우, 명목상 변화 사항은 (1) 프로그램 명칭 표기의 변경과 (2) 144dpi 24픽셀 글꼴 지원이었다. 프로그램 UI가 전반적으로 적절하게 150% 확대될 뿐만 아니라 이때는 게임도 잘 알다시피 640*480이 아닌 1024*768 해상도에서 실행되게 했다.
이것 말고 프로그램 기능의 변화는 전무하다. 그러니 타자연습 3.7은 입력기에 적용된 변화를 그대로 같이 수용한 것만이 전부가 될 것이라 여겨졌다.
그러나 작업을 마친 후 타자연습을 테스트를 해 보니, 굳이 직전 버전에만 국한되지 않는 여러 잡다한 문제들이 보였다. 그래서 6월 13일 정식 공개 후에도 불가피하게 프로그램을 몇 차례 고쳐서 재업로드를 해야 했다. DirectDraw 구동하는 낡아빠진 코드를 도대체 얼마 만에 재복습을 한 건지 원...;;
과거 Windows 7 이하 시절에는 안 이랬던 것 같은데, Windows 10 기반의 4K~5K 대형 모니터 컴에서 타자 게임을 전체 화면에서 돌려 본 결과, (1) 점수와 HP가 출력되는 화면 아랫부분이 의도했던 흰색이 아니라 그냥 시꺼멓게 칠해지는 문제가 있었다. 창 모드에서는 이상 없음.
이 문제는 뭐 텍스트를 찍고 색칠을 하는 방법을 바꿔서 해결했다.
그리고 이건 좀 심각한 문제인데, (2) 전체 화면으로 게임 진행 중에 Alt+Tab, win 등으로 프로그램 창을 빠져나갔다가 돌아오는 과정에서 가끔 오류가 발생했다. 소실했던 surface를 복원하는 과정에서 문제가 있었던 것 같다. Windows 7 이하에서는 가끔 배경 화면이 다시 그려지지 않던 것이 Windows 10부터는 그냥 씨크하게 곧장 오류와 crash로 이어졌다.
이 문제도 단순 실수로 추정되는 코드 몇 줄을 정리하고 나니 바로 해결되었다.
끝으로, 미처 생각하지 못했던 괴이한 문제가 하나 더 있었다.
기존의 640*480 해상도는 어느 모니터에서나 그럭저럭 화면이 꽉 찬 형태로 실행되었으며, 요즘 같은 와이드 화면에서는 좌우에만 모니터 차원에서 사용되지 않는 검은 사각형 영역이 생겼다.
그러나 1024*768은 그렇지 않더라. SetDisplayMode로 분명히 1024*768을 지정했음에도 불구하고 실제로 비디오 카드 차원에서는 (3) 1280*960 정도로 추정되는 더 큰 화면이 설정된다. 그리고 게임 화면의 오른쪽과 아래에 흰 여백이 불필요하게 생기는 것이었다.
단순히 제어판의 디스플레이 설정에서 1024*768로 맞췄을 때는 이렇지 않고 화면이 꽉 찬 채로 저해상도로 바뀐다. 그런데 DirectDraw를 통해 1024*768로 맞추면 왜 저렇게 되는지, 다른 구형 게임들도 다 저런지 잘 모르겠다.
예전엔 이런 현상을 본 적이 없었는데 최신 운영체제에서 새로 발생하는 문제인 것 같다. 위의 세 이슈 중 (3)만은 이렇다 할 원인과 해결책을 파악하지 못했다.
이런 뜻하지 않은 문제 때문에 타자연습의 작업량이 예상보다 더 많아졌다.
그 밖에 혹시 타자연습을 오래 많이 써 보신 분은 경험적으로 이미 아실지도 모르겠는데..
오타를 낸 뒤 그 뒤의 한글을 조합하다가 그대로 home, ctrl+왼쪽 화살표 등으로 cursor를 급격하게 앞으로 옮기면 앞, 또는 조합 중이던 글자에 대한 오타 처리가 일시적으로 제대로 되지 않는 경우가 있다. 이 문제도 이 기회에 같이 해결했다. 이래저래 한글 입력기뿐만 아니라 타자연습도 나름 의미심장한 버전업을 달성했다.
2.
아래 그림은 날개셋 한글 입력기가 제공하는 옵션들을 모두 사용했을 때 backspace 글쇠가 동작하는 방식을 순서도로 나타낸 것이다. 로직을 이런 식으로 그림으로 표현할 생각을 지금까지 안 하고 지냈는데, 한번 그려 보니 굉장히 그럴싸해 보인다.
요즘이야 순서도는 "코끼리를 냉장고에 넣는 법", "정신승리법"처럼 뭔가 병맛스러운 절차를 기술할 때에나 개그 목적으로 참 안습하게 쓰이는 경우가 많다만.. 이것도 나름 20세기 중반쯤에 국제 표준 규격이 제정되어서 전세계에서 동일하게 통용되는 물건이다. 대표적으로 둥근 사각형은 단말(시작과 끝), 직사각형은 처리, 마름모는 분기.. 이런 식으로 말이다.
재래식 순서도는 한눈에 봐도 참으로 GWBASIC의 GOTO스럽게 생겼다. 그래서 NS 흐름도라고 스파게티 코드 분기를 지양하고, 열고 닫고 갔다가 되돌아오는 거.. 코드로 치면 들여쓰기를 그대로 시각화해서 구조화 프로그래밍의 논리 순서를 더 깔끔하게 그릴 수 있게 한 물건도 있다.
그래도 어느 것이든 튜링 기계로서 계산 능력은 서로 동등하다. 종료 조건이 실행 중에 결정되는 분기가 가능하고, 포인터(메모리 어느 값을 읽고 쓸지를 또 메모리로부터 읽어서 결정할 수 있는..)를 구현할 수 있다면 말이다.
3.
맥용으로 날개셋 한글 입력기가 최소한의 핵심 엔진 엑기스만 포팅해서 만들어진다면..
보조 입력 도구나 방대한 제어판 GUI, 비트맵 글꼴 기반 텍스트 에디터 같은 건 몽땅 제낀다.
시스템 계층과 편집기 계층도 빼고 ist 파일을 불러들여서 '한 입력 항목'의 입력기 계층만 제공하는 간단한 macOS용 한글 IME부터 시작하게 되지 싶다. 범위를 이렇게까지 좁혀도 Windows에 특화돼 있는 미세한 키보드 조작 제어라든가 타이머 같은 건 어떻게 구현할지 아직까지는 답을 모르겠다.
게다가 Windows와 맥(그리고 어쩌면 타 OS도)은 가상 키코드 체계도 서로 완전히 다르다. 기본 입력 스키마의 글쇠배열이야 가상 키코드에 구애받지 않는 절대적인 문자 글쇠만을 인식하니까 상관없지만, 추가적인 글쇠 인식 옵션이나 고급 스키마는 가상 키코드를 직통으로 사용하기 때문에 이런 것들을 어떻게 보정할지 생각을 해야 한다. 장기적으로는 입력 설정 파일의 메타데이터 내지 헤더에 이 가상 키코드의 문맥 정보도 들어가야 할 것으로 보인다.
4.
예전에도 몇 차례 글로 밝힌 적 있지만, 본인은 이 바닥을 판 지 15년이 훌쩍 넘었으며 이 바닥 사정을 그럭저럭 잘 안다.
한글에 대해서, 한국어에 대해서 그리 많은 걸 바라지는 않는다. 비현실적인 환상은 조금씩 내려놓기 시작했다.
미군 철수와 대남적화를 걱정하게 생긴 와중에 한글이 감히 무슨 세계 언어를 받아 적는 문자로 등극하는 걸 바라지는 않는다. 넘사벽급의 돈줄과 연구 인프라, 학술용어와 정보 데이터를 갖추고 있는 국제어 영어의 지위와 인지도를 타 언어가 흔들 수 있을 거라고 생각하지는 않는다.
심지어 미국이 경제· 군사적으로 몰락한다 해도 영어만은 아마 몰락할 일이 없지 싶다. 정작 언어학자· 전공자 전문가들은 민감한 사항이라면서(문화 상대주의? 언어 제국주의?) 이런 언급을 금기시하고 꺼리긴 한다만, 내 개인적으로 생각하기에는 라틴 알파벳과 영어는 여타 언어들에 비해 구조적으로 더 기계 친화적이고, 덜 지저분하고 경쟁력 있고 더 우수한 구석이 있다고 본다.
기왕 우리는 영어를 외국어로서 힘들게 학습해야 하는 처지로 태어났고, 국제어 영어와는 구조가 너무나 다른 군소언어를 쓰는 문화권을 갖게 돼 버렸는데 그럼 이 상태에서 우리가 할 수 있는 게 무엇일까? 결국 어설프게 남을 따라가고 뒤쫓는 연구만 해서는 절대 남을 앞설 수 없다. 안 그래도 시작점도 다르고 투입되는 자금의 규모도 쨉이 안 되는데 무슨 승산을 바라는가? 결국 남과는 완전히 다르고 이 처지에서 우리만이 할 수 있는 솔루션을 만들고 개척해야 한다.
우리는 알파벳처럼 쭈욱 글자를 있는 대로 늘어놓기만 하는 풀어쓰기 문자가 아니라, 어쩌다 보니 낱자 구분과 음절 경계 구분이 있고 모아쓰기를 하는 한글 같은 문자를 쓰게 됐다. 그리고는 그런 특성이 있으니 한글이 참 우수하다고 자랑을 늘어놓는다.
그러면 단순히 모아쓰기를 기계적으로 구현해 주는 한글 오토마타만 만들어 넣는 것으로는 충분치 않다. 그런 경계 구분 계층이 있고 IME라는 소프트웨어가 필요한 걸 괜히 거추장스러운 부담, 오버헤드로만 여겨서는 안 된다. 기왕 그런 게 있다면 이를 이용한 더 창의적이고 편리한 활용을 할 수 있어야 한다. 글쇠배열 연구나 언어 사전 자동 완성 같은 방법론은 타 언어를 기준으로도 동일하게 적용 가능한 것이니 한글의 구조만을 이용한 고유한 improvement가 있어야 한다.
그리고 이 분야에서 진짜 창의적인 기능을 넣으려면 결국 궁극적으로 두벌식이 아닌 세벌식 글자판을 써야 한다. 이미 1950년대에 공 병우 박사라는 희대의 천재가 기계식 타자기를 기준으로 한글 기계화의 큰 물꼬를 터 놨다. 세벌식이 타자기에서는 직관적인 입력과 기계간 글자판 통일을 실현했다면, 컴퓨터에서는 단순 모아쓰기 입력을 넘어서 동시치기와 더 수월한 입력· 수정을 실현할 수 있다.
이것이 날개셋 한글 입력기의 일관된 개발 이념이다. 괜히 한글 갖고 타 언어나 문자에다 오지랖을 부리는 건 내 관심사가 아니고, 그저 우리가 자국어를 입력할 때부터나 make the most out of를 하자는 것이다.
이런 게 있으면 아무리 현실에서 영어가 더 중요하더라도 한국어와 한글이라는 게 존재하는 게 그저 거추장스러운 잉여처럼 느껴지지 않을 수 있고 뭔가 존재의 의의를 찾을 수 있지 않겠는가? 더 나아가 이 좁아터진 나라와 민족 정체성에 대해서도 일말의 자부심이 더 생기지 않을까?
5.
전국민이 개인 전화기 겸 디지털 카메라를 들고 다니는 오늘날로서는 도저히 상상이 안 되겠지만.. 1990년대까지는 증명 사진을 하나 찍으려 해도 사진관에서 일단 사진을 찍은 뒤, 화학 반응을 수반하는 필름 인상(현상)이 끝날 때까지 몇 시간을 기다렸다가 다시 방문해서 사진을 찾아 가야 했다. 무슨 세탁소에 빨래를 맡겼다가 찾아 가듯이 말이다. 그리고 사진관들 출입문과 쇼윈도에는 'xx분 만에 초고속으로 사진 완성' 이런 문구가 적혀 있곤 했다.
그러나 지금은 그런 게 어딨냐..;; 사진관에서도 필름을 구성하는 감광 물질에다 화학 반응을 가해서 상(像)을 만들어 내는 게 아니라, 즉석에서 생성된 전자 디지털 이미지 정보를 그냥 고급 종이에다가 고해상도 컬러 인쇄를 해 줄 뿐이다. 세상이 이렇게 바뀌었다.
소프트웨어 개발을 develop이라고 하지만, 생물학에서 말하는 '발생'도, 사진의 '인화'도 develop이라고 한다. 날개셋 한글 입력기도 세포 분열이 일어나고 사진에 상이 쓰윽 생기듯이 개발 완료에 스르륵 근접하는 중이다. ^_^
Posted by 사무엘