첫 화면 > 한글의 진화와 미래 > 한글의 기계화 > 한글과 워드프로세서

한글과 워드프로세서

1 2 3
컴퓨터 기술의 발달 속도는 해가 갈수록 더욱 빨라지고 있고, 이와 더불어 소프트웨어의 기능도 함께 발전하고 있다. 1980년대 개인용 컴퓨터가 보급되기 시작하면서 이전에 사용하던
전동타자기, 워드프로세서 전용 기계 등은 사라져가기 시작했고, 이제 워드프로세서라는 말은 개인용 컴퓨터에서 실행되는 소프트웨어를 가리키는 말로 거의 굳어졌다. 지금은 사라진 워드프로세서 전용 기기인 큐닉스의 ‘글마당’, 고려시스템의 ‘명필’, 금성사의 ‘장원’ 등은 모두 워드프로세서를 하드웨어에 탑재한 전용 기기들이었다. 그 뒤 개인용 컴퓨터가 보급되면서 여러 워드프로세서 소프트웨어들이 사용되기 시작되었는데, 그 중에서 MS-DOS 운영체제를 기반으로 실행되던 워드프로세서로는 삼보컴퓨터의 ‘보석글’ 시리즈, 금성의 ‘가나다라’, 대우통신의 ‘프로워드’, 쌍용컴퓨터의 ‘세종’, 현대전자의 ‘바른글’, 삼성전자의 ‘글벗’ 등과 같은 제품들이다. 이 제품들은 지금은 이름도 생소한, 기억 속에서 사라진 제품들이지만, 초기 개인용 컴퓨터가 보급되던 시절에는 컴퓨터 제조사마다 자사의 컴퓨터를 보급하기 위해서 독자적인 워드프로세서로 많은 사용자층을 확보하고 있던 제품들이다. 하지만, 당시 제품들은 대부분 국내기술에 의해서 독자적으로 개발된 소프트웨어들은 아니었고, 외국의 소프트웨어들을 들여와서 한글을 쓸 수 있도록 바꿔놓은 것이었다. 이렇게 컴퓨터 제조사마다 다양한 한글 지원 워드프로세서들을 자사의 컴퓨터와 함께 보급하다가, 당시 대학생들에 의해서 글(아래아한글) 제품이 개발되어 보급되면서 선풍적인 인기를 얻게 되었다. 아래아한글은 WYSIWYG (What You See Is What You Get) 워드프로세서로 화면에 보이는 문서의 모습이 그대로 프린터로 출력이 되도록 개발된 소프트웨어이며, 자체적인 한글 처리 기능을 지원하고 있어서 컴퓨터 제조사마다 차이를 보여주던 여러 한글 코드를 지원해주었다. 그렇다면 우리가 사용하는 워드프로세서가 우리의 문자인 ‘한글’, 더 나아가서 한국어를 표기하는 데 사용하는 ‘문자’를 얼마나 반영하고 있는지, 그리고 어떤 문제들을 해결해야 하는지 살펴보도록 하자.
 
1. 문자와 코드
디지털 컴퓨터는 모든 자료를 0과 1이라는 2진수로 다루기 때문에 우리가 사용하는 문자도 컴퓨터에서는 숫자로 인식된다. 예를 들어서, 영문 알파벳을 순서대로 나열하면, 대문자 A~Z, 그리고 소문자 a~z로 나열할 수 있다. 이것을 문자목록(Character Repertoire)이라고 한다. 이러한 영문 알파벳 목록 각각에 고유한 숫자를 부여해서 특정 숫자를 영문 알파벳의 지정된 문자로 인식할 수 있도록 할 때, 각각의 문자에 할당된 숫자를 문자코드(Character Code)라고 한다. 그리고 이러한 문자코드표는 대부분의 국가에서 산업표준으로 지정하고 있으며, 지금은 전 세계의 모든 문자를 나열해서 하나의 문자코드표를 만들어 놓은 문자표를 국제표준으로 지정하여 사용하고 있다. 우리가 지금 사용하고 있는 한글의 문자 목록은 [초성+중성]의 결합, [초성+중성+종성]의 결합만을 하나의 글자로 인정한다면, 모두 11,172개의 한글 문자가 가능할 것이다. 11,172개의 한글 문자목록은 다음과 같다.
 
[표 1] 한글 11,172자 문자목록
KIYEOK A
KIYEOK A KIYEOK
KIYEOK A SSANGKIYEOK
KIYEOK A KIYEOKSIOS
KIYEOK A NIEUN
KIYEOK A NIEUNCIEUC
KIYEOK A NIEUNHIEUH
KIYEOK A TIKEUT
KIYEOK A RIEUL
KIYEOK A RIEULKIYEOK
KIYEOK A RIEULMIEUM
KIYEOK A RIEULPIEUP
KIYEOK A RIEULSIOS
KIYEOK A RIEULTHIEUTH
KIYEOK A RIEULPHIEUPH
KIYEOK A RIEULHIEUH
KIYEOK A MIEUM
KIYEOK A PIEUP
KIYEOK A PIEUPSIOS
KIYEOK A SIOS
KIYEOK A SSANGSIOS
KIYEOK A IEUNG
KIYEOK A CIEUC
......
HIEUH I HIEUH























......
 
이러한 문자목록에 고유한 숫자를 할당한다면 바로 한글 문자코드표가 되는데, 현재 국제표준으로 되어 있는 유니코드(Unicode, http://www.unicode.org)의 코드표에서는 한글 ‘가’~‘힣’의 문자에 0xAC00~0xD7A3를 할당해서 사용하고 있다.
 
[표 2] 유니코드 한글 코드표
문자 코드 문자 명칭
U+AC00
U+AC01
U+AC02
U+AC03
U+AC04
U+AC05
U+AC06
U+AC07
U+AC08
U+AC09
U+AC0A
U+AC0B
U+AC0C
U+AC0D
U+AC0E
U+AC0F
U+AC10
U+AC11
U+AC12
U+AC13
U+AC14
U+AC15
U+AC16
......
U+D7A3
KIYEOK A
KIYEOK A KIYEOK
KIYEOK A SSANGKIYEOK
KIYEOK A KIYEOKSIOS
KIYEOK A NIEUN
KIYEOK A NIEUNCIEUC
KIYEOK A NIEUNHIEUH
KIYEOK A TIKEUT
KIYEOK A RIEUL
KIYEOK A RIEULKIYEOK
KIYEOK A RIEULMIEUM
KIYEOK A RIEULPIEUP
KIYEOK A RIEULSIOS
KIYEOK A RIEULTHIEUTH
KIYEOK A RIEULPHIEUPH
KIYEOK A RIEULHIEUH
KIYEOK A MIEUM
KIYEOK A PIEUP
KIYEOK A PIEUPSIOS
KIYEOK A SIOS
KIYEOK A SSANGSIOS
KIYEOK A IEUNG
KIYEOK A CIEUC
......
HIEUH I HIEUH























......
 
<그림 1>은 실제 유니코드 콘소시엄에서 한글에 값을 할당해 놓은 코드표이다.
 
[그림 1] 유니코드 한글 문자표
유니코드 한글 문자표
 
<표 2>와 <그림 1>처럼 한글 한 글자에 하나의 값을 할당해서 구성한 코드를 완성형 코드라고 한다. 그렇지만, 한글 한 글자는 초성, 중성, 종성이 조합하여 이루어진다. 이렇게 한글에 코드를 할당할 때, 각각의 글자가 아닌 초성, 중성, 종성의 자소 목록에 코드를 할당하고 각각의 초성-중성-종성의 값을 조합해서 문자를 구성하는 코드를 조합형 코드라고 한다. 예를 들어서 초성 ‘ㄱ’의 값이 0x02, 중성 ‘ㅏ’의 값이 '0x03', 종성 ‘ㅇ’의 값이 0x0C라고 하자. 그리고 초성-중성-종성의 값을 표현하는 데 모두 5개의 비트(bit)를 사용하면 한글 한 글자는 16개의 비트, 즉 2바이트(byte)로 표시할 수 있다. 한글 ‘강’을 조합형 방식으로 표시하면 <그림 2>와 같이 표시된다.
 
[그림 2] 조합형으로 표시한 한글 ‘강’
조합형으로 표시한 한글 ‘강’
 
 
<그림 2>에서 가장 좌측의 비트를 MSB(Most Significant Bit)라고 하는데, 한글을 표시할 때에는 바로 이 MSB를 ‘1’로 지정해 준다. 완성형 코드인 유니코드와의 차이점은, 조합형 표기 방식에서는 한글의 완성된 글자 각각에 코드를 할당하는 것이 아니라, 초성/중성/종성 자모 목록에만 각각 코드값을 할당한 뒤, 이 자모의 값을 조합해서 한 글자의 전체 코드값을 알아낸다는 것이다.
<그림 2>는 초성, 중성, 종성을 각각 5개의 비트로 표시해서 2바이트로 이루어진 한 글자를 조합한 것이다. 이렇게 초성 ‘ㄱ’, 중성 ‘ㅏ’, 종성 ‘ㅇ’의 자모값을 조합하면 한글 ‘강’의 코드값은 0x886C가 된다.
우리가 많이 사용하는 워드프로세서 소프트웨어에서는 이러한 한글을 어떻게 처리하고 있는지 살펴보도록 하자.
 
1 2 3
 
맨 위로