국어 정보화

한글 자모의 배열 순서

이승재 국립국어연구원

우리는 국어사전에서 단어를 찾을 때 가나다순으로 찾는다. ‘자라’와 ‘잔디’를 찾고자 한다면 ‘롁’ 항목의 앞 부분에서 ‘자라’를 찾고 ‘잔’으로 시작하는 항목에서 ‘잔디’를 찾게 된다. 분명 ‘잔디’는 ‘자라’의 뒷부분에 배열되어 있다. 그런데 자모 글자에서 ‘자라’와 ‘잔디’는 다음과 같이 풀어 쓸 수 있다.

자라 → ㅈㅏㄹㅏ
잔디 → ㅈㅏㄴㄷㅣ

풀어 쓴 이들 자모의 순서를 앞에서부터 단순 비교하면 ‘ㅈㅏ’까지는 서로 같으므로 문제가 없다. 그런데 ‘ㅏ’ 다음의 자모를 보면 ‘자라’는 ‘ㄹ’이 결합되어 있고 ‘잔디’는 ‘ㄴ’이 결합되어 있다. 그래서 풀어 쓴 자모의 배열을 가지고 ‘자라’와 ‘잔디’를 가나다순으로 배열하면 ‘ㅏ’ 다음에 ‘ㄴ’을 가진 ‘잔디’가 ‘ㄹ’을 가진 ‘자라’보다 앞에 와야 한다. 그러나 국어 사전의 순서는 이와 반대이다. 왜냐하면 이들 단어의 첫 글자인 ‘자’와 ‘잔’만을 비교하면 ‘잔’보다는 ‘자’가 앞에 와야 하기 때문이다.


한글 코드의 가나다순도 음절 단위로 적용되어야

이처럼 한글은 초성, 중성, 종성을 음절 단위로 모아 쓰기 때문에 가나다순 정렬을 할 경우에도 비교의 단위를 자소로 할 것이냐 음절로 할 것이냐에 따라 위와 같이 다른 결과가 나오게 된다. 한글 맞춤법에는 정렬 순서의 비교 단위를 음절로 한다는 조항이 어디에도 나와 있지 않지만 우리는 암묵적으로 사전에서 단어를 찾을 때 음절 단위로 글자를 비교한다.
   현재 사전이나 컴퓨터 한글 코드에서 참고로 하고 있는 한글 자모의 배열 순서는 다음과 같이 한글 맞춤법 제4항 붙임 2와 그 해설에 따른 것이다.

자음(19자) : ㄱ ㄲ ㄴ ㄷ ㄸ ㄹ ㅁ ㅂ ㅃ ㅅ ㅆ ㅇ ㅈ ㅉ ㅊ ㅋ ㅌ ㅍ ㅎ
모음(21자) : ㅏ ㅐ ㅑ ㅒ ㅓ ㅔ ㅕ ㅖ ㅗ ㅘ ㅙ ㅚ ㅛ ㅜ ㅝ ㅞ ㅟ ㅠ ㅡ ㅢ ㅣ
받침(27자) : ㄱ ㄲ ㄳ ㄴ ㄵ ㄶ ㄷ ㄹ ㄺ ㄻ ㄼ ㄽ ㄾ ㄿ ㅀ ㅁ ㅂ ㅄ ㅅ ㅆ ㅇ ㅈ ㅊ ㅋ ㅌ ㅍ ㅎ

한글의 정렬이 음절 단위로 이루어진다는 특성은 컴퓨터에서 쓰이는 한글 코드에도 그대로 반영이 된다. 현재 쓰이고 있는 한글 코드는 영문 두글자에 해당하는 2바이트 문자를 한글 한 음절로 계산하여 코드 체계를 만들었기 때문에 한글 코드의 정렬 순서도 음절을 단위로 하게 된다.


올바른 한글 코드는 가나다순 정렬이 바로 되어야

컴퓨터에서 한글을 가나다순으로 정렬하기 위해서는 한글 코드의 순서를 가나다순으로 정해 주어야 한다. 완성된 한 음절의 글자 자체가 하나의 값을 가지고 있는 완성형 한글 코드에서는 정해진 2,350자의 한글을 사전 순서에 따라 배열하여 한글 코드의 순서를 정하면 된다.
   그런데 완성형 한글 코드는 2,350자만을 한글 코드에 배열시켰기 때문에 이 코드 안에 없는 글자들을 추가하려고 하면 문제가 생기게 된다. ‘닁큼, 똠방각하’ 등의 단어에 들어 있는 '닁, 똠’은 완성형 한글 코드에 들어 있지 않은 글자들이다. 이 글자들은 사전 배열 순서로 보면 '닁'은 ‘늿’과 ‘닂’ 사이에, ‘똠’은 ‘똘’과 ‘똡’ 사이에 자리를 잡아야 한다. 그러나 완성형 한글 코드는 글자와 글자 사이에 빈 공간(코드 영역)이 없기 때문에 이들 글자를 해당 위치에 끼워 넣을 수가 없다. 그래서 이들 글자를 추가하려면 2,350자의 마지막 ‘ㅎ’ 항목 다음에 별도의 공간을 만들어 이들 글자를 배열해야 한다. 그렇게 되면 한글을 코드순으로 정렬시켰을 때 ‘닁, 똠’과 같은 글자들이 ‘ㅎ’ 다음에 오게 된다. 그래서 한글을 가나다순으로 정렬하기 위해서는 별도의 프로그램을 추가해 주어야 한다.


한글 가나다순 정렬을 위해서는 자음, 모음, 받침에 쓰이는 글자를 모두 고려해야

그러나 조합형 한글 코드의 경우는 한글 한 음절에 해당하는 2바이트(16비트)를 5비트씩 세 부분으로 나누어 초성, 중성, 종성을 표현하고 있기 때문에 위와 같은 문제는 없는 대신 초성, 중성, 종성에 대한 자모의 배열 순서를 각각 지정해 주어야 한다. 위에 보였던 자음, 모음, 받침에 쓰이는 글자들은 그대로 조합형 한글 코드의 초성, 중성, 종성을 구성하는 글자로 쓰인다. 그리고 위에 나온 글자들의 배열 순서는 사전에도 그대로 적용이 되고 조합형 한글 코드에도 그대로 반영되어 있다.


한글의 자모로 조합 가능한 글자의 수는 11,172개

그렇다면 우리가 조합형 한글 코드로 조합하여 만들 수 있는 글자의 수는 얼마나 될까? 초성과 중성에 쓰이는 자음과 모음의 숫자는 한글 맞춤법 규정과 다를 것이 없다. 그러나 받침의 경우는 사정이 조금 다르다. 우리말은 받침이 없는 경우가 있기 때문에 받침이 없는 경우에도 한글 한 글자에 해당하는 2바이트(16비트)를 만들기 위한 5비트의 종성을 채워줄 수 있는 채움 문자가 필요하다. 그래서 조합할 수 있는 받침의 수는 한글 맞춤법에 나온 27자에 채움 문자 한 글자가 더 들어간 28자로 계산하여야 한다. 따라서 조합형 한글 코드로 만들어 낼 수 있는 글자의 수는 19(초성)×21(중성)×28(종성)=11,172개이다. 물론 이는 이론적으로 가능한 숫자이고 조합 가능한 모든 글자가 실생활에서 쓰이는 것은 아니다.