날개셋 한글 입력기 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

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

Comments List

  1. 김 기윤 2010/08/19 00:42 # M/D Reply Permalink

    설치 완료했습니다-

    .. 이전에 5.53 을 좀 이상하게 깔았었는지 프로그램 추가/제거에
    5.52와 5.53 두개-_-가 존재해서, 싹다 지운 후에 5.65 하나만 설치..!


    그나저나 10만줄 이상의 코드를 6만으로 압축하는 용묵님의 코딩 스타일은.. ;

  2. 착이 2010/08/19 16:46 # M/D Reply Permalink

    감사합니다~! ㅎㅎ

  3. 사무엘 2010/08/20 09:59 # M/D Reply Permalink

    김 기윤: 프로그램을 어떻게 설치해야 5.52와 5.53이 동시에 공존할 수 있는지 모르겠습니다. 새 버전을 설치하면 옛 버전은 원래 자동으로 지워질 텐데. O<-<

    착이: 아핫.. 여기서 댓글로는 처음 뵙는군요. 반갑습니다! ^^

Leave a comment
« Previous : 1 : ... 1906 : 1907 : 1908 : 1909 : 1910 : 1911 : 1912 : 1913 : 1914 : ... 2204 : Next »

블로그 이미지

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

- 사무엘

Archives

Authors

  1. 사무엘

Calendar

«   2024/11   »
          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

Site Stats

Total hits:
2978577
Today:
347
Yesterday:
1358