세종대왕과 한글코드 : 첫번째 이야기
채진석 교수(인천대학교 컴퓨터공학과)
564돌을 맞이하는 한글날이 얼마 남지 않았다.
지금 고1인 딸아이가 중간시험 공부에 한창이다. 딸아이의 공부방에 들어가서 요즘 고등학교 국어교과서에는 어떤 내용이 실려 있는지 훑어보다가 세종대왕의 훈민정음을 보게 되었다.
딸아이 앞에서 책을 보지 않고 처음부터 끝까지 훈민정음을 외웠더니 딸아이의 눈이 휘둥그레진다. 고등학교 시절 시험공부를 하면서 열심히 외워 둔 보람이 있어 30년이 지난 지금도 기억이 난 것이다. 중년의 나이에 외우는 훈민정음은 고등학교 시절 시험 때문에 외웠던 훈민정음과는 좀 다른 의미로 다가 온다.
564년 전 세종대왕은 과연 무슨 생각을 하면서 훈민정음을 창제했던 것일까? 훈민정음 창제를 통해 세종대왕이 이루고자 했던 문자 혁명은 과연 어떤 모습이었을까?
이 질문에 대한 답 중의 하나를 필자는 대학원 시절 한글코드를 공부하다가 깨닫게 되었다.
필자가 대학 시절을 보내던 80년대는 한글코드의 춘추전국시대라고 할 만했다.
그 당시만 해도 한글코드의 표준이 없어서 문서 편집기를 만들던 회사마다 나름대로의 한글코드를 사용하고 있었다. 사용자가 하나의 문서 편집기에서 작성된 문서를 다른 문서 편집기에서 사용하기 위해서는 회사에서 제공하는 코드표를 보고 일일이 코드 변환을 하든지 아니면 코드 변환 프로그램을 사용해야 하므로 무척 불편하였다. 따라서 표준 한글코드를 만들어야 한다는 요구가 점점 높아지고 있었다.
표준 한글코드에 대해 설명하기 전에 컴퓨터에서 문자를 코드화하여 처리하는 방법에 대해 잠깐 설명할 필요가 있다. 왜냐하면 이 부분에 대해 대강이라도 알고 있어야 표준 한글코드를 만드는 것이 왜 그렇게 어려운 일이었는지 이해할 수 있기 때문이다.
컴퓨터는 기본적으로 0과 1 두 가지 숫자를 사용하여 모든 정보를 표현한다. 0과 1 두 가지 숫자만을 사용하는 것을 수학에서는 이진법이라고 하는데, 컴퓨터에서는 이진수 한 자리를 비트(bit)라고 부른다. 따라서 1 비트를 사용하게 되면 2가지 경우를 표현할 수 있고, 2 비트를 사용하면 22인 4가지, 3 비트를 사용하면 23인 8가지 경우를 표현할 수 있게 된다. 영어의 경우는 알파벳 대소문자와 숫자, 특수문자를 표현하는데 27인 128개의 코드만 있으면 충분하므로 문자 표현에 7 비트를 사용하고 있다. 이러한 표준 영어코드를 아스키(ASCII) 코드라고 부른다.
컴퓨터에서 정보 교환에 사용되는 단위로는 바이트(byte)가 사용되는데, 바이트는 아스키 코드에 사용되는 7 비트에 코드의 오류 여부를 검사할 수 있는 패러티 비트라고 부르는 1 비트를 추가하여 8 비트로 이루어져 있다. 보통 문자 코드를 만들 때는 바이트에 있는 8 비트를 모두 사용하는 것이 아니라 패러티 비트를 제외한 7 비트만을 사용하게 된다.
한글의 경우는 영어에 비해 코드를 만드는 것이 좀 복잡하다. 그 이유는 한글이 초성, 중성, 종성으로 나누어져 있기 때문인데, 현대 한글의 경우 초성이 19개, 중성이 21개, 종성은 28개로 이루어져 있으므로, 이론상 가능한 한글 음절의 개수는 19×21×28 = 11,172개가 된다.
한글은 영어에 비해 표현해야 하는 문자의 개수가 많아서 1 바이트로는 표현할 수가 없으므로 2 바이트인 16비트를 사용해야 하는데, 이 중 2 비트의 패러티 비트를 빼면 남는 것은 14 비트가 된다.
초성의 경우 19개를 표현해야 하는데, 4 비트를 사용하게 되면 24인 16가지 경우밖에 나타낼 수 없으므로 불가피하게 5 비트를 사용해야만 한다. 중성과 종성의 경우도 마찬가지로 21개와 28개로 16개를 넘기 때문에 5 비트를 사용해야만 하는데, 이렇게 되면 한글코드를 나타내기 위해 총 15 비트가 필요하게 된다. 앞에서 2 바이트를 사용하여 코드를 만들 때 사용할 수 있는 비트가 14 비트라고 한 것을 상기해 보라. 한글을 초성, 중성, 초성으로 나누어 한글코드를 만들기 위해서는 15 비트가 필요한데, 실제로 사용할 수 있는 비트는 14 비트밖에 남아 있지 않은 것이다. 이렇게 초성, 중성, 종성으로 나누어 한글코드를 배정하는데 1 비트가 부족한 상황은 향후 표준 한글코드를 제정하는데 엄청난 논란과 부작용을 낳게 되는 원인이 된다. 만일 현대 한글에서 사용되는 초성, 중성, 종성 중 어느 하나라도 16개 이하로 표현할 수 있었다면 표준 한글코드 제정은 큰 무리 없이 진행될 수 있었을 것이다.
1980년대 중반에 표준 한글코드의 제정을 위해 모인 전문가들은 이 문제에 대해 고민하다가 완성형 한글코드라는 다소 기형적인 형태의 한글코드를 제안하게 된다. 그러면서 초성, 중성, 종성으로 구분하여 표현하는 한글코드에는 조합형 한글코드라는 이름을 붙였다.
완성형 한글코드는 완성된 한글 음절 하나하나에 코드를 부여하는 방식이다. 예를 들어, ‘가’에 00001(실제로는 16 비트)이라는 코드를 부여했다면, ‘각’에는 00002, ‘간’에는 00003과 같이 코드를 부여하는 방식이다.
2 바이트 중 14 비트를 사용하게 되면 214인 16,384개의 코드를 표현할 수 있지만, 당시 ISO 2022라는 국제표준을 따르기 위해서는 8,836개의 코드만을 사용해야 했기 때문에 현대 한글 11,172자를 모두 표현할 수가 없게 되었다. 또한 여기에 한자 4,888자와 특수문자 및 나머지 문자 1,598자를 포함하게 되었는데, 이렇게 되고 나니 한글 표현을 위해서는 2,350자만이 남게 되었다.
결국 1987년 단 2,350자의 한글에 코드를 부여한 국가 표준 한글코드가 KSC5601-1987이라는 이름으로 발표되게 된다. 이 당시 2,350자의 한글을 선택하면서, 현재의 한글 사용 실태를 조사할 때 2,350개의 한글만으로도 충분히 모든 표현이 가능하다고 했었지만 문제는 곧바로 발생하게 된다.
KSC5601-1987이 발표된 후 3년이 지난 1990년 MBC에서 연규진과 신신애 주연의 ‘똠방각하’라는 드라마를 방영하게 되었는데, 이 드라마 제목에 있는 ‘똠’자가 KSC5601-1987에 들어가 있지 않은 것을 발견하게 된다. 그 당시 최고의 인기를 누리고 있던 드라마의 제목을 컴퓨터에 입력할 수 없게 된 코미디 같은 일이 벌어지자 이후 몇 차례에 걸쳐 완성형 한글코드에 대한 확장 작업이 이루어졌는데, 현대 한글 11,172자를 모두 표현할 수 없는 한 모두 미봉책에 그치고 만다. 자주 사용되는 것이지만 KSC5601-1987에 없는 한글의 예를 몇 가지 더 들어보면, 펲시콜라의 ‘펲’, 워크샾의 ‘샾’ 등이 있다.
올해로 KSC5601-1987이 발표된 지 23년이 지났다. 이렇게 오랜 세월이 지났으니 이제는 우리 삶과 KSC5601-1987은 아무 상관이 없을 것이라고 생각하기 쉽겠지만, 천만의 말씀 만만의 콩떡이다. KSC5601-1987은 태어난 지 23년이 지난 지금까지도 우리 삶에 깊은 영향을 끼치고 있다. 이것을 확인하는 것은 아주 쉽다. 지금 바로 여러분이 사용하고 있는 휴대폰을 꺼내 SMS 문자 메시지로 ‘똠’, ‘펲’, ‘샾’을 입력해 보라. 최신 스마트폰에서야 문제없이 입력이 될 것이지만, 대부분의 일반폰에서는 문자 입력이 되지 않는다. 우리 집에서 확인한 결과 필자가 사용하고 있는 갤럭시S에서는 문자 입력에 문제가 없지만, 아내와 딸아이가 사용하는 일반폰에서는 입력이 되지 않았다. 이유는 단 한 가지, 이들 휴대폰에서는 아직도 KSC5601-1987을 사용하고 있는 것이다! (2편으로 이어집니다.)
필자 채진석은
1964년 서울생. 어린 시절을 부산에서 보냈고, 서울대학교 컴퓨터공학과에서 1998년 박사학위를 받았다. 1997년 한국학술재단 부설 첨단학술정보센터에서 전국 대학도서관의 목록 데이터를 통합하여 종합목록을 구축하는 사업에 참여했으며, 1998년 8월부터 인천대학교 컴퓨터공학과에서 학생들을 가르치고 있다. 우리 사회의 어려운 이웃들과 친구되기 운동을 펼치는 사회복지법인 한벗재단에서 이사로 일하면서, 장애인들의 컴퓨터 사용을 도와주는 정보통신 보조기기와 접근성을 높이는 소프트웨어 개발에 힘쓰고 있다. 정보화 역기능 및 정보격차 해소에 기여한 공로로 2009년 12월 행정안전부 장관 표창을 받았다.
'=====지난 칼럼===== > 채진석의 '컴 ON'' 카테고리의 다른 글
"보물을 찾고 싶으면 암호를 풀어라" 쫓고 쫓기는 암호학의 세계 (0) | 2011.01.17 |
---|---|
소수, 그 치명적인 유혹 (0) | 2010.12.16 |
브라우저 WAR? 워워~ (3) | 2010.11.17 |
스마트폰과 삼신할매의 결투 (5) | 2010.10.18 |
억(!!!!!)소리 나는 훈민정음의 위력 (0) | 2010.10.06 |