95/11/12
정 주 원

한글 코드에 대하여

1. 서론

본 문서에서는 95년 11월 현재까지 제안된 한글 부호화 체계를 정리 나열하고, 국제 표준인 ISO-2022, ISO-10646과의 관계를 설명한다.

2. 한글 코드

2.1. KSC-5601

1987년 한국공업진흥청에서 국가 표준으로 정한 코드로 원래 명칭은 "KSC-5601 정보교환용 부호 (한글 및 한자)"이다. KSC-5601은 정보교환용 부호 기본 집합(완성형)과 보조 집합(조합형), 그리고 7-bit용 코드(n-byte형)를 규정한다. 이 문서에서는 기본 집합에 대해서만 언급하겠다.

KSC-5601 정보교환용 부호의 부호 영역은 0xA1A1~0xFEFE로 ISO-2022를 만족한다. 0xA1A1~0xACFE에는 부호 및 일본/러시아 글자를, 0xB0A1~0xC8FE에는 한글을, 0xCAA1~0xFDFE까지는 한자를 배치하였다. 여기서 한글은 자주 쓰이는 2232자를 골라 가나다 순으로 배치하였고, 한자 역시 그러하였다.

2232자에 포함되지 않은 한글에 대해서는 '채움'(0xa4d4)으로 시작하여 초성,중성,종성에 해당하는 글자를 배치함으로써 나타나도록 하였다. KSC-5601의 ISO-2022 지정(designate) sequence는 ESC 2/4 2/9 F로 F는 4/3 이다. (ESC $ ) C) 7bit환경일 경우 호출(invoke)은 SO로 한다.(^N)

2.2. KSC-5657

KSC-5601로는 부족한 부호, 문자, 한글, 한자등을 추가하기 위해서 제정되었다. KSC-5601과 혼용하여 쓰는 방법은 "KSC-5620 정보교환용 부호의 확장법" 즉 ISO-2022를 따른다.

KSC-5657의 ISO-2022 지정 sequence는 ESC 2/4 2/9 F로 F는 제 1 확장세트 일 경우에는 4/5 (E), 제 2 확장세트일 경우에는 4/6 (F)이다.

2.3. Microsoft의 통합형 한글

기존의 KSC-5601을 사용하면 2바이트로 표현가능한 한글의 글자수가 2350자로 제한된다. KSC-5601을 기본 코드로 한 Microsoft사의 Windows 운영체제로는 이와 같은 한글 표현의 문제가 생긴다. 따라서, 2byte로 표현할 수 있는 한글의 수를 늘리면서, 기존의 KSC-5601을 기반으로 짜여졌던 프로그램도 그대로 사용할 수 있는 방안으로서 제시한 것이 Microsoft사의 통합형 한글 코드(초기에는 확장 완성형이란 이름으로 발표했음)이다.

그림 1에서 보다시피 확장완성형은 기존의 KSC-5601 코드영역을 그대로 두고 0x8141~0xC6FE에 해당하는 부분 중 KSC-5601에 포함되지 않는 부분에 KSC-5601로는 두 바이트로 표시할 수 없는 한글 문자들을 가나다순으로 배치하였다.

Microsoft 통합형 한글의 부호 영역
그림 1. Microsoft 통합형 한글의 부호 영역

이것은 어떤 표준 규정과도 연관이 없다는 것이 특징으로, Microsoft사 자체내에서 임시적으로 사용하기 위해 제정된 것으로 알려져 있다. 현재 한글 Windows 95와 한글 Windows NT의 한글 코드로 제공되고 있다.

2.4. 첫가끝 코드

동국대의 변정용 교수는 '정음형', 부산대의 김경석 교수는 '첫가끝'이라고 부르는 이 코드는, 옛 한글과 현대 한글에서 나타날 수 있는 한글의 초성, 중성, 종성의 자모 요소를 한 글자(Unicode BMP의 경우 2 바이트)로 나타내도록 부호화 하고, 이 자모들을 초성(첫소리), 중성(가운뎃 소리), 종성(끝소리)의 순서대로 한글을 표현하는 방식이다.

초성, 중성, 종성의 자모를 부호화 했으므로 'ㄺㅅ'이나 'ㅠㅣ'과 같은 글자를 한 글자(자모)로 한다. 이 이외에 '초성 fill'과 '중성 fill'의 두 글자가 추가되어 초성없는 중성과 받침 등의 글자등도 표현할 수 있다. 받침이 없을 경우 종성은 나타내지 않으므로 '종성fill'은 필요없다.

이것은 ISO/IEC-10646:1993에 채택되어 24. Hangul syllable composition method라느 이름으로 포함되었다.

2.5. 유니코드 한글

이것은 Unicode 2.0에서 추가된 한글표현 방법으로, 조합될 수 있는 현대 한글 글자 모두를 가나다 순으로 정렬, 배치한 것이다. 현대 한글이 사용하 는 자모는 초성 19자, 중성 21자, 종성 27자로, 조합 가능한 글자의 수는 19 x 21 x 28 (종성없음 포함) = 11172자 이다.

이 코드의 조합 방법을 그림 2에 나타내었다.

Unicode V2.0에 포함된 한글의 부호영역
그림 2. Unicode V2.0에 포함된 한글의 부호영역

3. 국제 표준과의 관계

3.1. ISO-2022와의 관계

KSC-5601과 KSC-5657은 ISO-2022한경에서 사용할 수 있다. 다른 부호체계에 서 KSC-5601부호체계를 사용하려면 "ESC $ ) C"의 4자의 지정문자열을 보내고 사용하면 되며, KSC-5657의 제 1 확장세트는 "ESC $ ) E", 제 2 확장세트는 "ESC $ ) F"의 지정문자열을 보낸 후 사용하면 된다.

3.2. ISO-10646과의 관계

ISO/IEC-10646:1993에는 KSC-5601, 5657에서 사용하던 부호, 한글, 한자등을 모두 포함되어 있다. 또한 첫가끝 한글방식이 추가되어 있다. KSC-5601에서 사용하던 부호와 문자는 BMP의 부호와 문자 부분에 포함되었으며, 한자 부분도 한중일 통합 한자 부분인 "CJK Unified Ideographs" (0x4E00~0x9EFF)에 포함되었다. 한글 부분은 0x3400부터 KSC-5601의 순서 그대로 배치되었다.

KSC-5636의 한글 부분은 KSC-5601 한글 부분의 배치가 끝나는 0x3D2E부터 순서대로 배치되었다. KSC-5636 한글의 배치가 끝나는 0x44B8부터는 앞의 두 한글 부분에 포함되지 않으면서 비교적 빈번히 사용되는 한글을 0x4DFF 까지 배치하였다.

첫가끝 한글의 요소인 한글 자모는 "Hangul Jamo"(0x1100~0x11FF)에 배치되 었으며, 그 조합 원리는 제 24 장에 설명되었다.

첫가끝 한글의 자모와는 다른 KSC-5601의 한글 자모문자 (0xA4A1~0xA4FF in KSC-5601)는 "Hangul Compatibility Jamo" (0x31 row)에 배치되었다.


위로