최근 수정 시각 : 2024-12-02 22:43:52

남북한 한글 코드의 충돌 문제

한글 전산화
<colbgcolor=#dddddd,#212121> 한글 인코딩 조합형 · 완성형( 한글 목록 · 중복 한자 · CP949) · 조합형 완성형 논쟁 · 남북한 한글 코드의 충돌 문제 · 한컴 2바이트 코드 · 한글 채움 문자() · 유니코드 · 옛한글
타자기 키보드 두벌식 · 세벌식( 일반 자판 · 속기 자판) · 휴대전화 입력기 · 한영 키

1. 개요2. 한글과 유니코드3. 남북간 차이
3.1. 정렬 순서 비교표
4. 북한의 유니코드 무시

1. 개요

과거 한국 북한에서 사용하는 한글 코드 체계의 차이로 인해 발생했던 한글 코드의 충돌 문제를 설명한다.

한국과 북한은 6.25 전쟁을 거쳐 둘로 갈라지면서 서로 다르게 변화해 나갔다. 한글도 예외가 아니어서, 일단 쓰는 글자는 같지만 한국과 북한의 한글 정렬 순서가 서로 달라져 버렸다. 한국은 광복 이전부터 쓰던 순서를 그대로 쓰고 있고, 북한은 아예 순서를 자체적으로 새로 만들었다. 그래서 컴퓨터의 한글 표현 체계도 남북이 서로 다르게 되어 있었다.

문제는 전세계 컴퓨터에서 표준으로 사용하는 유니코드 체계에는 한글 순서가 한국 순서대로 반영되어 있다는 점이다.

2. 한글과 유니코드

유니코드 1.0과 1.1에 있었던 한글은 KS X 1001 완성형을 기반으로 하고 있는 터라 없는 글자도 많았고, 정렬 방식도 문제가 많았다. 이에 한국측 대표가 현대 한글 11,172자를 전체적으로 재배열해서 새 영역에 재배당할 것을 요청했고, 이것이 받아들여져서 1996년 발표된 유니코드 2.0 버전에서는 한국의 정렬 순서대로 11,172자가 새 영역에 배당되었다.

2000년경에 북한이 이를 문제삼아 한글 11,172자를 자기네들이 쓰는 방식대로 재정렬해 줄 것을 요청했으나 한글은 이미 한번 대이동을 거친데다 2.0 버전부터 수립된 '한번 배당된 문자는 옮기거나 없애지 않는다'는 정책에 위배된다는 이유로 거부당했다. 그 정책이 없었거나, 한국에서 먼저 정립하지 않았다면 한국에서만 국제 표준에 위배되는 문자 배열을 쓰거나 북한의 정렬 방식에 의거한 문자 배열을 썼을 수도 있다. 그리고 북한은 코드 순으로 정렬하면 북한식으로 제대로 정렬이 되지 않는다는 것도 문제삼았지만, 단순 코드 순 정렬은 어차피 그 어떤 문자 체계에서도 적절하지 않으며, 정렬은 따로 테이블을 만들어서 해야 한다. 로마자조차도 코드 순으로 정렬하면 대문자 Z가 소문자 a보다 앞에 오고, 한국에서도 한자는 한글 음절 순서로 정렬해야 하므로 코드순으로 정렬할 수 없다.

3. 남북간 차이

정렬/순서 항목도 참고.
구분 한국 북한
쌍자음 예사소리의 바로 다음으로 정렬된다.[1] 별개의 글자로 취급되어 ㅎ 다음으로 정렬된다.
종성의 경우도 같다.
초성 ㅇ ㅅ과 ㅈ 사이로 정렬된다. 맨 마지막(ㅉ의 다음)으로 정렬된다.
모음 기본 모음과 복합 모음이 함께 정렬된다. 기본 모음과 복합 모음이 따로 정렬된다.

3.1. 정렬 순서 비교표

아래 표에서 종성에 있는 X는 종성이 없는 경우를 뜻한다.
순서 초성 중성 종성
한국 북한 한국 북한 한국 북한
1 X X
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

4. 북한의 유니코드 무시

한때 북한은 한국 순서를 기준으로 배당된 유니코드 2.0의 한글 영역이 마음에 안 들어서, 유니코드 한글 영역을 자기들 순서에 맞게 제멋대로 사용했다. 예를 들어, 북한에서 자기들만의 비표준 유니코드 방식으로 표현된 '가는 길 험난해도 웃으며 가자'라는 문장을 유니코드 표준으로 맞춰 보면, '가꼯 괃 쟗깏좨너 혒호떄 가바'라는 괴이한 문장이 된다. 링크[2] 거꾸로 유니코드 표준의 '가는 길 험난해도 웃으며 가자'를 북한식으로 바꾸면 '가둱 궭 옵닩야르 폥풔수 가하'가 된다.

그러니까 맨 처음의 '가'와 '각'은 남북이 둘 다 정렬 순서가 같지만, 나머지 글자들은 그렇지 않기 때문에 전혀 다른 글자로 둔갑해 버린다. 앞에서 예로 든 '가는 길 험난해도 웃으며 가자'에서 '는'이라는 글자는 북한 순서를 기준으로 하면 초성 2, 중성 9, 종성 4이다. 하지만 한국 순서를 기준으로 초성 2는 ㄴ이 아니라 ㄲ이고 중성 9는 ㅡ가 아니라 ㅗ이며 종성 4는 ㄴ이 아니라 ㄳ이기 때문에 '는'이 아닌 '꼯'으로 변해 버리는 것이다. 반대로 한국 순서 기준으로 '는'은 초성 3, 중성 19, 종성 5이며, 북한 순서에 적용하면 초성 3은 ㄷ, 중성 19는 ㅝ, 종성 5는 ㄵ이므로 '둱'이 된다.

그러나 북한의 유니코드 무시는 어느 시점에서 멈췄다. 한국을 상대로 자행했던 사이버테러를 시행하는 단계에서의 충돌 때문에 그런 것이 아니냐는 추정, 또는 DBMS, 각종 모니터링 툴 등이 전부 한국 표준에 맞춰져 있어 발생하는 문제 때문이 아니냐는 추정 등 추측만 무성하다. 진실은 저 너머에. 북한이 2010년에 출시한 붉은별에서는 유니코드의 한글 영역을 한국과 똑같이 표준대로 쓰고 있는 것이 확인되었다. 즉 '는'을 표현하는 데 U+AF2F가 아니라 유니코드 표준대로 U+B294를 사용한다. 공식적으로 대외에 내보내는 사진에는 윈도우 XP를 사용하는 경우도 목격되었다 카더라(...)[3] 인터넷이든 소프트웨어든 그 규모는 날이 갈수록 커지고 개발과 이용을 위한 국제적 연결의 강도도 강해지는 세계적 추세 속에서 기껏 한글코드의 자존심 하나 지키겠다고 한국 언어에 맞춰 나오는 전 세계에서 나오는 모든 소프트웨어를 일일이 자기 손으로 로컬라이징 하는 것도 비효율적인 일이고 그 와중에 각종 대남공작을 포함한 국제적인 활동의 상당 부분은 또 한국 한글 코드를 사용하는 과정 속에서 온갖 전산 오류가 속출할 것은 뻔한 일인지라 자존심 하나 믿고 사는 북한에서도 더 이상 지속할 수 없었을 것으로 보인다.

[1] 사실 한국에서 이게 확립된 것은 1989년의 일이다. 그 전에는 명확한 규정이 없어서 쌍자음을 예사소리와 같이 둔 사전도 있고, 맨 뒤로 뺀 사전도 있다. 즉 까마귀가 거문고보다 먼저 나오는 사전도 있었다. 사전마다 달랐던 것이다. [2] '가'만 제대로 나온 이유는 위쪽의 표에서 보다시피 'ㄱ'와 'ㅏ'만 위치가 같기 때문이다. [3] 1990년대 후반에 촬영되었을 것으로 보이는 자료화면 중에는 컴퓨터 화면상의 윈도우 작업표시줄 모양이 XP 이전의 모습으로 뜨는 걸 봐서는 9x 계열의 윈도우 또한 사용했을 것이다. 그런데, 정황상 핵개발과 관련된 컴퓨터 화면이 비춰졌겠다 싶으면 기분 탓일 것이다(...)