현재 유니코드에서 한글 텍스트의 인코딩 기법은 '완성형 현대한글 음절'과 주로 옛한글을 표현하는데 사용되는 '자모 조합형 한글'로 나뉘고 있다. 그러나 정규화 변환과 유니코드의 한글자모 조합 규정에서 자모와 완성형 현대한글 음절을 다시 조합하여 한글음절로 사용할 수 있게 허용했기 때문에, 구현하는 사람마다 각기 서로 다르게 한글 인코딩을 하고 있다. 이는 인코딩과 정규화 형식을 처음 작성할 당시 옛한글의 확장 사용을 고려하지 않았거나, 한글에 대한 올바른 이해가 부족한 상태에서 작성된 데 따른 결과라 하겠다. 결과적으로 한 개의 한글음절에 대한 여러 가지 표현 방법이 존재함으로써 한글 문자열의 검색, 비교, 정렬에 문제점이 발생한다. 따라서 본 연구에서는 현재 사용되고 있는 한글 인코딩 방법을 중심으로 정규화에 의한 부작용 등의 문제점을 분석하고, 이들을 올바르게 처리하기 위한 효율적인 단일 한글 인코딩 표준 방안을 제안한다.
현재 유니코드에서 한글 텍스트의 인코딩 기법은 '완성형 현대한글 음절'과 주로 옛한글을 표현하는데 사용되는 '자모 조합형 한글'로 나뉘고 있다. 그러나 정규화 변환과 유니코드의 한글자모 조합 규정에서 자모와 완성형 현대한글 음절을 다시 조합하여 한글음절로 사용할 수 있게 허용했기 때문에, 구현하는 사람마다 각기 서로 다르게 한글 인코딩을 하고 있다. 이는 인코딩과 정규화 형식을 처음 작성할 당시 옛한글의 확장 사용을 고려하지 않았거나, 한글에 대한 올바른 이해가 부족한 상태에서 작성된 데 따른 결과라 하겠다. 결과적으로 한 개의 한글음절에 대한 여러 가지 표현 방법이 존재함으로써 한글 문자열의 검색, 비교, 정렬에 문제점이 발생한다. 따라서 본 연구에서는 현재 사용되고 있는 한글 인코딩 방법을 중심으로 정규화에 의한 부작용 등의 문제점을 분석하고, 이들을 올바르게 처리하기 위한 효율적인 단일 한글 인코딩 표준 방안을 제안한다.
In Unicode, two types of Hangul encoding schemes are currently in use, namely, the "precomposed modern Hangul syllables" model and the "conjoining Hangul characters" model. The current Unicode Hangul conjoining rules allow a precomposed Hangul syllable to be a member of a syllable which includes con...
In Unicode, two types of Hangul encoding schemes are currently in use, namely, the "precomposed modern Hangul syllables" model and the "conjoining Hangul characters" model. The current Unicode Hangul conjoining rules allow a precomposed Hangul syllable to be a member of a syllable which includes conjoining Hangul characters; this has resulted in a number of different Hangul encoding implementations. This unfortunate problem stems from an incomplete understanding of the Hangul writing system when the normalization and encoding schemes were originally designed. In particular, the extended use of old Hangul was not taken into consideration. As a result, there are different ways to represent Hangul syllables, and this cause problem in the processing of Hangul text, for instance in searching, comparison and sorting functions. In this paper, we discuss the problems with the normalization of current Hangul encodings, and suggest a single efficient rule to correctly process the Hangul encoding in Unicode.
In Unicode, two types of Hangul encoding schemes are currently in use, namely, the "precomposed modern Hangul syllables" model and the "conjoining Hangul characters" model. The current Unicode Hangul conjoining rules allow a precomposed Hangul syllable to be a member of a syllable which includes conjoining Hangul characters; this has resulted in a number of different Hangul encoding implementations. This unfortunate problem stems from an incomplete understanding of the Hangul writing system when the normalization and encoding schemes were originally designed. In particular, the extended use of old Hangul was not taken into consideration. As a result, there are different ways to represent Hangul syllables, and this cause problem in the processing of Hangul text, for instance in searching, comparison and sorting functions. In this paper, we discuss the problems with the normalization of current Hangul encodings, and suggest a single efficient rule to correctly process the Hangul encoding in Unicode.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
1 에서 4.L4까지 나열한 전제조건이 가장 이상적인 한글코드 표현의 조건이라고 할 수는 없지만, 한글코드와 인코딩은 실제 구현에서 널리 사용되어야 하고, 이전의 인코딩과 호환이 가능하여야 하기 때문에 실용적인 측면에서 제한을 가하고자 한다.
가장 최근에 정의되어 Microsoft Word 2002판 이후부터 적용되고 있는 유니코드 표준을 이용한 옛한글 지원 방식을 살펴보기로 하겠다. 앞서 3.
따라서 이 연구에서는 현재 유니코드를 기반으로 옛 한글을 지원하는 한글 인코딩 방법[8, 9]을 중심으로, 한글 문자열의 검색, 비교, 정렬을 쉽게 할 수 있으며 정규화의 부작용을 최소화 할 수 있는 효율적인 한글 인코딩 방안을 제안하여 올바른 한글처리를 할 수 있도록 하고자 한다.
자세히 살펴보았다. 따라서 효율적언 한글 인코딩 방안을 제안하기 위한 몇 가지 전제 조건을 먼저 제시하고자 한다. 4.
손쉽게 구분하고 처리할 수 있다. 이 부분에 대해서는 코드를 연구하는 사람들 사이에 이견이 있을 수 있겠으나, 본 연구의 목적 자체가 한글에 있어서의 인코딩을 효율적으로 하기 위함이기 때문에 연구의 기본 목적에 맞는 유일성을 확보하기 위한 노력으로 최선의 길을 선택하였다. 다음의 표 5는 그 사용 예이다.
현재 사용되고 있는 조합형 옛한글 인코딩 기법을 살펴보기로 하자. 비표준 방식인 사용자 정의 영역을 이용하는 방법과 유니코드의 자모를 이용하지만, 부족한 옛 한글 자모를 흩자모를 이용하여 조합해서 쓰는 비효율적인 조합방식이 바로 그것이다.
가설 설정
2) 조합형 현대한글을 완성형 현대한글로 바꾸는 경우에는 해당 문자열을 NFC로 정규화 하면 된다. 별도의 함수를 작성하더라도 테이블 없이 단순한 계산만으로 처리할 수 있다.
3.1.1 완성형 현대한글은 조합형 음절의 일부인가?
4.2.3 기존의 자모는 재조합하지 않는다
제안 방법
바뀌는 부작용을 분석하였다. 그리고 그 해결 방안으로써 효율적이고 음절에 대한 유일성을 보장하는 새로운 한글 인코딩 표준안과 정규화에 대한 수정방안을 제시하였다.
네 번째로, 2.3에서 기술한 바와 같이 현재 유니코드의 BMP(Basic Multilingual Plane; 기본 다국어 판) 에있는 한글(옛한글 포함)자모는 완전하지 않은 부족한 세트이다 따라서 이를 해결하기 위해 3.2.1 절과 322절에서 설명한 사용자정의 영역을 사용하거나, 홑자모 여러 개를 쓰는 방법으로 부족한 자모를 확장하여 사용하였다. 하지만, 그 확장 방법이 구현하는 곳에 따라서 다르기 때문에 상호간에 호환성이 유지되지 못했다.
본 연구에서는 현재의 유니코드에서 사용되고 있는 현대 한글과 옛한글의 인코딩 방법을 중심으로 단일한 한글 음절에 대한 여러 형태의 표현 가능성으로 인한 호환 문제와, 기존의 정규화에 의해 한글 음절의 조합 형태가 바뀌는 부작용을 분석하였다. 그리고 그 해결 방안으로써 효율적이고 음절에 대한 유일성을 보장하는 새로운 한글 인코딩 표준안과 정규화에 대한 수정방안을 제시하였다.
이 방식은 Word 2000판과 HWP 2007판까지 사용 중인 사용자 정의영역을 이용하는 옛한글 지원 방식이다. 유니코드에서 사용 가능한 사용자 정의 영역 (Pri vate Use Area)중 다음의 영역을 사용하여 앞서 언급된 부족한 121자의 추가 옛한글 자모를 포함한 모든 한글 자모를 재배치하였다.
제안하는 방법에서는 기존의 옛한글의 정규화에서 생기는 많은 부작용들이 다음과 같이 단 한 개로 줄어들었다.
제안하는 방법에서는 한 개의 음절에 유일성이 보장되기 때문에 음절의 검색에서는 특별히 별도의 알고리즘이 사용될 필요가 없이 부호값 비교만으로 처리 될 수 있다. 다만, 문자열의 길이에 따른 크기를 구분할 경우(예를 들어 C언어의 strcmp 같은 문자열 함수의 경우 문자열의 길이에 따라 다른 결과를 돌려준다.
제안하는 방법의 한글 음절을 표현하는 정규식은 기존과 같이 LVT*'로 처리된다. 즉, 기존의 유니코드 표준의 조합규칙에 위배되지 않는다.
성능/효과
3) 기존의 유니코드에 있는 옛한글 자모만을 사용하는 옛 한글 조합형의 경우에는 완성형 현대한글과 같이 사실상 전혀 변환할 필요가 없다.
어렵다. 따라서 정규화의 부작용을 최대한 줄이고, 한글 음절의 단일한 표현을 확보하는 방안은 필자가 제시한 옛한글 자모의 추가와 조합에 대한 일부 제한이 가장 효율적이라고 생각된다.
즉, 이런 경우에 현대한글 음절을 초성과 중성으로 분해하기만 하면 손쉽게 복구가 된다. 또한, 직접 정규화 처리 함수를 내장한 경우에는 한글 조립 부분을 수정하여 옛 한글의 일부가 완성형 현대한글이 되지 않도록 하면 더 효율적이다.
세 번째로 기존에 포함된 겹자모는 재조합 하지 않는다. 쉽게 말해서+으로을 표현하지 않는다.
후속연구
여도, 현재의 옛 한글 인코딩 기법이 발표된 지도 벌써 몇 년이 지났기 때문에 잘못된 방법이 더욱 확산되기 전에 바로 잡아야 된다. 따라서 본 연구와는 별도로 추가 연구나 다른 연구자들에 의한 한글 인코딩에 관련된 연구가 많이 수행되기를 바라며, 아울러 이러한 연구들의 성과를 표준을 다루는 전문가들께서 빠른 시일 안에 국내표준과 국제표준에의 반영이 이루어지도록 노력하여야 한다.
참고문헌 (20)
산업표준심의회, '국제 문자 부호 계 KS X 1005', 한국표준협회, 2002
The Unicode Consortium, 'The Unicode Standard 5.0,' Addison-Wesley, 2006
Mark Davis, Matrin Durst, 'Unicode Normalization Forms 5.0.0 - UAX #15,' The Unicode Consortium, 2006
Matrin Durst, Francois Yergeau, Richard Ishida, Misha Wolf, Tex Texin, 'Character Model for the World Wide Web 1.0: Normalization,' The World Wide Web Consortium (W3C), 2005
Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, Eve Maler, Francois Yergeau, 'Extensible Markup Language (XML) 1.0,' The World Wide Web Consortium (W3C), 2006, Appendix B. Definitions for Character Normalization
Patrick Faltstrom and Paul Hoffman, Adam M. Costello, 'Internationalizing Domain Names in Applications (IDNA) - RFC 3490,' The Internet Engineering Task Force (IETF), 2003, Section 10. Security Considerations
안대혁, 박영배, '유니코드 환경에서의 올바른 한글 정규화를 위한 수정 방안', 정보과학회 논문지 제34권 2호, 2007, pp. 169-177
※ AI-Helper는 부적절한 답변을 할 수 있습니다.