세종대왕과 한글코드 : 두번째 이야기
채진석 교수(인천대학교 컴퓨터공학과)
위의 글은 1446년 9월 상한에 정인지 선생님이 쓰신 훈민정음 해례본의 서문 첫 구절이다. 세상에 천지자연의 소리가 있다면 반드시 천지자연의 글자가 있어야 하는 것이다. 지금으로부터 564년 전 세종대왕이 꿈꾸었던 한글 창제의 궁극적인 목표는 바로 이것이 아닐까. 세종대왕은 천지자연의 모든 소리를 받아 적을 수 있는 문자를 꿈꾸며 훈민정음을 창제했던 것이다.
그러면 세종대왕이 훈민정음을 창제할 당시 글자를 조합하는 원리를 살펴보자.
먼저 초성의 경우 자음을 1자에서 3자까지 합해서 쓸 수 있었다. 이것은 중세에 발간된 문헌에 나오는 ‘ㅴ’와 같은 경우에서 찾아 볼 수 있다. 중성의 경우에도 모음을 1자에서 3자까지 합해서 쓸 수 있는데, ‘ㅙ’와 같은 경우가 그런 경우이다. 종성의 경우에는 終聲復用初聲(종성부용초성)이라는 원칙을 통해 종성을 따로 만들지 않고 초성을 그대로 사용하도록 했으니 초성과 마찬가지로 자음을 1자에서 3자까지 합해서 쓸 수 있는 것이다.
동국대학교 변정용 교수님의 계산에 따르면, 이렇게 했을 때 초성으로 표현 가능한 문자의 개수는 17+17Π2+17Π3 = 5,219자가 되고, 중성의 경우는 11+11Π2+11Π3 = 1,463자, 종성의 경우는 초성에 1을 더한 값인 5.220자가 된다. 따라서 훈민정음이 표현할 수 있는 전체 글자의 수는 5,219×1,463×5,220 = 39,856,772,340개가 되는데, 이것을 숫자에 약한 독자들을 위해 반올림하여 읽기 쉽게 나타내면 훈민정음이 표현할 수 있는 전체 글자의 수가 놀랍게도 무려 약 400억 개가 되는 것이다.
400억 개의 문자!
세종대왕은 깊은 숲 속에서 시냇물이 흘러가는 소리, 대나무 숲을 스치는 바람 소리, 파도에 쓸려가는 자갈 구르는 소리 등 천지자연의 모든 소리를 다 받아 적는 문자가 되려면 문자의 개수가 적어도 400억 개는 되어야 한다고 생각했던 것이리라. 그렇지 않고서야 이렇게 복잡한 문자 조합 규칙을 만들 이유가 어디에 있겠는가?
그런데 오늘날에 와서 세종대왕의 창제 원리는 어디론가 모두 사라지고, 400억 개의 표현 가능한 문자 중에서 손톱의 때만큼도 되지 않는 2,350자를 국가 표준 한글코드로 정한 것이다.
화제를 약간 바꾸어 1990년대 초반 한글코드 역사에서 잊혀지지 않을 매우 기발하고도 특이한 한글코드에 대해 알아보자. 당시에 사람들은 이것을 청계천 한글코드라고 불렀다. 이것은 다른 한글코드와는 달리 컴퓨터 전문가에 의해서가 아니라 세운상가의 컴퓨터 판매상들에 의해 만들어졌기 때문에 이런 이름이 붙여지게 된 것인데, 이들은 컴퓨터의 그래픽 카드와 같이 한글코드를 처리할 수 있는 하드웨어를 만들어서 청계천 한글카드라는 이름으로 판매하여 짭짤한 재미를 보았다. 1992년 당시 기록을 살펴보니 한글카드 1개의 가격이 무려 10만원이었다고 한다. 18년전 10만원이 얼마나 큰 돈이었을지 상상해 보라.
그 당시 KSC5601-1987을 사용하여 응용 프로그램을 만들던 프로그래머들은 아주 곤란한 문제에 봉착해 있었는데, 그것은 DOS 환경에서 프로그램의 메뉴를 만들 때 수평선이나 수직선을 나타내는 그래픽 문자와 한글코드가 충돌하여 메뉴의 경계선이 깨져 버리는 것이었다. 이 때 주로 나타나는 문자는 일상생활에서는 거의 사용되지 않는 ‘뀁’이라든지 ‘쇘’과 같은 것이었는데, 모니터에 직선으로 표시되어야 할 자리에 ‘뀁뀁뀁뀁뀁’이라든지 ‘쇘쇘쇘쇘쇘’과 같은 문자가 표시되는 것은 프로그래머의 입장에서 보면 거의 재앙에 가까운 일이었다.
이 문제를 해결하기 위해 이들이 주목한 것은 영어 단어를 두 글자씩 나누어 볼 때 주로 ‘대문자+소문자’와 ‘소문자+소문자’ 패턴은 자주 나타나지만, ‘소문자+대문자’ 패턴은 거의 나타나지 않는다는 사실이었다. 따라서 영문 소문자와 대문자가 연속해서 나오는 부분이 있으면 이것을 바로 한글로 변환시켰는데, 예를 들어, 문장 중에 ‘aA’가 나오면 ‘가’로, ‘aB’가 나오면 ‘각’으로 변환하는 것이다. 일단 이 코드를 사용하게 되면 응용 프로그램에서 이상한 문자가 나오는 문제는 말끔히 해결할 수 있었다. 당시의 프로그래머들은 없는 살림에도 거금을 들여서 청계천 한글카드를 구입하여 사용하곤 했는데, 필자도 그 중의 한 명이었다. 그런데 청계천 한글카드를 장착하고 나서 당시 널리 사용되던 dBase라는 프로그램을 실행시키면 화면에 ‘dBase’가 아니라 ‘늦ase’가 나타나는 게 아닌가! 그 이유는 ‘dB’라는 패턴에 ‘늦’이라는 한글이 할당되어 있었기 때문이었다. 이렇게 청계천 한글코드는 잠깐 세상을 풍미하다가 윈도 운영체제의 등장과 함께 시장에서 완전히 사라지게 되었다.
KSC5601-1987이 발표된 이후에도 조합형과 완성형 사이에서 혼미를 거듭하던 한글코드는 전세계 문자를 모두 표현하고자 하는 목표를 가지고 출범한 유니코드라는 것이 제정되면서 새로운 돌파구를 찾게 된다. 유니코드는 2 바이트 16 비트를 완전히 사용하는 코드로 216인 65,536개의 문자를 표현할 수 있도록 설계되었다.
언뜻 보기에 65,536개가 많은 것 같지만 그 속에 한자를 넣어야 하기 때문에 결코 많은 수가 아니다. 컴퓨터 판매상들에게 중국은 절대 무시할 수 없는 존재인데, 그 이유는 중국에 10억이 넘는 사람들이 살고 있기 때문이다. 따라서 중국에 프로그램을 팔기 위해서는 최소한 현재 중국인이 사용하고 있는 대부분의 한자를 포함해야만 한다. 현재 유니코드에는 약 3만자 정도의 한자가 포함되어 있다고 하는데, 이는 유니코드 전체의 약 절반 정도를 차지한다.
그런데 중국에서 사용되는 한자의 가장 큰 문제점은 사회가 발전해 감에 따라서 계속해서 새로운 글자가 만들어지고 있다는 것이다. 확인되지 않은 소문에 따르면 중국에서는 자식이 태어났을 때 지금까지 한 번도 사용되지 않은 한자를 사용하여 아이 이름을 지어주는 풍습이 있다고 한다. 그런데 이 아이가 그냥 시골에서 조용히 살고 있으면 별 문제가 없겠지만, 중앙 정계로 진출하여 고위직에 오르기라도 한다면 새로운 한자를 컴퓨터로 표현하기 위해 새로운 코드를 부여해야 할 것이다. 또한 요즘 중국에 가면 上 자와 下 자를 위아래로 붙여 놓은 글자를 자주 볼 수 있는데, 이것은 과거에는 없던 한자로 신용카드를 나타내는 카드 카(卡)자라고 한다. 이렇게 중국에서는 계속해서 새로운 한자가 추가되고 있는데 유니코드에서 수용할 수 있는 코드의 개수는 정해져 있으므로 앞으로 큰 골칫거리가 될 것으로 예상된다.
유니코드에서 다음으로 많은 부분을 차지하고 있는 것은 한글이다. 많은 사람들의 노력으로 유니코드에 현대 한글로 표현 가능한 11,172자 모두가 완성형 한글코드 형태로 모두 포함되고, 훈민정음 창제 이후 문헌에 사용된 모든 문자를 표현할 수 있는 조합형 한글코드도 함께 포함되어 이제는 일반적으로 컴퓨터를 사용하는 데 큰 불편을 느끼지는 않게 되었다.
그러나 1991년 한글날이 공휴일에서 제외된 지도 어언 20년이 흐른 지금, 다음과 같은 부질없는 생각이 뇌리를 스친다.
앞으로 우리 민족에게 세종대왕이 꿈꾸던 400억 개의 문자로 천지자연의 모든 소리를 다 받아 적는 문자 혁명이 일어날 수 있을 것인가?
필자 채진석은
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 |
휴대폰에 '똠방각하'를 입력해봅시다, 잘 되십니까? (4) | 2010.10.06 |