온누리 한글의 유니코드(Unicode)

Download Report

Transcript 온누리 한글의 유니코드(Unicode)

한글반포 562돌 기념 학술세미나
온누리 한글의 유니코드(Unicode) 적용방안 연구
일시 : 2008년 10월 9일 목요일, 한글날 오후 1시
장소 : 충남대학교 인문대학 문원강당
발표자 : www.kandroid.org 사이트 관리자, 양정수(들풀), [email protected]
4341, 2552, 2008, 1387, 562
www.kandroid.org
한글 반포
562돌 기념
학술 세미나
목차
 문자집합과 인코딩, 유니코드
 한글 코드 표준의 역사
 유니코드와 한글
 한글 : 폰트 파일과 글자모양
 한글 : 입력방식 (Input Automata 예:천지인)
 온누리 한글의 세계화(?)와 관련된 몇 가지 이슈
www.kandroid.org
2
문자집합(Charset) 및 인코딩(Encoding), 유니코드(Unicode)
한글 반포
562돌 기념
학술 세미나
문자집합 (Character Set, Charset)
특정 언어를 표현하기 위해 사용되는 문자들의 집합
인코딩(Encoding)
특정한 문자집합들내의 문자를 컴퓨터에서 사용하기 위한 숫자로 변환하는 방법
유니코드란?
전세계에서 사용되는 문자 집합을 정의한 것으로
2008년 4월 4일 현재 Unicode 5.1 의 정의에 의해 약 100,000 문자이상을 포함하고 있음.
해당 문자집합을 표현하기 위한 인코딩 방법으로, UTF-8, UTF-16, UTF-32 를 사용함.
UTF-8 : 1Byte ~ 4Byte의 가변길이로 유니코드상의 문자를 표현함.
UTF-16 : 2Byte 또는 4Bypte의 가변길이로 유니코드상의 문자를 표현함.
UTF-32 : 4Byte 고정길이로 유니코드상의 문자를 표현함.
www.kandroid.org
3
한글 반포
562돌 기념
학술 세미나
한글 문자 인코딩의 역사
구분
제/개정년도
내용
KSC 5601
1974
초(15) 중(21) 종(21) : 한글자모 57자
기능문자 36자, 로마문자 96자, 보조부호계
KSC 5714
1977
한자 7,200자
※ 82.4.23일 폐지, KSC 5601에 흡수
KSC 5601
1982
자음(30), 모음(21) : 한글자모 51자
기능문자 34자, 도형문자(기호:32,숫자:10, 로마문자:5)
KSC 5619
1982
한글 1,316자, 한자 1,692자
KSC 5601
1987
한글 2,350자, 한자 4,888자
※ ISO 2022(완성형) 규격에 부합
KSC 5657
1989
한글 1,930자, 고어 1,673자, 한자 2856자, 기타 1,190자
※ KSC 5601 규격의 확장
KSC 5601
1992
초(19) 중(21) 종(27) : 한글자모 67자
※ KSC 5601-1987 과 공동 표준
KSC 5700
1995
한글 11,172자, 한글자모 240자, KSC 5601의 94자모
※ ISI 10646-1 수용
보다 자세한 내용을 원하시면 아래의 URL의 문서를 참고하시면 좋을 듯 합니다.
http://register.itfind.or.kr/Report01/200302/IITA/IITA-0076/IITA-0076.pdf
www.kandroid.org
4
한글 반포
562돌 기념
학술 세미나
유니코드(Unicode)와 한글
※ http://www.unicode.org/Public/UNIDATA/Blocks.txt 내에 정의되어 있는 한글 영역은 아래와 같음.
코드영역
설명
1100 ~ 11FF
Hangul Jamo
초성(90개) / 중성(66개) / 종성(82개) : 240 자모
조합 가능한 한글의 총 글자 수 : 90 x 66 x (82+1{종성없음}) = 493,020자
3130 ~ 318F
Hangul Compatibility Jamo
한글 자모만 별도로 입력할 때 사용되는 영역
AC00 ~ D7AF
Hangul Syllables
한글 완성형 11,172자에 대한 정의 영역
FF00 ~ FFEF
Halfwidth and Fullwidth Forms
한글 반각 자모
E000 ~ F8FF
Private Use Area (6,400자까지 사용가능)
한글 폰트 새굴림체에서 일부 고어를 이 영역을 통해 사용함.
http://www.kandroid.org/s2/hangul/old_han.html
F0000 ~ FFFFF
Supplementary Private Use Area-A (65,535자까지 사용가능)
100000 ~ 10FFFF
Supplementary Private Use Area-B (65,535자까지 사용가능)
www.kandroid.org
5
한글 : 폰트 파일(Font File)과 글자모양 (Glyph)
한글 반포
562돌 기념
학술 세미나
※ 아래의 그림은 화살표 연결방향순서로, 폰트파일 / Glyph / Glyph 내 곡선 표현법에 대한 기초상식임.
www.kandroid.org
6
한글 반포
562돌 기념
학술 세미나
한글 : 입력방식 (Input Automata : 예 - 천지인 초성, “ㅃ”)
초성 상태 변환 단계 : ㅂ → ㅍ → ㅃ
q0
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16 17 18 19
ㄱ
ㄲ
ㄴ
ㄷ
ㄸ
ㄹ
ㅁ
ㅂ
ㅃ
ㅅ
0
1
ㄴ
3
ㄷ
4
ㅂ
8
18
1
2
10
ㅈ
13
ㅇ
12
ㅇ
ㅈ
ㅉ
ㅊ
ㅋ
ㅌ
1 3
ㄱ
ㅅ
ㅆ
16
ㅍ
ㅎ
2
1
2
6
3
17
4
5
8
9
3
19 10
11
15 13 14
12
www.kandroid.org
7
7
한글 반포
562돌 기념
학술 세미나
한글 : 입력방식 (Input Automata : 예 - 천지인 중성, “ㅑ”)
중성 상태 변환 단계 : ㅣ → ㅏ → ㅑ
천(ㆍ)
q0
1
2
3
4
5
6
7
8
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
0
ㆍ ㆍ ㅏ ㅐ ㅑ ㅒ ㅓ ㅔ ㅕ ㅖ ㅗ ㅘ ㅙ ㅚ ㅛ ㅜ ㅝ ㅞ ㅟ ㅠ ㅡ ㅢ ㅣ
ㆍ 2
3
1
1
2
1
5
3
12
20
16 16
3
ㆍ
ㆍ
ㆍ
ㆍ ㅑ
ㅏ
ㅘ
ㅠ
ㅜ ㅜ
ㅏ
3
2
21 11 15
지(ㅡ)
인(ㅣ)
ㅡ
ㅗ
ㅛ
23
7
9
4
6
8
10
14 13
19 18
17 22
ㅣ
ㅓ
ㅕ ㅐ
ㅒ
ㅔ
ㅖ
ㅚ ㅙ
ㅟ ㅞ
ㅝ ㅢ
1
ti
q0
bs
f1
ti : Timer Interval
bs : back space
f1: delete previous char
others : input char state 그대로 반영
www.kandroid.org
8
한글 반포
562돌 기념
학술 세미나
한글 : 입력방식 (Input Automata : 예 - 천지인 종성, “ㄻ”)
종성 상태 변환 단계 : ㄴ → ㄹ → ㄹ(ㅇ) → ㄻ
q0
1
2
3
9 10 11 12 13 14 15 16 17 18
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
ㄱ
ㄲ
ㄳ ㄴ ㄵ ㄶ ㄷ ㄹ ㄺ ㄻ ㄼ ㄽ ㄾ ㄿ ㅀ ㅁ ㅂ ㅄ
ㅎ x/ x/ ㄱ/ ㄱ/ ㄴ/ ㄴ/ ㄴ/ ㄹ/ ㄹ/ ㄹ/ ㄹ/ ㅂ/ ㅂ/ x/ ㄹ/ ㄹ/ ㄹ/ ㄴ/
ㄸ ㅃ ㅎ ㅆ ㅅ ㅊ ㅉ ㅋ ㄲ ㅃ ㅆ ㅎ ㅆ ㅉ ㅇ ㄷ ㄸ ㅆ
0
4
6
1
ㄱ
1
ㄴ
4
8
1
2
ㄷ
5
24
7
8
2
1
4
3
9 35
36 9
4
7
25 43
ㅂ 17
11
생
44
7
13 43
략
ㅅ 19
ㅈ 22
ㅇ 21
3
30 32
45
14
12
37
15
26
38
18 39
17
20
5 33
11
31 3
6
12 40 18
34 5
42
42
21
3
32
22
10
4
www.kandroid.org
9
온누리 한글의 세계화(?)와 관련된 몇 가지 이슈
한글 반포
562돌 기념
학술 세미나
이슈 1)
세계 표준인 Unicode에 온누리 한글에서 정의한 문자집합을 표현할 방법은 무엇인가?
→ 유니코스상에서 온누리 한글에 대한 영역을 확보하는 것은 전혀 불가능하다고는 할
수는 없으나, 단기적으로는 불가능할 것으로 보임. 그러므로 가급적 기존의 Unicode
한글 영역 및 Private 영역을 활용하는 것이 최선의 방식으로 보임.
이슈 2)
온누리 한글에서 정의한 문자집합에 포함된 글자모양을 가진 폰트 파일 제작은 가능한가?
→ 이슈 1)과 관련하여 Unicode 상에서 온누리 한글 코드 영역을 확보하는 것이 어려울 경우,
해법은 한글 자모의 확장 + 온누리 한글을 위한 인코딩 방식(?) + 온누리 한글 전용 폰트가
결합된 구조에서 나올 수 있을 것으로 보임. 이 경우, 온누리 한글 전용폰트 제작 방법이 요구됨.
이슈 3)
온누리 한글의 입력을 위한 입력환경 제공은 가능한가?
→ 이슈1)과 이슈2)가 해결되었다 하더라도, 온누리 한글 입력기 제작을 위한 온누리 한글 입력
Automata에 대한 정의가 필요함.
www.kandroid.org
10
온누리 한글의 세계화(?)와 관련 : 이슈 1) 참고
한글 반포
562돌 기념
학술 세미나
현재의 완성형 한글 구성에 사용된 한글 자모
☞ 초(19) x 중(21) x 종(27 + 1{종성없음}) = 11,172자
Unicode 한글 자모 영역에 등록된 한글 자모
☞ 초(90) x 중(66) x 종(82 + 1{종성없음}) = 493,020자
Unicode 상의 한글 자모 추가 지정 가능 수
☞ 초성:5자, 중성:5자, 종성 6자
온누리 한글에서 요구되는
한글 자모에 대한 정리가 요구됨.
www.kandroid.org
11
온누리 한글의 세계화(?)와 관련 : 이슈 2) 참고
코드영역
☞ 만약, 온누리 한글에서 신규로 요구되는 한글
(즉, 기존의 11,172자 이외의 한글) 이 6,400자
미만이라면, 좌측 유니코드 1번 코드영역을
활용하는 것이 가장 바람직할 것으로 생각됨.
설명
1100 ~ 11FF
3130 ~ 318F
AC00
~ D7AF
한글 반포
562돌 기념
학술 세미나
Hangul Syllables
한글 완성형 11,172자 정의 영역
☞ 추가로 요구되는 글자수가 더 필요로 하다면,
좌측 유니코드 2번 및 3번 코드영역도 사용해
볼 수 있을 것으로 보임. 물론 2번과 3번 영역의
합계인, 130,000여자로 국한되어야 할 것으로
보임.
FF00 ~ FFEF
E000
~ F8FF
1
Private Use Area
(6,400자까지 사용가능)
F0000
~ FFFFF
2
Supplementary Private Use Area-A
(65,535자까지 사용가능)
100000
~ 10FFFF
3
Supplementary Private Use Area-B
(65,535자까지 사용가능)
☞ 만약 6,400 + 130,000 여 문자 이상의 수가 요구
된다면, 새로운 방법이 요구될 것임.
왜냐하면, Unicode에서 한글을 위해 그와 같이
많은 영역을 할당해 줄 가능성이 없을 것임.
☞ 위와 같은 방식으로 온누리 한글을 위한 코드영역을
할당하였다고 하더라도, 해당 글자의 모양(Glyph)을
포함하는 폰트를 제작하지 않는다면, 실질적으로 사용
할 수 있는 방법이 존재하지 않음.
위에서 보여지고 있는 “한글 조합형 벡터 폰트”란
글자는, 개별 글자를 벡터폰트로 제작한 방식이 아니라,
한글 자모만을 벡터기반으로 제작한 후, 자모의
결합구조를 수학적으로 계산한 방식임. 이 방식이,
온누리 한글에 적합한 폰트 제작 방식일 수도 있음.
☞ 폰트 제작방법은, 해당 글자의 모든 모양을 앞서서
예시로 보여주었던 ‘가’자와 같이 컴퓨터 그래픽을 통해
제작하여야 함.
www.kandroid.org
12
온누리 한글의 세계화(?)와 관련 : 이슈 3) 참고
한글 반포
562돌 기념
학술 세미나
앞선 이슈 1, 이슈 2를 해결했다고 하더라도,
온누리 한글을 효과적으로 사용하기 위해서는 적절한 입력 방식이 요구될 것임.
기본적으로는 일반 데스크탑 키보드와 휴대폰의 키패드 정도의 입력구조를 지원하는 것이
바람직 할 것임.
해당 입력을 지원하기 위한 Input Automata는 이 장에서 다루기에는 아직 부족한 상황이나
꼭 필요한 항목임에는 틀림없음.
더불어, 온누리 한글에서 한글 고어중 어떤 자모를 복원할 것인가를 선택함에 있어서
Input Automata를 고려할 수 있다면, 보다 편리한 입력기를 만들 수도 있을 것으로 보임.
www.kandroid.org
13
www.kandroid.org