날개셋 한글 입력기 5.65

4개월이 넘는 시간 동안 0.1이 조금 넘는 분량만치 버전이 올라갔습니다. 5.7까지 하기에는 좀 분량이 안 차는 것 같고.. 하지만 이제 5.5x는 확실히 졸업이죠.

고등학생 신분으로 만든 마지막 버전: 1.1 (2000년, 인터넷 미공개)
대학생 학부 신분으로 만든 마지막 버전: 3.41 (2005년)
병특 신분으로 만든 마지막 버전: 4.82 (2008년)
일반 풀타임 직장인 신분으로 만든 마지막 버전: 이번 5.65 되겠습니다. (2010년) 더구나 개발 10주년 기념작이기도 합니다. (☞ 받는 곳 )

리드미 파일을 보면 알 수 있듯이. 이번 5.65의 변화 사항은 다음과 같은 세 분야로 요약됩니다.
아주 의미심장합니다.

※ 날개셋문자의 타입으로 다중 문자와 다중 한글 자모 추가

다중 문자를 쓰면, 유니코드 UTF16 형태로 표현했을 때 최대 6바이트짜리 문자열을 본문에 한꺼번에 집어넣을 수 있습니다.
그래서 '날개셋 고급 입력기'의 사용자 정의 조합 같은 걸 쓰지 않고도 '000' 같은 문자열 정도는 글쇠에 바로 배당할 수 있습니다.
또한 조합용이 아닌 완성된 한글 문자로도 예전에는 현대 한글 하나만 배당 가능했지만 이제는 각 자모가 한 글자씩을 차지하는 옛한글도 배당할 수 있으며, 리가처가 별도로 붙은 복잡한 라틴 문자도 글쇠에 배당할 수 있습니다.

사용자 삽입 이미지

그럼 다중 한글 자모는 무엇일까요?
<날개셋> 한글 입력기는 원래 다중 한글 자모를 지원합니다. ㄱ+ㅏ를 한꺼번에 배당해서 '간', '감', '강' 같은 글자를 세 타가 아닌 두 타만에 입력하게 할 수 있지요.
그런데 그건 같은 글자 안에서만 지원됩니다. 이번 버전에서는 종/초중, 중종/초 같은 글자 경계를 넘어서는 다중 한글 자모를 지원합니다.

그래서 '가'를 입력 도중에 종성과 다음 글자 초성을 동시에 입력해서 '강ㅇ' 같은 글자를 바로 만들 수도 있습니다. (ㅇ은 조합 중인 상태) 가상 낱자와 응용하면 '갇' → '가ㅌ'를 만들 수도 있게 됩니다. 도깨비불 현상을 모음이 아니라 자음으로 만들어 내는 것이죠.
이런 기능이 보편적으로 쓰일 일은 많지 않겠지만 한글 입력기의 기능의 완전성 차원에서 꽤 오래 전부터 계획했던 기능인데 이걸 드디어 구현했습니다. ^^

※ 제어판 UI가 굉장히 많이 개선되었습니다

낱자 처리나 최종 변환 테이블처럼 각종 데이터의 목록이 있는 곳에서 아무 항목도 선택하지 않고 '삭제'를 누르면 해당 데이터를 한꺼번에 지울 수 있게 했습니다. 물론 정말 모두 지울 거냐는 확인 질문도 뜹니다.

또한 중복값을 추가하면 무조건 에러만 나는 게 아니라 값의 대체도 가능하게 했습니다. 가령, ㄱ+ㄱ→ㄲ이라는 규칙이 있는데 ㄱ+ㄱ→ㄴ을 또 추가하면 무조건 에러가 나고 퇴짜만 맞는 게 아니라, ㄲ을 ㄴ으로 고칠 거냐는 질문이 나오게 됐고요.

리스트를 Ctrl+클릭하면 ㄱ+ㄱ→ㅋ, ㅋ+ㄱ→ㄲ, ㄲ+ㄱ→ㄱ처럼 순환식 결합 규칙이 있는 경우 이 순환을 자동으로 한꺼번에 selection으로 만드는 기능도 추가했습니다.
낱자 선택 컨트롤의 경우, F3을 누르면 낱자를 무조건 사전 순으로만 출력하는 게 아니라 코드와 등급 순으로도 정렬이 되게 했습니다. 이렇게 하면 현대 한글만 맨 앞에 우선적으로 먼저 나열되기 때문에, 옛한글을 사용하지 않고 현대 한글만으로 입력 환경을 구성할 때 매우 편리합니다. 이것도 진작에 구현됐어야 할 기능이죠.

사용자 삽입 이미지

※ 각종 버그 수정

제어판 UI가 미세하게 오동작하거나 심지어 프로그램이 죽을 수 있던 문제를 여럿 발견하여 해결했습니다.
<날개셋> 편집기는 찾기 대화상자 꺼내다가 프로그램이 random하게 죽던 문제를 드디어 완전히 해결했습니다.
윈도우 XP(비스타/7 말고) + 아래아한글 2010에서 외부 모듈을 사용하다가 프로그램을 종료하면, 프로그램이 그냥 종료되지 않고 외부 모듈에서 에러가 나던 문제도 물론 해결됐고요. 아래아한글 2010이 출시된 지가 언제인데 새 버전 공개가 좀 늦은 감이 있군요.

유용하게 사용하시기 바랍니다.
다음 버전은 5.x대의 마지막 버전.. 즉 6.0 직전 버전 컨셉으로,
내부 API를 상당수 재정비하고(breaking change 잔뜩) 프로그램의 보안과 안정성을 강화하는 쪽으로 리팩토링 할 예정입니다.
가령, 아무 생각 없이 문자열을 넘겨주던 함수에다가 버퍼의 크기도 명시해 주는 식으로.
또한, 입력 설정 데이터에 오류가 있더라도 프로그램이 뻗지 않게(fuzz testing)..;;

조금만 있으면 <날개셋> 한글 입력기 커널인 ngs3.dll이 600KB를 돌파하고,
모든 모듈의 소스 코드 총합이 6만 줄을 돌파합니다.
물론 저의 코딩 스타일을 잘 아는 분이라면, <날개셋> 한글 입력기의 실질적인 소스 코드 수는 이미 10~15만 줄일 거라고 예상하기도 합니다. ㅋㅋㅋ

Posted by 사무엘

2010/08/18 23:25 2010/08/18 23:25
Response
No Trackback , 3 Comments
RSS :
http://moogi.new21.org/tc/rss/response/351

날개셋 타자연습의 청사진

요즘 게임의 대세는 온라인이다. 네트웍 기능은 필수이다.
그에 따라 <날개셋> 타자연습도 아래 세 가지 모드가 모두 가능해야 한다.

1. 지금처럼 컴퓨터하고만 타자를 측정하고 실력을 겨루는 기존 싱글 모드. 계정 정보는 당연히 내 로컬 컴퓨터에..
2. 계정 정보는 여전히 내 로컬에 있고, 그냥 단거리 네트웍으로 상대방과 겨루기. 스타로 치면 UDP Multiplayer
3. 스타로 치면 배틀넷 급의 중앙 서버에 로그인하는 완전 온라인 방식

게임의 경우, 싱글플레이는 정교한 게임 스토리와 주인공 대화까지 나오는 캠페인이 제공되며 타자 왕초보를 위한 올바른 타자 습관 및 세벌식 홍보 튜토리얼도 있다.
그리고 멀티플레이는 스타 캠페인 에디터처럼 정교한 게임 customization이 가능하다.
두 명이서 협력해서 컴퓨터가 만들어 내는 바이러스들에 대항한다거나, 아니면 서로 따로 게임을 하면서 타자가 빠른 사람이 상대방을 방해도 할 수 있는 전투 테트리스 같은 구도로 게임을 할 수도 있고.. 뭐 가능성은 무한하다.
물론 단순히 2를 넘어 3까지 구현하려면 서버를 구비해야 하고 서버 프로그램까지 별도 개발이 필요하다. 본인의 능력을 벗어나는 범위가 된다.

또한 게임은 3차원은 필수! 그래픽이 윈도우 비스타가 기본 제공하는 게임이나 화면 보호기 수준은 돼야 한다. 떨어지는 글자들은 3차원 메쉬이며 금속 재질이다. 터질 때의 각종 파티클 이펙트도 화려하고 각종 특수효과 바이러스가 작동할 때도 이펙트가 나와야 한다. 날쌘/진격 바이러스일 때는 카메라 노출 시간이 길어진 듯한 이펙트.. 숨바꼭질 바이러스는 클록킹 유닛처럼 진짜 쏙 숨어서 배경을 입체적으로 왜곡하는 이펙트. 이런 식으로 말이다.

전통적인 타자방의 경우, 단문 문장이 하나 주어지면 사람들이 다들 재빨리 타이핑을 해서 순위를 내는 구조이다. 하지만 단순히 대화방 내부에서 봇 형태로 동작하는 타자방이 아니라 전문적인 타자 연습 프로그램이라면, 장문 검정도 온라인으로 얼마든지 실시할 수 있다.
지금 n타의 속도를 기계적으로 흉내 내기만 하는 '경쟁 모드'를 진짜 사람인 상대방의 타자 상황으로 나타내어 주고, 게이지가 단순히 늘기만 하는 게 아니라 줄어들기도 한다면(오타를 지울 때) 얼마나 흥미진진하겠는가!

진짜 사람과 겨루는 '경쟁 모드'는 꼭 구현해 보고 싶은 것이었다. 3차원 그래픽이 필요한 것도 아니고 어려운 것도 아니고...

타자 연습 프로그램이 인터넷과 연결되면 연습글이 그야말로 무궁무진해진다.
내가 좋아하는 분야의 최신 연습글을 서버로부터 실시간으로 다운로드할 수 있고, 연습글에 발견된 오타에 대한 패치도 실시간으로 진행 가능해진다. 뭐 귀여니처럼 온라인으로 문학 활동을 하는 작가라면 연습글 다운로드 서비스로 뭔가 수익 모델도 만들 수 있지 않을까?
개인 계정 정보에는 내가 과거에 다운로드하고 실제로 타자 연습을 해 본 연습글들 기록이 남는다.

본인의 지인 중에도 자기가 직접 프로그래밍 공부까지 하면서 타자 게임 사이트를 꼭 만들고 싶어하는 친구가 있다. 하지만 본인은 이제 저런 걸 도저히 혼자 힘으로 다 공부해서 만들 수 없다.
본인보다 유행과 디자인 감각에 뛰어나고 게임 제작이나 기획에 소질이 있는 사람이 뭔가 좋은 작품을 만들어 줬으면 좋겠다. 한컴이나 NHN 같은 곳 지원이라도 받아서..;;

그런 걸 만드는 데 도움이 된다면 <날개셋> 타자연습 소스 정도는 인계할 의사가 있다. 비록 입력기 소스는 공개 안 하지만 말이다.

Posted by 사무엘

2010/08/03 08:49 2010/08/03 08:49
, ,
Response
No Trackback , 11 Comments
RSS :
http://moogi.new21.org/tc/rss/response/337

1. IE-only 사이트들

세상엔 아직도 크롬/파폭 같은 비 IE 브라우저에서는 웹사이트 레이아웃이 깨진다거나, 특히 플래시 메뉴 같은 걸 클릭해도 반응이 없는 안습한 웹사이트가 적지 않다.
사실은 플래시가 아닌 메뉴 중에도 비 IE에서는 동작하지 않는 게 있다.
이런 건 주로 무슨 표준을 안 지키고 뭘 잘못 만들어서 그런 건지 개인적으로 굉장히 궁금하다.
ActiveX 같은 걸 쓴 것도 아니고 순전히 자바스크립트 같은 다른 계층의 문제일 것이다. 네이티브 코드를 실행 안 하면 절대 안 되는 상황도 아니며, 코드를 약간만 수정해 주면 의외로 금방 문제를 해결할 수도 있어 보이는데 그저 안타까울 뿐이다.

2. 이런 메뉴 디자인은 최악

그리고 이건 브라우저 호환성 문제는 아니고 웹 디자인과 관련된 다른 얘기.
마우스로 어떤 메뉴를 가리키고 있으면 하부 메뉴가 아래에 뜨고, 그 하부 메뉴를 클릭했을 때 다른 웹페이지가 뜨는 구조인 플래시 메뉴를 생각해 보자. 우리에게 아주 익숙하다. 그런데, 하부 메뉴가 세로가 아니라 주 메뉴와 같은 형태인 가로로 길쭉하게 나타나는 사이트가 많다. 가령,

[ 회사소개 ] | 제품소개 | 커뮤니티 | 사이트맵
회사는  / CEO 소개 / CI 소개 / 조직 구성 / 찾아오시는 길

같은 식.
그런데 굉장히 불편할 때가 언제냐 하면,
마우스 포인터가 { 회사는 ... 찾아오시는 길 } 이라는 하부 메뉴 영역의 위나 아래로 조금만 벗어나도 그 하부 메뉴가 싹 사라져 버릴 때 말이다. -_-++++++;;;

자, [회사소개]를 가리켰다가 저 끝의 [찾아오시는 길]을 선택하는 게 아주 고역이 아닐 수 없다. 차라리 세로로 길쭉해서 하부 메뉴가 가로와 세로로 모두 충분히 공간이 있다면 모를까 저건 좀...;;;
[조직 구성]까지 갔다가 실수로 마우스 포인터를 아래로 옮기면 하부 메뉴가 사라져 버리고, 그럼 다시 [회사소개]를 가리키러 마우스 포인터를 옮기는 삽질을 해야 한다.
그런 메뉴는 좀 하루빨리 시정됐으면 좋겠다.

3. ActiveX

인터넷 세계에서 평생까임권을 획득한 존재이다. 물론 ActiveX의 존재라든가 취지 자체가 악의 축이라고 몰아붙이는 건 좀 억울한 면, 오해가 있는 면도 있다.
2000년대 초까지만 해도 인터넷 상으로 동영상 하나 보려고 해도, 아니면 게시판용 위지윅 HTML 에디터를 좀 붙이려고 해도 온갖 듣보잡 ActiveX 없이는 안 됐었다.
동영상이야 플래시가 2005년쯤부터 완전히 접수해서 여타 플레이어들을 발라 버린 덕분에 게임이 끝났다. 사실은 플래시 자체도 ActiveX이지만 이 녀석은 쓰임이 워낙 범용적이고 전세계 PC에 널리 퍼진지라 예외로 인정되는 인터넷 필수 구성 요소가 되었을 뿐이다.

그 반면 HTML 에디터는 무척 놀랍다. 블로그의 등장과 이것 때문에 평범한 양민이 HTML 코딩으로 홈페이지 만들 일이 완전히 없어졌으며, 덕분에 로컬 환경에서 네이티브로 동작하는 웹에디터는 떡실신하고 만 것이다. 간단한 HTML 위지윅 에디터는 심지어 비주얼 스튜디오 같은 개발툴조차 내장하고 있다. 그러니 기존 웹에디터는 아예 웹사이트 관리자 아니면 HTML 기반 도움말 저작도구로 더 전문적으로 변모하지 않으면 안 되게 구도가 바뀌었다.
요즘은 게시판 하나 만들려고 해도 HTML 에디터는 필수이다. 그런 점에서 그냥 plain text 입력 폼만 덩그러니 뜨는 제로보드 4는 엄청 캐안습 구닥다리이다.

웹에서 돌아가는 위지윅 HTML 에디터가 정착해 가던 과도기에는 이랬다. 그나마 조금 배려를 했다는 사이트는 IE에서는 full feature 위지윅 에디터가 뜨고, 여타 브라우저에서는 그냥 plain text만 입력할 수 있는 에디터가 떴었다. 본인의 주 메일 계정인 드림위즈의 이메일 작성 UI가 한 2, 3년 전까진 딱 그랬었다. plain text only -> IE만 위지윅 에디터 -> 다 위지윅 에디터의 식으로 발전하여 요즘은 어디서나 위지윅 에디터 제공.

요즘은 저렇게 동영상에, 위지윅 에디터에, 어지간한 암호화까지 웹 표준이 커버하는 분야가 크게 늘어난 덕분에 웹 상으로 굳이 네이티브 코드를 소환할 일은 점점 줄어들고 있다. 인터넷 상으로 내 컴퓨터 시스템 정보를 표시해 준다거나, 진짜로 키보드 드라이버 차원의 보안을 구현한다거나, 설치되어 있는 소프트웨어 정보를 레지스트리 정보를 통해 파악한다거나.. 그 정도가 아니라면 말이다.

2000년에 처음 개발된 <날개셋> 한글 입력기 1.x는 무려 ActiveX로 만들어졌었다! -_-;;;
아직 정식 인스톨러 패키지도 없던 시절에 도스창에서 regsvr32 해 주고 <날개셋> 편집기를 구동해서 세벌식 모아치기를 쓰던 시절을 기억하거나 겪어 본 분이 독자 중에 얼마나 있을까? ㅋㅋㅋㅋ
그때 본인은 <날개셋> 자체 에디트 컨트롤을 ActiveX로 만들면 비주얼 베이직이나 심지어 웹브라우저에서도 그대로 연동 가능하다고 해서 그냥 시범삼아 그 테크닉을 써 본 것이다. 그때는 아직 인터넷 상으로 ActiveX 컨트롤 자체를 보기 힘들었고 그게 지금처럼 악의 축으로 문제되기도 전이었다. 오픈웹 운동 나부랭이 따위도 없었다. 그랬는데... 세월 참 많이도 흘렀다.
그러다 2.0부터는 그냥 일반 윈도우 컨트롤로 바뀜.

4. 운영체제 재설치

본인은 가상 머신이 아닌 실제로 사용하는 개인용 컴퓨터의 운영체제를 마지막으로 재설치한 건... 무려 2007년 초쯤이다. 3년이 넘게 윈도우 설치 화면을 볼 일이 없이 지냈으며 앞으로도 당분간 볼 일이 없을 것이다. 본인 노트북은 꽤 오래 전부터 CD롬 드라이브가 고장났으나, 이것도 쓸 일이 없으니 고칠 일도 없었다. 요즘 컴퓨터는 아예 USB 메모리로도 부팅 가능하다고 하는데, 아무리 그래도 그렇지 부팅이 가능하려면 파일 시스템 차원에서 프로그램 파일이 아주 특수하게 기록되어 있어야 하지 않나? 어떻게 그게 가능한지 궁금하다.

마지막으로 윈도우를 재설치하던 3년 반 전에는 XP를 쓰고 있었는데, 그때는 운영체제가 확실하게 맛이 가 있었다. 딱히 악성 코드나 바이러스에 걸린 것도 아니었는데 언제부턴가 제어판의 일부 구성 요소가 제대로 안 나오고, 뭔가 전반적인 성능이 떨어진 느낌이 들고.. 내가 아무리 컴퓨터 유지 보수를 귀찮아하는 게으른 타입이라 해도 이건 인간적으로 OS를 정말 재설치해야 한다는 신호라는 느낌이 팍팍 들었다. 그래서 하드를 포맷해 버렸다.

하지만 점점 운영체제의 자가 관리 능력이 향상되면서 하드를 포맷하고 운영체제를 재설치해야 할 일은 줄어들고 있다는 느낌이 든다. 아직 비스타를 3년이 넘게 써 보지는 못했으나, 굉장히 안정적이라는 건 느낀다.
다만, 각종 업데이트와 패치를 설치하면서 디스크 용량이 줄어드는 건 어쩔 수 없는 듯.
윈도우를 새로 설치하면 그때까지 누적되어 있던 온갖 업데이트, 서비스 팩들도 다 원점으로 돌아가니 안습이다. 업데이트 내역만 쉽게 export/import하는 방법이 있었으면 좋겠다.

Posted by 사무엘

2010/07/27 08:37 2010/07/27 08:37
, , , , ,
Response
No Trackback , 9 Comments
RSS :
http://moogi.new21.org/tc/rss/response/331

다음 버전 개발 상황

1. 편집기: 찾기/바꾸기 대화상자를 꺼내는 중에 가끔씩 프로그램이 죽던 문제
아래와 같이 조치를 취한 후로 이것 때문에 프로그램이 문제를 일으킨 적은 그때로부터 약 40일 동안 전혀 없었습니다. 버그가 해결된 것으로 보입니다. 속이 다 후련하네요.

2. 외부 모듈: 이클립스에서 창을 띄울 때 글자판이 자꾸 0번으로 돌아가던 버그를 고쳤습니다. (메일을 통해 받은 버그 신고)

3. 외부 모듈: 아래아한글 2010을 종료할 때 에러가 나던 문제를 해결했습니다. (메일을 통해 받은 버그 신고)

의미 있는 버그 신고로 <날개셋> 한글 입력기의 안정성 향상에 기여해 주신 분께 감사합니다.
다음 버전은 5.54는 아니고요. 최소한 5.6이나 아니면 5.7로 갈 예정입니다.
생각하고 있는 기능 추가도 듬뿍 해서 올해 8월 정도쯤에 릴리즈 계획을 잡고 있습니다.

다만, 윈도우 7에서
아주 랜덤하게.. 며칠에 한 번꼴 빈도로..
<날개셋> 한글 입력기의 외부 모듈에서 한자 변환을 시도하면 프로그램이 아무 말도 없이 꺼지는 것 때문에 미치겠다는 문의가 있는데 저는 그에 대해서 전혀 알 길이 없습니다.
그쪽에서도 언제나 정확하게 재연은 안 되는 문제라고 하고, 저 그런 현상은 전혀 경험한 적이 없고..

비슷한 현상을 경험하거나 문제 재연과 관련된 단서가 있으신 분의 제보를 기다립니다.

Posted by 사무엘

2010/06/01 09:08 2010/06/01 09:08
Response
No Trackback , 2 Comments
RSS :
http://moogi.new21.org/tc/rss/response/281

<날개셋> 편집기를 오래 써 온 분들은 아마 아실 겁니다. 찾기/바꾸기 대화상자에 아주 교묘한 버그가 있습니다.
글을 쓰다가 Ctrl+F 또는 Ctrl+H로 이 대화상자를 한 수십 번 꺼내다 보면
정말 가끔, 아주 random한 확률로 엉뚱하게 explorer.exe가 죽거나, 편집기 프로그램이 죽거나 응답 불능 상태에 빠집니다. 윈도우 XP부터 비스타에서 모두 이런 증상이 나타나는 걸 확인했습니다. 에러 대화상자를 살펴보면 comctl32.dll이 뻗었다고 나옵니다.

이건 저도 원인을 알 수 없고 참 괴이하기 그지없는 버그입니다.
딱 원하는 때에 맞춰 재연은 절대로 할 수 없지만, 그래도 어디서나 언젠가는 100% 반드시 나타난다고 보장할 수 있는 현상이었지요.
발생 조건에 관한 한 최악의 버그입니다. 저는 무려 <날개셋> 3.x 시절부터 이것에 대해 알고 있었지만 디버깅할 엄두를 못 내고 있었습니다.

찾기/바꾸기 대화상자가 <날개셋> 편집기의 여느 대화상자들과 다른 점은 '탭 컨트롤'을 써서 찾기와 바꾸기 기능을 구분하고 있다는 점입니다. 혹시 이게 문제인가 싶어서 이번 기회에 아예 대화상자의 디자인을 바꿔 버렸습니다. 물론 5.53에는 아직 이게 적용이 안 돼 있고요.
5.53 이후로 다음 버전이 언제 나오게 될지 모르겠지만, 이렇게 하니까 이제는 저 문제가 없어졌는지 최소 몇 달간 살펴볼 예정입니다.

Posted by 사무엘

2010/04/19 07:35 2010/04/19 07:35
Response
No Trackback , a comment
RSS :
http://moogi.new21.org/tc/rss/response/249

날개셋 한글 입력기 5.53

약 80여 일만의 따끈한 업데이트입니다.
기능 추가는 없으며, 사실상 버그 수정 위주입니다.
더 넣을 기능이 없어서 기능 추가가 없는 건 아닌데..
5.5x대 버전을 졸업하기가 예상보다 참 힘들군요.

변화 사항 확인 & 받기: http://moogi.new21.org/prg4.html

Posted by 사무엘

2010/04/09 07:47 2010/04/09 07:47
Response
No Trackback , 3 Comments
RSS :
http://moogi.new21.org/tc/rss/response/238

스타크래프트 2 테스트 결과

스타크래프트 2의 대기실(로비)의 각종 입력란에서 <날개셋> 한글 입력기 외부 모듈로 한글이 전혀 입력되지 않는 현상을 자세히 테스트한 결과,
이건 99% 스타크래프트 문제이며 <날개셋> 문제가 아님을 알려 드립니다.

똑같이 멀쩡하게 한글을 조합해서 결과를 메시지로 날려주고 있는데, 이건 해당 프로그램이 오로지 MS IME의 입력만 받아들이고 나머지는 "고의로" 무시하는 것으로밖에 보이지 않습니다.
새나루라든가 심지어 같은 MS IME 중에서도 다른 것 --가령 오피스 2007 IME 말고 운영체제의 기본-- 을 시도해 봐도 안 되긴 마찬가지이더군요.

이런 프로그램은 처음 봤습니다. 표준 API만 써서는 이런 동작 방식은 만들고 싶어도 못 만드는데, 무슨 보안상의 이유로나 다른 사연이 있어서 IME를 가려가면서 입력을 받는 거라는 결론을 내렸습니다.
따라서 스타크래프트 2 문제는 해결책이 없다는 것이 <날개셋> 한글 입력기 개발자의 공식 입장입니다. 이 달 안에 <날개셋> 새 버전 5.53 내지 5.6 정도를 공개할까 생각 중입니다. 시간이 흐를수록 대규모 코딩은 어려워지고 있군요.

덧,

1. 지금까지 이 정도로 IME를 가려가며 괴이한 동작을 보이는 프로그램으로는 웹브라우저인 오페라 9.6x가 있었습니다. 이것도 그렇게 만드는 게 더 어려울 텐데-_-, 프로그램을 도대체 어떻게 짜야 그런 식의 오동작을 일으킬 수 있는지 IME 개발자인 제가 더 궁금할 따름입니다.
다행히 오페라 10부터는 문제가 해결되었다고들 하고(저는 확인 못 했음), 어차피 그 버그는 윈도우 XP에서만 나타나고 비스타부터는 해당 사항이 없는 녀석이어서 이 이슈는 곧 묻혔습니다.

2. 스타 2.. 재미있어 보이더군요. 완전히 온라인 게임 위주로 바뀐 것, 게임 화면이 3D화한 게 무척 인상적입니다. 스타크 유닛의 대사가 구수한 한국어인 것도 적응 안 됨...;;
참고로 게임 중 채팅은 이상 없습니다. 스타크2 문제는 로그인 직후 대기실에서만 나타나는 현상입니다.

3. 이번 실험 결과는 "출장"을 가서 알아낸 것입니다. <날개셋> 외부 모듈이 제일 불안정하던 3.X 시절에 카이스트 후배 컴에서 테스트를 한 적이 있었고, 제게 개인적으로 64비트 컴이 없던 상태에서 64비트 개발(포팅?)을 처음으로 할 때도 다른 사람 도움을 좀 받았었습니다. 이외에도 아주 기상천외한 상황에서 발생하는 문제를 확인하러 출장을 간 적이 있었는데 그때마다 소정의 성과가 있었습니다.

Posted by 사무엘

2010/04/03 21:49 2010/04/03 21:49
,
Response
No Trackback , 7 Comments
RSS :
http://moogi.new21.org/tc/rss/response/232

내가 옛날에 만든 프로그램들

1. PentaCombat (마지막 빌드 2000): 2000년대 이후로 개발이 중단됐다. (그 당시 이 프로젝트 이후 곧장 <날개셋> 한글 입력기 개발로..) 나름 3*3과 4*4 판단 알고리즘을 굉장히 정교하게 구현해 냈고 오목은 AI 연구용으로도 굉장히 재미있는 주제라고 생각했는데, 더 개발을 못 하게 된 게 무척 아쉽다. 지금 공개되어 있는 컴파일 EXE, DLL은 무려 비주얼 C++ 4.2로 빌드되었으며, 날짜도 1999년~2000년대이다. ㅎㄷㄷ

2. WordTech (마지막 빌드 2007): 이것도 굉장한 애착을 갖고 있는 프로그램이다. 국내에서 스크래블/업워드 크로스워드 게임을 자체 개발한 사례는 이 프로그램이 유일하기 때문이다. 그것도 컴퓨터 AI에다 네트워크 기능까지 말이다.
지금은 10년 전보다 더 효율적인 단어 목록 자료구조와 더 빠르고 똑똑한 AI 알고리즘을 만들 수도 있다. 그리고 네트워크 쪽도 구닥다리 DirectPlay 대신 저수준 네트웍 API로 새로 짤 필요도 있다. 하지만 본인은 이제 이걸 도저히 손댈 수 없는 처지가 됐다.

3. <날개셋> 타자연습 (마지막 빌드 2009): 더 무슨 말이 필요하리요? 게임은 좀 3D로 고쳐야 하고 각종 바이러스들의 비주얼 효과도 더욱 현란하게 고쳐야 한다. 윈도우 비스타부터는 운영체제의 기본 내장 게임조차 Direct3D를 쓰는 세상이 되지 않았던가.
그리고 네트워크 기능을 적극 도입하여 온라인 타자방, 실시간 연습글 업데이트 같은 기능도 넣어야 한다.
하지만 타자연습도 작년 말 3.21을 끝으로, 더는 내가 더 손을 볼 수 없는 사실상 개발 중단 상태가 되지 않을까 싶다. (지원 중단이라는 뜻은 아님. 여건상 새로운 기능을 추가하지는 못하지만, 버그 패치나 보안 업데이트 정도만. ㅎ)

4. <날개셋> 한글 입력기: 그나마 지금까지 독자적인 아이템으로, 10년간 가장 열정적으로 기능 연구와 개선을 해 온 프로그램. 엔진 쪽도 사실 최하 6.0까지는 더 만들고 싶지만 현실은 5.7, 혹은 5.53에서 끝날지도 모르겠다. 엔진 차원에서 더 고차원적인 개념을 생각하자면 끝도 없지만, 일반 사용자의 관점에서는 지금 엔진만으로도 기능은 이미 너무 많아서 미처 다 활용도 못 할 수준이리라.
지금의 5.5x대 엔진을 바탕으로 아무래도 여타 운영체제 포팅을 할 가능성부터 먼저 찾는 걸로 계획을 수정해야 할 것 같다. 그것부터 된 후에 여건이 남으면 엔진 작업도 더 할 것이다.

본인에게는 <날개셋> 한글 입력기만큼이나, 한글과 관련된 또 완전히 다른 솔루션을 연구하고 싶은 게 있다. 시기가 시기이니만큼 이 카드도 슬슬 꺼내 봐야 할 것 같다. 그러니 언제까지나 기존 아이템의 유지 보수에만 매달려 있을 수가 없다. 지저분한 윈도우 IME 쪽 버그 살펴보는 것도 한계가 있다.

이런 식으로 사람은 점점 발전하는 것 같다.
역시 어렸을 때, 실패에 대한 위험 부담 내지 사회적 책임이 적을 때 하고 싶은 일을 실컷 해 놔야 한다. 게임으로 허비하기엔 인생은 너무나 아깝다.

고등학교 3학년 때 과감하게 <날개셋> 한글 입력기 1.0을 만들었기 때문에 10년 뒤에 이것이 5.5까지 버전이 오를 수 있었다.
그리고 그 전에 허접하게나마 저 두 보드 게임을 만들었기 때문에 그 기술과 경험을 근거로 이듬해에 <날개셋> 한글 입력기 1.0이 만들어질 수 있었다.

저 프로젝트들 생각만 하면 그나마 프로그래머다운 기질이 팍팍 살아나는 걸 느낀다. 하지만 나는 순수 공돌이나 전산학도는 아니기에, 내 경쟁력을 위해서는 아무 프로그램이나 짜서는 안 되고, 컴퓨터를 수단으로 삼아 다른 특정 분야에서 활로를 찾아야겠다.

Posted by 사무엘

2010/02/26 09:05 2010/02/26 09:05
, , , ,
Response
No Trackback , 5 Comments
RSS :
http://moogi.new21.org/tc/rss/response/198

※ 2.0x

조합형 아스키 파일을 불러와서 편집하는 입력기 기술 데모 수준에 불과하던 1.x 에디팅 엔진이 2.0에 와서는 비약적으로 향상됐다. 서로 다른 입력 설정을 가질 수 있는 입력 항목을 4개까지 가질 수 있고 간단하게나마 플러그 인 확장도 가능해졌다.
편집기는 이제 자동 줄바꿈과 탭 문자가 지원되고 옛한글도 쓸 수 있게 되었다. 유니코드에 대한 지식이 부족해서 당시 아직도 널리 쓰이던 한/글 97의 내부 코드를 사용했던 게 무척 이색적임. 이게 무려 2002년의 일이다.

※ 2.3x

2.0 엔진을 기반으로 해서 편집기에 굉장히 많은 편의 기능이 추가되었다. 예를 들어, 중복 실행 방지라든가 전체 화면 같은 옵션은 이 버전대에서 처음으로 추가되어 오늘날에 이르고 있다.

※ 2.5

2.4와 기능면에서는 큰 차이가 없으나 드디어 개발툴이 비주얼 C++ 2003으로 업그레이드되어 향후 6년간 이 툴이 쓰이기 시작했다. 그리고 이 때부터 MSI 패키지 방식으로 프로그램이 배포되기 시작했고, 이 버전에서 정말 허접하게나마 TSF 모듈이 시범적으로 도입됐다.

※ 3.0 ~ 3.02

<날개셋> 개발 역사상 버전업 gap이 가장 길었던 3.0은 더 말이 필요 없다. API가 밑바닥부터 완전히 revamp되었다.
입력 기본 문자가 64비트 크기로 확장되고 100% 유니코드 기반 설계, 오토마타와 글쇠배열에 수식 지원, 임의의 개수의 입력 아이템 등록, 입력 스키마와 문자 생성기 계층의 분리, 첫가끝 방식 옛한글 표현 등 지금 <날개셋> 한글 입력기의 근간을 상당수 이때 이뤄냈다.
물론 엔진 교체에만 치중하느라 2.x에 있던 기능이 다운그레이드된 것도 그때는 있었다.

3.01은 3.0의 여러 치명적인 버그 수정 중심이었다.
엔진뿐만 아니라 외부 모듈 쪽 연구도 꾸준히 이뤄진 덕분에 3.02 때는 드디어 <날개셋> 한글 입력기가 역사상 처음으로 정식 외부 모듈(윈도우 IME)로 개발되는 쾌거를 이뤘다. 전용 에디터인 편집기 말고도 또 하나의 프런트 엔드가 추가된 것이다.

※ 3.1

상당히 개발 기간이 길었다. 외부 모듈을 처음 만들면서 부딪혔던 지옥 같은 온갖 버그들의 해결에 초점을 맞췄다. 그 후로도 3.x, 심지어 4.x 초반때까지도, 너무 투박하던 3.0x의 UI 편의성 강화 내지 다운그레이드 요인 해소 같은 개선 작업은 계속됐다.

※ 3.41

기념비적인 작품이다.
지금과 같은 tree 형태의 <날개셋> 제어판 UI가 이 때 정착했다. (3.0 UI는 지금보다 훨씬 더 불편했음)
그리고 한 바이너리로 유니코드도 지원하고 윈도우 9x에서도 실행 가능한 기술이 자체 개발되어 이 버전 때부터 적용됐고, MFC 라이브러리에 대한 종속성도 이때부터 완전히 사라졌다. 이 외에도 추가된 기능들 엄청 많다.
원래 3.4가 나왔으나, 치명적인 버그들 때문에 약 3주만에 역사 속으로 묻혔다. -_-

※ 3.9

3.5와 3.65는 여전히 외부 모듈 버그 해결 위주였고..
3.9에 와서 한글 입력 엔진이 장족의 발전을 이뤘다. 특수 도깨비불과 결합 축약 규칙이 도입되어 휴대전화 같은 굉장히 특이한 한글 입력 방식을 기술하는 기반이 마련되고, 한글뿐만 아니라 임의의 문자를 조합 상태로 입력할 수 있는 "날개셋 고급 입력기"라는 문자 생성기도 추가되었다.
아울러 XML 방식으로 입력 설정 파일을 읽고 쓰는 기능이 최초로 도입된 것도 이 버전부터이다.

※ 4.2

외부 모듈 쪽 버그를 잡은 것도 많지만, 편집기에 세로쓰기가 가능해지고(비록 기괴해 보이지만 -_-) undo/redo 기능이 지금과 같은 수준으로 쓸 만해진 게 이 버전부터이다.
사실 4.x은 3.x 엔진을 기반으로 해서 끊임없이 기능이 추가되고 외부 모듈이 안정화되던 단계였지 옛날 같은 급격한 변화는 없었다.

※ 4.4

윈도우 비스타와 MS 오피스 2007 같은 거물급 소프트웨어가 연달아 출시된 지 얼마 안 된 2007년 초에 나왔다. 이 버전은 에디팅 엔진부터 시작해서 외부 모듈 등 다방면에 걸쳐 굉장히 많은 기능이 추가되고 강화되었다. 윈도우 비스타 환경에 특화된 업데이트가 적용되었음도 물론이다.

개인적으로 무척 의미 심장한 버전이었다고 생각하는데, 놀라운 건 4.4는 4.2가 나온 지 불과 90일이 채 안 되는 짧은 기간만에 완성되었다는 것이다. 게다가 그 기간 동안 세벌식 파워업도 먼저 업데이트하고, 타자연습도 적지 않게 기능이 더해지고 고쳐졌다. 10년에 가까운 <날개셋> 한글 입력기 개발 역사상, 거의 전무후무한 사건이 아닌가 싶다.
어떻게 이 일이 가능했을까? 당시 근무 중이던 병특 회사가 망해 가면서 사실상 조업 중단 상태였고, 덕분에 개인 시간이 굉장히 많았던 덕분이었다. =_=;;

※ 4.55

지금과 같은 언어 리소스 파일이 확실하게 독립한 게 이 버전부터이다. 영어 말고 여타 언어 UI도 이제 이론적으로는 얼마든지 추가가 가능해졌는데, 그런 거 할 인력이 없으니.. -_-;;
이 시기에 정 재민 님의 노력 덕분에 같이 제공되는 비트맵 글꼴의 양과 품질도 굉장히 향상되었다.

※ 4.8x

짠.. 시대의 요구에 부합하여 이때 드디어 64비트 에디션이 나오기 시작했다.
그리고 이때, 프로그램 디렉터리 구조도 윈도우 비스타 기준대로 더욱 깔끔하게 바뀌었다.
4.81에 와서야 드디어 수식에 상수 명칭이 도입되었다.

※ 5.0

비록 기능상의 큰 변화는 없지만 한글 표현 범위가 유니코드 5.2에 맞춰서 확장됐으니, 5.0이라는 번호에 걸맞은 매우 의미심장한 변화라 할 수 있다. 또한 3~4대 버전에서 사용되어 온 비표준 한글 표현 관행도 완전히 없어졌다.
3~4대 버전에서 그대로 쓰이던 입력 설정 파일 포맷이 이 버전에서부터 바뀌었다. 그 대신, 한글 코드 변환과 옛날 방식 설정 파일의 변환만을 전문으로 하는 별도의 유틸리티가 추가됐다.

※ 5.3

나이를 먹고 사회적 위치가 바뀌면서 본인은 점차 시간의 압박에 시달리고 있다. <날개셋> 개발 주기도 갈수록 길어지는 게 눈에 띈다. 하지만 5.3은 5.0 이후 꽤 긴 시간만에 완성된 만큼 알찬 변화가 많으며, 보기 좋은 작품이다.
편집기는 8*4*4 도깨비 한글 글꼴뿐만 아니라 임의의 조합 테이블을 내장한 자체 글꼴을 지원하기 시작해, 옛한글 자모까지 포함하여 더욱 다양한 한글 글꼴을 사용할 수 있게 되었다.
이것 말고도 5.3에서의 가장 큰 변화는 "입력 패드"라는 제 3의 프런트 엔드의 추가이다. 편집기처럼 실행해서 외부 모듈처럼 다른 프로그램에다 글자 입력을 보내 주는 이 도구는 포인팅 장비로 입력 UI를 클릭하여 문자 입력이 가능하다. 예전에 존재하던 화면 키보드도 이런 입력 UI 중의 하나로 위상이 바뀌고, 동일한 UI를 세 개의 프런트 엔드에서 동일하게 구동하는 체계가 정립된 것이다.

그건 그런데, 5.3에 와서도 아직도 외부 모듈 버그 수정 사항이 심심찮게 보인다. 정말 윈도우 IME는 제대로 만들기가 불가능하며, 문제가 생길 때마다 그때 그때 고치는 수밖에 없다.
5.31은 5.3의 버그 패치라기보다는, 5.3에서 미처 다 못 넣은 기능들에 대한 강화판에 더 가깝다.

※ 5.5x

이 버전부터는 프로그램의 무설치 실행이 가능해졌으며, 윈도우 7에서 새롭게 발생하는 문제에 대한 패치가 몇 차례 이뤄졌다. 내부적으로는 개발툴이 6년만에 업그레이드되었다.
이 외에, 입력 UI로 부수 한자 입력기와 문자표가 입력 UI로 추가되었다. <날개셋>은 기술적으로 키보드 입력뿐만 아니라 터치스크린 입력 방식까지 커버할 만반의 준비를 하고 있는 중이다.

최신 버전인 5.52가 나온 후 현재 개인적으로 작업해 놓았거나 작업 중인 사소한 수정 사항은 다음과 같다. 일종의 ‘알려진 버그’인 셈이다.

1. 윈도우 라이브 메신저에서 마우스 클릭으로 대화창을 연 후 한글을 바로 입력하면 첫 타가 영문으로 씹히는 문제 (이건 기술적으로는 메신저의 버그임. 문제를 피해 가도록 조치를 취함)

2. 지금은 기억도 안 나는 여러 UI 개선. 특히, 받침 결합 규칙이 전혀 없는 세벌식 최종 자판에서 글쇠배열만 390이나 두벌식으로 바꾸려 할 때 경고 메시지가 뜨게 바꿈. ^^;;

3. XML 방식으로 설정 파일을 저장할 때, "" 안에 들어있는 부등호나 따옴표 같은 문자가 & 엔티티로 제대로 바뀌지 않을 수도 있는 문제를 발견하여 수정

4. 윈도우 7의 콘솔에서 한글을 조합 중이다가 조합을 중단할 때, 조합 중이던 한글이 덧나는 문제가 있다. ‘다 -> 다다.’ 처럼. 이게 일단은 MS IME에서도 두벌식이 아닌 세벌식 모드일 때 동일하게 나타나며, 비스타에서는 전혀 나타나지 않는 증상이 7에서만 나타나는 걸로 미뤄 볼 때 운영체제의 버그일 가능성이 높다.

5.52 이후 다음 버전은 또 기능 추가에 초점을 둔 5.7 정도로 생각 중이다.

Posted by 사무엘

2010/02/11 00:23 2010/02/11 00:23
,
Response
No Trackback , 4 Comments
RSS :
http://moogi.new21.org/tc/rss/response/179

게시판을 없애고 프로그램 관련 사항을 이제 메일로만 받으면서 며칠 지내 봤는데..
역시 여전히 좀 2% 부족한 걸 느낀다.
가칭 "<날개셋> 한글 입력기 사용자 모임" 같은 게시판형 커뮤니티가 있긴 있어야 할 것 같다.

1. 단순 사용법 질문 내지 건의
일반적인 상황에서 무슨 글자가 입력 안 되거나 글자판 전환이 안 된다는 식의 문의는 버그가 절대 아니고 단순 사용법 문의이다.
기능 제안, 건의도 여기에다 포함시킬까?

2. 버그 신고
프로그램이 뻗는다거나 이런 상황에서 MS IME와 다르게 동작한다는 걸 보고하는 일체의 상황

3. 자료실
다른 사용자들은 내가 만든 각종 글자판이나 입력 설정을 올리고 공유할 수 있고,
나는 <날개셋> 새 버전의 불안정 베타판이나 패치 같은 임시 자료를 올림

4. 프로그램 UI나 설명서에 존재하는 오타/깨진 링크 신고
소스 코드를 고치는 게 아니라 데이터 파일만 패치하면 되는 일체의 이슈들

포털 사이트 카페를 이용하는 게 제일 간단하고 좋긴 한데.. 컨텐츠들이 대형 포털 사이트에 종속되고, 글 올리려면 특정 포털 사이트 아이디가 있어야 한다는 게 흠임. 뭐 그 정도는 카페를 무료로 운영하는 데 드는 최소한의 대가 정도로 받아들여야 할지도 모르겠다.

커뮤니티를 만들 거면 저 정도로 번듯하게 만들었으면 좋겠는데, 문제는 내가 그렇게까지 전문적인 카페를 운영할 여건은 안 된다. 애초에 게시판을 없애고 메일로 바꾼 것도, 내가 인터넷 쪽으로 신경 쓰는 시간을 좀 줄이려는 의도였기 때문이다.

저런 커뮤니티를 만들면 운영은 다른 사람이 좀 했으면 좋겠다. 공개 게시판이 생기는 순간 일단 관리자의 역할이 커지기 때문이다(특히 익명 글쓰기가 가능한 게시판은 더욱 커짐).
나보다 답변 설명도 사근사근하고 친절하게 잘 하고, 다양한 소프트웨어 사용 경험이 있어서 사용자가 처한 상황이 이런 거라는 걸 풀이도 잘 해는 사람.. -_-
나는 오로지 새 버전 기술 개발에만 전념할 수 있게 말이다.

진짜 더 욕심 부리면, 다른 프로그래머 고용해서 리눅스나 맥 같은 여타 플랫폼 포팅도 하고..
이러려면 창업을 해야 된다. 창업 하면 생각나네, 타자 게임도.. <날개셋> 타자연습과 연계해서 어떻게 좀.. -_-;; 그저 아이디어는 아이디어일 뿐이로구나.

사용자 지원은커녕 앞으로는 개발도 더욱 시간 없어서 못 할 판인데
역시 혼자서 공개 소프트웨어 개발하는 건 한계가 크다.

덧붙이자면, 그래서 요즘 소프트웨어 개발은 다들, 과금 체계가 확실한 다른 분야로 빌붙는 양상으로 가는 듯하다.
예를 들면 온라인 게임, 임베디드, 혹은 하드웨어에 따라 붙는 드라이버 소프트웨어라든가.. 특정 전문 분야에서만 사용되는 주문형이나 미들웨어 쪽.
그게 아니라 불특정 다수가 사용하는 패키지 소프트웨어는 이미 시장을 꽉 선점한 대기업이 아니면 뭐.... ^_____^

Posted by 사무엘

2010/01/22 11:22 2010/01/22 11:22
Response
No Trackback , 2 Comments
RSS :
http://moogi.new21.org/tc/rss/response/154

« Previous : 1 : ... 9 : 10 : 11 : 12 : 13 : 14 : 15 : Next »

블로그 이미지

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

- 사무엘

Archives

Authors

  1. 사무엘

Calendar

«   2026/07   »
      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:
3940701
Today:
1369
Yesterday:
2118