국어 정보화

한글과 한자의 정렬 방식

이승재(李承宰) / 국립국어연구원

 

한글과 한자를 같이 정렬할 때는 기준이 달라져야

컴퓨터가 한글 자모를 정렬하기 위해서는 한글 자모에 쓰인 한글 코드를 검색하여 그것을 기준으로 배열을 한다. 즉 숫자로 되어 있는 한글 코드를 가지고 정렬을 하는 것이다. 그런데 우리말의 경우에는 한자를 쓰는 경우가 있기 때문에 한글 코드만 가지고는 올바른 정렬을 할 수가 없다. 왜냐하면 한자 코드는 한글 코드의 뒤에 배열되어 있기 때문이다.

 

정순 순방향 코드순 정렬

정순 순방향 발음순 정렬

국가

국가

애국가

國家

행성

大韓民國

國家

애국가

大韓民國

太極旗

太極旗

행성

 

왼쪽에 있는 목록을 코드순으로 정렬하면 한글의 정렬이 된 다음 한자의 정렬이 이루어져 한자가 항상 한글의 뒤에 오게 된다. 위 목록에서 같은 음을 가진 ‘국가’라도 한자로 된 ‘國家’는 마지막 한글 단어인 ‘행성’ 뒤에 온다. 그러나 이들은 모두 발음을 기준으로 하여 오른쪽 예와 같이 통합 배열되어야 한다. 그래서 한글과 한자가 함께 쓰인 문서를 가나다순으로 정렬하기 위해서는 오른쪽 목록과 같이 발음순으로 정렬을 해야 한다. 그러기 위해서는 발음순으로 된 코드 목록을 프로그램에 별도로 넣어 주어야 한다.

한자를 정렬할 때는 한자음을 고려해야

한자는 이 밖에도 한 글자가 여러 음을 갖는 경우를 고려해야 한다. ‘讀’의 경우 일반적으로는 ‘독서(讀書)’에서와 같이 ‘독’으로 읽히지만 ‘구두점(句讀點), 이두(吏讀)’ 등에서는 ‘두’로 읽힌다. 그래서 ‘讀’이 쓰인 단어를 정렬하기 위해서는 그 한자의 음이 ‘독’인지 ‘두’인지를 먼저 확인해야 한다.   왜냐하면 한자가 입력되어 있는 상태로 정렬을 할 경우 음이 ‘독’이면 ‘도’ 다음에 배열해야 하고 ‘두’이면 ‘됴’ 다음에 배열해야 하기 때문이다.   그런데 우리가 워드프로세서를 사용하다가 ‘독’을 치고 한자 변환을 하여 입력한 ‘讀’과 ‘두’를 치고 한자 변환을 하여 입력한 ‘讀’를 나중에 다시 한글로 변환하면 신기하게도 이들이 각각 원래의 ‘독’과 ‘두’로 바뀐다. 이것은 컴퓨터에 들어 있는 한자가 ‘독’의 위치에 ‘讀’이 들어 있고 ‘두’의 위치에도 ‘讀’이 들어 있기 때문에 가능한 것이다. 그래서 컴퓨터의 한자 코드는 한 글자가 여러 음을 가질 경우를 대비하여 한 글자를 음 순서대로 여러 위치에 배정하여야 한다. 그래야만 한글과 한자를 정렬했을 때 이들이 발음 순서대로 가나다순에 맞게 배열된다.