완성형
1. 개요
한글 인코딩 방식 중 하나. 현재 산업 표준이기도 하며, 표준 번호는 KS X 1001(옛 번호 KS C 5601)이다. 1974년에 처음으로 제정되었고, 1987년 버전(KS C 5601-1987)이 널리 알려져있다. 인코딩은 EUC-KR(Code Page 51949)로 이루어진다. 이 문서에서는 이 KS X 1001 표준에 대해 주로 서술한다.
글자 코드 세트에 쓸 문자를 현대 한글의 모든 글자(11,172자) 중에서 사용빈도가 높은 글자만 추려내어, '가'부터 '힝'[1] 까지 죄다 배당한 후 문자를 기록하는 방식으로, 가령 '속'이라는 글자를 기록한다면 가, 각, 간, 갇, 갈, 갉, 갊…으로 쭉 찾아가다가 0xBCD3로 표현하는 방식이다.
완성형 한글 2,350자의 목록은 완성형/한글 목록/KS X 1001 참고. 특수 문자 목록은 완성형/특수 문자 참고. 한자 목록은 한자/KS X 1001 참고.
2. 장점
외국어나 특수문자와 같이 이용하는 것을 미리 가정하고 만들었기 때문에 조합형에 비해 국제 표준과 충돌이 적다는 장점이 있다. 여기서 말하는 국제 표준이란 ISO/IEC 2022로 유니코드가 등장하기 이전에 여러 종류의 문자 집합을 함께 쓰기 위한 표준이었는데, 구조적으로 94개, 96개, 94² = 8,836개[2] 의 문자를 담을 수 있는 n바이트 문자 집합을 갈아 끼우는 식이었다. 본래 2바이트를 사용하면 1바이트(8비트)의 개수가 256개이니 256² = 65,535개의 개수가 나오지만, 이 방식은 아스키 코드의 확장 영역을 n바이트로 확장해서 사용하는 것이기 때문에 실제로는 맨 첫 비트가 1로 시작되는 뒷부분 128개의 영역을 2개 이상 붙여서 쓸 수밖에 없다. 앞부분을 썼다가는 아스키 코드와의 호환성이 없어지기 때문. 그래도 128² = 16,384개지만 여기서 34개가 더 빠진다. 아스키 코드 중 34개는 제어 문자이고, 이게 글자 코드를 7비트만 인식하는 컴퓨터 환경[3] 과 만나면 역시 충돌이 일어난다. 따라서 실제로 쓸 수 있는 영역은 1바이트당 94개밖에 남지 않는 상황이 된 것이다.
현대 한글은 당연히 8,836개로는 부족하기 때문에 일찌감치 타협을 보고 그 자리에 한자 등을 왕창 (중복도 포함해서) 배당한 것. 조합형은 이런 식으로 다른 표준들과 상호 교환해서 쓰는 게 원천적으로 불가능하다. 또한 글자수를 한정시킴으로써 표준적인 정서법, 특히 외래어 표기법을 억지로라도 지키게 만드는 효과까지 가져온다.[4]
3. 단점
미리 조합되어 있는 글자 외의 문자는 어떻게 해도 표시할 수 없다. 물론 사용되는 모든 글자가 포함된다면 문제가 없지만, 1987년에 최초로 만들어진 기본 완성형 코드의 한글 글자 수는 '''2,350자'''[5] 가 전부였다. 현대에 사용되는 한글 11,172자에 비하면 크게 부족했다. 당연히 조합형 완성형 논쟁에서 완성형의 가장 큰 단점으로 지목되었고, 이건 완성형 지지자들도 실드를 칠 수가 없는 문제였다. 물론 저 2,350자는 나름대로 빈도를 조사해서 선정한 것이기는 하지만, 현대 한글 글자 중 '''약 21%'''밖에 수록하지 못하고 있으니 아무래도 부족했다. 한글 자체가 원래 초성 + 중성 + 종성의 조합으로 이루어지는 조합형 문자인데 이걸 전부 한 글자 한 글자 만든다는 것도 비효율적이라는 이유로 완성형이 무시당하는 데 한몫 단단히 했다. 또, 그런 식으로 코드를 배당하다 보니 글자를 완성하는 과정이 개무시되었다. 가장 대표적인 피해자가 바로 '''"쓩"'''이다.[6] 분명 KS X 1001 코드 안에는 쓩이라는 글자가 있긴 있으나 '''"쓔"'''가 없어서 '''ㅆㅠㅇ'''이라고 쓰인다.
물론 지금의 완성형은 현대 한글에서 쓰일 수 있는 한글 조합자를 다 때려박았으므로 글자가 없어서 입력이 안 되는 문제는 존재하지 않는다. 그 대신 유니코드의 배당 공간을 너무 많이 잡아먹는다는 문제가 생긴다.[7] 게다가 유일하게 기본 영역에서 한 국가의 한 문자체계의 문자가 다수의 방식으로 중복해서 배당된 사례이다.
[image]
11번 한 칸이 조합형 한글이 배당된 칸이다. 그리고 AC부터 D7까지의 칸이 완성형 한글이 배당된 칸이다. 고작 7,000만 명만 쓰는 문자체계가 전세계 표준 문자 배당 시스템의 기본 영역의 슬롯을 1/6 이상 먹는다.
3.1. 완성형으로 쓸 수 없는 예시들
완성형이 외래어 표기법을 비롯한 한글 맞춤법을 강제하기 위한 목적이라는 주장도 있지만(실제로도 그런 효과가 있긴 하다), 막상 빈도 조사를 하면 완성형 2,350자만으로는 표준어조차 다 적을 수 없다. '''굵은 글씨'''가 완성형에 포함되지 않는 글자이다.
- 여깄다/저깄다('여기있다'/'저기있다'의 준말)
- 꺍하다(더 들어가지 못할 만큼 가득하다)
- 붴('부엌'의 준말)[8]
- 닁큼('냉큼'의 센말)
- 됭경모치(국내에 서식하는 어류)#, 됭케르크(대체명 덩케르크), 베르됭(프랑스의 도시 이름)
- 도럄직하다(= 도리암직하다, 되럄직하다. 얼굴이나 몸매가 동그랗고 똥똥하다)
- 하얬다('하얗다'의 과거형)
- 거칢('거칠다'의 명사형)
- 둥긂('둥글다'의 명사형)
- 여읩니다('여의다'의 존칭형)
- 사뢔/아뢔('사뢰어'/'아뢰어'의 준말. 정작 사뢨다, 아뢨다의 '뢨'은 완성형에 등록되어 있다.)
- 전홥니다('전화입니다'의 준말)
- 설렜다('설레었다'의 준말. 건네었다 → 건넸다와 같은 원리다)
- 누렜다/퍼렜다('누렇다'/'퍼렇다'의 과거형)
- 괐다('고다(고기나 뼈 등을 무르도록 오랫동안 끓이다)'의 과거형)
- 되놰/되뇄다('되뇌어'/'되뇌었다'의 준말. 되어 → 돼, 되었다 → 됐다와 같은 원리다)
- 시보귬(원소 이름)
- 섬찟(갑자기 소름이 끼치도록 무시무시하고 끔찍한 느낌이 드는 모양)[9]
- 어씃하다(마음이 호탕하고 의협심이 강하다)
- 좠다(조다(울퉁불퉁한 것을 고르게 다듬다)의 과거형)
- 으쌰으쌰(힘을 내는 모습. 정작 '썅'은 완성형에 등록되어 있다.)
- 수퍼마켙(슈퍼마켓의 옛 표기 중 하나. 지금도 '수퍼마켙'으로 표기된 오래된 점포들을 볼 수 있다.)
- 케잌(케이크의 옛 표기)
- 케챂(케첩의 옛 표기. 오뚜기에서는 지금도 '오뚜기케챂'이라는 이름으로 판매하고 있다. 케챺으로도 표기하였으며, 지금도 표기가 뒤죽박죽이라 케찹, 케챱, 케쳡 등으로도 표기한다.)
- 베르됭(프랑스 지명 Verdun)
- 루디 푈러(독일 축구 선수 이름)
- 포스코의 계열사에서 지은 아파트 이름인 더샾
- 중국 국수 뱡뱡면
- 궨트(영국의 주)
- 궬로(짐바브웨의 한 도시 궤루의 옛 이름)
- 세묜 부됸늬
- 안드리 솁첸코[10]
- 캪틴큐(롯데칠성음료에서 만든 대중 양주)
- 똠얌꿍
- 나카무라 슌스케
- 아이묭(일본의 싱어송라이터)
또한 한국어의 발음 표기를 위한 글자가 많이 빠져 있다는 점도 문제다. 예를 들어 발음 교육을 위해 '갈등', '물엿'의 발음이 /갈뜽/, /물렫/임을 표시하고자 할 때 '뜽', '렫' 자가 없어서 '갈등', '물엿'의 발음을 표기할 수 없다.
각 기업에 전산화가 시작되던 시점인 1990년 MBC에서 방영한 "똠방각하"라는 드라마는 완성형에 '''똠'''자가 없어서 프린터로 출력한 대본이나 편성표 등지에는 "돔방각하"로 표기를 해놓고 그대로 내보내거나 일단 "돔방각하"로 출력한 다음 볼펜 등을 사용해서 ㄷ을 ㄸ으로 고치는 등의 문제도 있었다. 당시 완성형의 단점으로 가장 많이 지목되던 부분이기도 했다.
[image]
2011년 네이트의 '오늘 운세'에서 마지막이 '''으?으?!'''로 끝나서 점술가가 점 보다가 급사했다며 유머짤로 퍼져나가다가 인터넷 유행어가 된 적이 있다. 글쓴이는 '으쌰으쌰!'라고 쓰고 싶었던 듯한데, EUC-KR에 '쌰'가 없어서 저런 참사가 일어났다. 실은 당시에도 EUC-KR 자체는 구닥다리 인코딩으로서 웹페이지 제작시 엄연히 표준이 아니었지만, 대부분의 메이저 사이트들이 EUC-KR을 사용했다. 심지어 HTML 교육에 사용된 예제들에서도 기본틀로 제시하는 문서가 EUC-KR이었으니 별 생각 없는 웹 디자이너들이 굳이 찾아서 바꾸지도 않았던 듯. 이러한 모습은 2010년대까지도 계속되었다. 2020년대 시점에서도 이 문제는 네이버 뉴스 등에 존재하며 가장 흔히 보이는 경우는 가운뎃점이 들어가는 경우. 최근에는 대통령의 발언이 깨져서 나오기도 했다. 원문은 위의 경우와 같은 '''으쌰으쌰'''.
긴급재난문자와 안전안내문자에도 같은 문제가 있다. 경남 창원시에서 코로나 확진자가 방문한 돈까스 프랜차이즈 매장 이름에 들어가는 '''쑝'''이라는 글자를 쓰지 못 해 쑈+ㅇ 으로 고쳐 안내하는 일이 있었다. 문자 내용
부산 수영구에서는 같은 프랜차이즈를 쏭(ㅆ+ㅗ+ㅇ)으로 고쳐서 안내했는데, 이 당시 지점명까지 잘못 안내하는 실수를 해서 논란이 된 적이 있었다. 확진자가 다녀간 매장으로 잘못 지목당하고 손님이 끊겨 폐업을 하게 된 점주가 청와대 국민청원 사이트에 글을 올렸는데, 이 소식을 전하는 뉴스에서도 브랜드 이름을 제대로 쓰지 못 하고 '숑'으로 고쳐서 보도되었다.
4. 통합 완성형 (확장 완성형)
그 후, 윈도우 95가 발매되면서 이 OS에 탑재된 UHC, 즉 통합 완성형(95 베타에서는 '확장 완성형'이라 하였음)이라는 코드가 다시 문제가 됐는데, 이 통합 완성형(CP949)이라는 코드는 원래 완성형에서 표시할 수 없는 2,350자 외의 글자들을 별도의 영역에 추가로 집어넣어서 만든 코드이다. 여기에 대해서 반발이 많자 윈도우 95는 기본 코드는 그대로 완성형으로 가고 확장 완성형은 기능만 넣어놓고 비활성화한 상태로 출시를 했다. 당시 윈도우 95에서는 '쓩'과 같은 2,350자 이외의 한글은 표현이 가능했지만 입력은 안 되는 병크가 있었다.
이후 논란이 잠잠해지자 윈도우 98에서 기본 코드로 채택해서 나오게 된다.
이 통합 완성형은 도스 및 윈도우 95 이전 버전의 프로그램과 충돌하는 문제도 자주 있었다. 때문에 일부 사람들은 윈도우즈 95를 사용하지 말자는 의견까지 내곤 했지만, 결과는 지금 보면 알 수 있듯이 MS의 승리. 그리고 2000년대 초중반 유니코드를 채택한 윈도우 XP로 넘어가면서 통합 완성형 사용빈도도 자연히 줄어들었다.
예외적으로 윈도우즈용으로 나왔던 프로그램 중에서도 조합형 한글을 사용했던 프로그램이 있는데, 아래아 한글 3.0 윈도우판이 그것. 옛한글까지 지원하는 아래아 한글로서는 필연적인 선택이었을 것이다. 프로그램 내부에서는 조합형으로 모든 글자를 처리하고, 프린터 등으로 글자를 보낼 때에만 확장 완성형으로 컨버팅을 해서 날리는 방식을 사용했는데, 당연히 효율이 무지 떨어졌고 윈도우 안에 있는 폰트는 하나도 이용할 수 없다는 치명적인 단점 때문에 이후 버전에서는 내부 라이브러리를 완전히 교체하기도 하였다. 교체 이후에는 윈도우에 설치된 폰트도 사용 가능해졌고, 이 방식은 한/글 97까지 계속 사용되다가 워디안부터는 유니코드로 교체되었다. 끝까지 완성형을 사용 안 하고 유니코드 시대가 올 때까지 버틴 유일한 프로그램이다. 그래서 예전 아래아 한글의 유틸리티들을 보면 작업 표시줄에서 프로그램 이름이 이상한 문자로 깨져 보인다. 이유는 타이틀도 조합형으로 저장해서. 어차피 윈도우에서 읽어들여야 하는 타이틀을 왜 깨지는 걸 알면서도 조합형으로 저장했는지는 의문이다.
5. 유니코드
이후 나온 유니코드는 완성형과 조합형을 둘 다 가지고 있는 코드이다. 현대 한국어의 자모 조합으로 나타낼 수 있는 모든 완성형 한글 11,172자[16] 와 조합형으로 쓰는 한글 초·중·종성(겹자모, 옛한글 포함)을 모두 가지고 있다. 당연히 여기서는 통합 완성형의 문제가 모두 해결되어 있다. 하지만 유니코드에서 조합형의 형태로 한글을 구현하는 경우는 별로 없는데, 조합형으로 한글을 구현하면 초성, 중성, 종성이 각각 글자 하나로 취급되면서 완성된 글자 하나의 코드 용량이 완성형보다 두세 배로 늘어난다. 조합형 한글 자모 하나하나가 UTF-8 규격에 따르면 3바이트라서 완성형 한 글자 전체와 같은 용량이기 때문이다. 이 문제 때문에 완성형에 없는 옛한글을 표현하는 용도 이외에는 잘 쓰지 않는다.
과거 완성형에서 유니코드로 넘어가던 시절에는 이런저런 문제가 많이 발생했다. 특히 웹 문서에서 문제가 자주 생겼는데, 페이지 인코딩은 EUC-KR로 해 놓고는 정작 EUC-KR에 포함되지 않는 한글(즉 통합 완성형에 추가된 한글)을 넣어서 깨지기도 하고, EUC-KR 페이지에서 확장 한글을 저장하는 방식이 웹 브라우저마다 달라서 한 웹 브라우저에서 저장한 글을 다른 웹 브라우저에서 열어 보면 제대로 표시되지 않기도 했다. 예를 들어 인코딩이 EUC-KR일 때 '뷁'을 IE에서는 '뷁'로 저장하고 파이어폭스에서는 'ㅤㅂㅞㄺ'(ㅂㅞㄺ 앞의 공백처럼 보이는 문자(한글 채움 문자)에 대해서는 이 문서 참고)으로 저장했는데, IE는 한글 채움 문자 표현을 지원하지 않으므로 파이어폭스에서 저장한 '뷁'을 IE에서 보면 그냥 ' ㅂㅞㄺ'으로 풀려서 보였다.[17] 그 최대 피해자 중 하나가 오위키 시절의 리그베다 위키. 이때 이를 해결하기 위해 많은 위키니트들이 열심히 노가다를 했다(모니위키로 이전한 뒤에는 UTF-8로 인코딩이 바뀌었으므로 더 이상 이런 문제가 없다).
2010년대 이후 이런 문제는 사실상 사라졌는데, 웹 환경이 UTF-8로 대부분 바뀐 데다 웹 브라우저의 한글 지원도 상당히 좋아졌기 때문이다. 거기다 OS도 유니코드를 기본으로 지원하고, 특히 윈도우는 Windows XP로 넘어오면서 아예 유니코드를 기본 문자 인코딩으로 채택했기 때문에 이런 문제는 거의 사라진 상태다. 고전 프로그램을 돌린다거나 공개적인 장소에서는 돌릴 수 없는 게임[18] 을 즐긴다든지 하는 문제가 아니라면 문자 인코딩 관련 문제는 보기 힘든 환경이 되었다.
6. 현재의 완성형
저 2,350자 기본 완성형은 아직도 메모리 용량에 목숨 걸어야 하는 일부 분야에서 사용되고 있는데[19] , 대표적인 분야가 피처폰과 중국산 스마트밴드류. 그렇기 때문에 일부 제조사의 핸드폰에서는 문자 메시지에서 '뷁'을 사용할 수 없다(…). 뿐만 아니라 앞서 언급한 '쓩' 같은 글자는 여전히 홍길동 신세를 탈출하지 못하고 있으며 심지어는 '뛔'도 마찬가지이다.[20] 그러나 이마저도 폰의 용량이 커지면서 서서히 사라지다가[21] , 스마트폰 시대가 오면서 유니코드로 대체되었다. 스마트폰에서 가장 많이 쓰이는 OS인 안드로이드나 iOS는 글로벌 환경을 지원하기 때문에 유니코드를 쓴다. 롬파일을 사용하는 게임의 한글패치를 제작할 때도, 프로그래밍에 정통해서 롬을 확장하지 않는 이상 들어갈 수 있는 글자 수가 정해져 있기 때문에, 완성형을 쓰는 경우가 있다.[22]
책을 컴퓨터로 편집하는 데 쓰는 프로그램의 대다수가 EUC-KR 방식만을 지원하기 때문에 일본어 이름을 지니고 있는 몇몇 인물들이 생고생을 하기도 한다.[23] 대표적인 예로 '''쿈'''과 '''슌'''을 들 수 있다. 실제로 일본 영화 러브레터가 국내에 수입될 당시, 당시에는 이 영화를 제작한 이와이 슌지(岩井 俊二, いわい しゅんじ) 감독의 '''슌''' 자를 제대로 표기할 수 없어 '''이와이 슈운지'''로 표기하는 경우가 잦았다. 또한 미즈노 슌페이는 미즈노 '''순'''페이로 개명당했다. 이외에 나카무라 순스케, 오구리 순도 마찬가지로 피해자가 되었으며, 창직물의 경우 마츠오카 슈운과 호조인 인슈운이 한국어 번역의 피해자가 되었다. 다만 이것은 인쇄할 때 쓰는 소프트웨어가 QuarkXPress '''구버전'''이어서 그렇고[24] , 최근에는 인디자인으로 많이 갈아타고 있어 조만간 해결될 가능성이 있다. 비단 이건 일본어 뿐 아니라 상술한 것처럼 다른 언어들도 해당되는 문제이다.
방송업계에서 쓰는 시스템도 완성형이라 특정한 단어들을 표현하는데 애를 먹기도 한다. 대표적인 예로 신화의 노래 '으쌰으쌰'는 '쌰'를 표현할 수 없어 '쌰'만 다른 프로그램을 이용해 다른 폰트를 사용하거나, 일단 '으'''싸'''으'''싸''''라고 쓴 다음 '싸'에 덧칠을 하는 식으로 표현했다. 이 시기 노래방 책자나 불법 복제 테이프 등에서도 ㅆ 따로 ㅑ 따로 해서 '으ㅆㅑ으ㅆㅑ'라고 표기되어 있기도 했다. 심지어 1990년에 MBC에서 방영한 드라마 똠방각하는 '똠' 자가 없어서 대본이나 편성표에는 '돔방각하'로 인쇄하는 경우도 있었다. 후에 같은 MBC에서 방송한 맨도롱 또똣도 마찬가지.[25] '똣' 자가 완성형에 없어서 일부 IPTV 등에서는 맨도롱 또'''돗'''으로 표기했다. 나온 지 얼마 안 된 곡인 오마이걸의 살짝 설렜어에서 '렜'도 완성형에 없는데, 이 때문에 시스템에서 완성형을 사용하는 금영엔터테인먼트 노래방 시스템에서는 "렛"으로 대체하여 표기하고 있다.
이는 '''대한민국의 행정 전산망'''도 예외가 아니다. 대한민국의 행정 전산망 역시 아직도 완성형을 쓰고 있기 때문에 일부 이름을 표기하지 못한다. 수기로 출생신고를 하던 시절에는 이런 상황을 예상할 수 없었을 것이니, 처음부터 이를 피해서 이름을 짓는 것도 불가능했다. 실제로 설'''믜'''[26] 라는 사람의 경험담을 보면 전산 시스템 때문에 엄청 고생하는 것을 알 수 있다.[27] 워낙 심각한 문제이다 보니 국립한글박물관 기획전에서도 비슷한 사연을 가진 분의 졸업증명서[28] 가 전시될 정도였고, 또 다른 '설믜'라는 이름을 가진 사람 역시 일상 생활에 불편을 겪은 나머지 청와대 국민청원에다가 자신의 사연을 올렸다.
또한 언리얼 엔진과 같은 외국산 엔진의 경우, 문자를 비트맵으로 불러들여 사용하기 때문에 알파벳이나 가나처럼 문자의 수가 정해져 있다면 문제가 없겠지만 한글처럼 조합하여 표시하는 경우 문자를 표시하기 위한 비트맵 크기가 어마어마해진다.[29][30]
물론 단점만 있는 것은 아니다. 국제 표준과 잘 맞아서 통신에 이용하기 수월하며, 글자가 순서대로 저장되어 있으므로 쉽게 오름차순/내림차순 정리가 가능하다는 장점이 있다(통합 완성형은 해당 안 됨. 그리고 조합형도 정렬은 됨).
포토샵 등에서 도깨비불 현상이 일어나면 그 부분에서부터 글꼴을 강제로 굴림체로 바뀌게 만드는 원인이기도 하다. 이쁘장하다 싶은 글꼴은 제작 시간과 글꼴 파일 용량을 절약하는 차원에서 '뛗', '쁎' 등 거의 쓰일 일이 없는 글자와 '똣', '훕' 등 사용빈도가 낮은 글자는 아예 빼 버리고 한글 영역에서 '''완성형만 집어넣기 때문에''', 여기에 없는 한글을 적게 되면 포토샵 쪽에서 해당 글자가 있는 글꼴로 바꿔 버리기 때문.[31] 물론 설정에서 안 바뀌게 만들 수는 있지만 글자 자체가 없는 것이 고질적인 문제.
7. 완성형에서의 한자
한자의 경우, 독음이 여러 개인 일부 한자를 그 독음 수만큼 중복 배당하는 정신 나간 짓을 저질렀다. 이에 대한 자세한 정보와 중복 한자의 목록은 완성형/중복 한자 문서 참고.
일본어에서 쓰이는 신자체를 지원하지 않아 기기묘묘한 표기법들을 양산했고 중국어에서 쓰이는 간체자 등의 상용자를 지원하지 않아서 중국 노래를 다루는 사이트 등지에서 해당 글자를 병음이나 파자해서 가사를 적곤 했다. 예) 你好 → ni好, 什么/什麼 → 什me 등.
8. 기타 완성형 코드
8.1. KS X 1002 (옛 번호 KS C 5657)
KS X 1001을 보충하기 위해 1991년에 만든 문자 집합이었으나... '''완전히 묻혔다'''. 정말 아무도 안 쓴다. 현대 한글 1,930자, 옛한글 1,675자, 한자 2,856자 등을 포함하고 있다. 이 글도 참고.
이 표준은 단지 1990년대 초반 당시에 유니코드와 ISO/IEC 10646에 한글(과 한자)을 더 집어넣기 위해 급조한 표준이라는 말이 있다. 물론 이 목적도 유니코드 2.0에 모든 현대 한글 11,172자가 완벽히 가나다순으로 들어가면서 사실상 의미가 없어졌다.
다만 저 중에서 한자 2,856자만은 살아남았다. 유니코드의 첫 통합 한자 set를 제정할 때 KS X 1002가 KS X 1001과 함께 한국 쪽 source의 하나로 들어갔고, Microsoft Windows의 기본 한국어 글꼴과 기본 한국어 IME는 저 2,856자를 지원한다.
KS X 1002의 현대 한글 목록은 완성형/한글 목록/KS X 1002 참고. 한자 목록은 한자/KS X 1002 참고.
8.2. 북한의 완성형 (KPS 9566)
북한에서도 완성형 코드를 사용하는데 남한의 KS X 1001과 비슷해 보이지만 전혀 다른 '국규[32] 9566'(KPS 9566)이라는 완성형 코드를 쓴다. 한글은 2679자,[33] 한자는 4653자 배당돼 있으며, 특징으로는 특수 문자 영역에 한글 6글자가 꼽사리 껴 있다. 그 6글자는 역시나''' '김, 일, 성', '김, 정, 일' '''이였다. 그리고 저 글자들을 유니코드에도 추가 신청했지만 당연히 거절당했다.(...)
국규 9566 표
그리고 2014년에는 '김, 일, 성', '김, 정, 일' 바로 뒤에''' '김, 정, 은' '''이 추가된 것이 확인되었다. 링크한 스크린샷은 붉은별 3.0 서버용의 화면을 찍은 것이며, 출처는 이 글이다.
국규 9566의 한글 배열 순서를 보면 남한의 KS X 1001과는 매우 다르게 되어 있다. 남북 분단 후 북한이 아예 한글 정렬 순서를 새로 짜면서 그것이 그대로 반영된 건데, 한때 북한은 유니코드의 한글 영역이 남한의 한글 정렬 순서로 되어 있던 것이 싫어서 유니코드의 한글 영역을 북한식으로 쓴 적이 있었다. 이 문제에 대해서는 남북한 한글 코드의 충돌 문제 문서를 참고 바람.
북한의 완성형 한글 2679자의 목록은 완성형/한글 목록/KPS 9566 참고. 한자 목록은 한자/KPS 9566 참고.
8.3. 중국의 완성형 (GB 12052)
한국과 북한의 완성형에 비해서는 상당히 덜 알려져 있다. 다만 1990년대에 한글 코드를 연구하던 사람들은 그 존재를 알고 있었던 것으로 보인다. 실제로 1990년대 당시의 한글 코드 연구 자료들을 보면 중국의 완성형이 간혹 언급된다.
중국은 자국의 소수 민족 언어·문자들을 위한 국가 표준 문자 집합을 여러 개 만들었는데, 그중에는 GB 12052-89라는 한글 문자 집합도 있다. 현대 한글이 3천 자가 넘고, 한자는 94자(그것도 이두 문자)밖에 없으며, 놀랍게도 옛한글이 1700자 정도 포함돼 있다. 옛한글을 국가 표준 문자 집합에 처음 넣은 건 한국이 아니라 중국인 셈이다(!).[34]
다만 한국의 KS X 1001과 북한의 KPS 9566이 문자 인코딩(EUC-KR, EUC-KP)에 포함되어 실제 바이트의 연속으로 표현된 것과는 달리, 중국의 GB 12052는 실제로 문자 인코딩에 포함되어 사용된 적은 없는 것으로 보인다.
현대 한글의 순서는 북한의 가나다순을 따르고 있다. 아무래도 중국 조선어가 북한 문화어의 영향을 많이 받아서 그런 듯하다.
유니코드 매핑 테이블은 존재하지 않았으나, 2014년에 어떤 사람이 매핑 테이블을 만들었다. 코드 표는 여기 참고.
8.4. 7비트 2바이트 완성형
최상위 비트를 사용할 수 없는 환경에서 사용하기 위해 만들어졌다. aB와 같이 로마자 소문자 뒤에 대문자가 오는 경우 또는 }a와 같이 기호 뒤에 로마자가 오는 경우 등 영어에서 일반적으로 쓰이지 않는 조합에 자주 쓰이는 한글을 넣은 방식이다. 이 방식을 사용하는 한글 카드가 저렴했기 때문에 많이 이용되었다. 당시 청계천 근처에 있는 세운상가에서 가내수공업(...) 형태로 제조를 했기에 "청계천 한글 카드"라는 이명으로 많이 불렸다. 그러나 표현할 수 있는 글자 수가 1300여 자로 제한되고 진짜로 소문자 + 대문자 조합을 의도한 경우가 한글로 표시되는 경우도 있어서(dBASE가 '늦ASE'로 출력됐다) 쓰이지 않게 됐다.
9. 관련 문서
[1] 한글의 모든 글자 중 마지막 글자는 '힣'이지만, 이러한 글자들의 사용빈도가 극히 낮으므로 완성형에 포함하지 않은 것. '''참고로 이런 안이한 생각이 완성형이 가지고 있는 주요 문제점을 불러왔다.''' 빈도가 적다고 아예 안 쓰이는 게 아니며 인터넷 유행어 같은 경우도 완성형으로 구성이 불가능한 글자가 자주 나오는 데다, 사적인 사례 외에도 문제가 생기기 충분했다. 간단한 예시로 한국어 발음에 대한 논문을 하나 쓴다고 생각해 보라. 그 중 한 예로 '있다'의 발음을 표현하기 위해 '읻따'라는 단어를 써야 하는데 '읻'이라는 글자가 없어서 곤란해진다. [2] 이론적으로는 3바이트를 사용해 94³ = 830,584개의 문자를 표현하게 할 수 있으나, 실제로 3바이트를 사용하는 문자 집합은 존재하지 않았다. 2바이트를 사용해 문자 8,836개를 표현할 수 있는 문자 집합까지만 존재했다. 참고로 유니코드 5.2 이래로 기존의 비표준 인코딩까지 모두 포함해 거의 확정되다시피 한 옛한글 낱자는 초성 125개, 중성 95개, 종성 137개이다. 125×95×(137+1) = 1,638,750으로 '''3바이트로도 모자란다'''.[3] 저 국제 표준이 나올 당시에는 7비트 표준 아스키 코드만 지원하는 시스템이 아직 남아 있었다.[4] 완성형으로는 디스'''켙''', '''펲'''시를 적을 수 없으니 외래어 표기법을 지킬 수밖에 없게 된다.[5] 아직도 나눔스퀘어 등의 일부 특수 폰트는 이 2,350자만 지원한다.[6] 단, 윈도우 3.1에서는 '''모종의 버그로 입력이 되긴한다.'''[7] 유니코드에서 가장 많이 공간을 잡아먹는 문자는 한자(일본의 신자체, 중국의 간체자, 베트남의 쯔놈 포함)이다. 그 외에도 쐐기 문자나 이모지같은 표어 문자나 표의 문자도 많은 슬롯을 먹는다. 하지만 상당수의 표어 문자나 표의 문자, 그리고 특수 한자, 이모지 등과 같은 그림문자들은 보조 영역인 SMP 영역으로 들어가 있고, 기본 영역인 BMP 영역에서 배당 슬롯을 저렇게 광역으로 처먹는 문자체계는 '''표준 한자'''와 '''완성형 한글''' 둘 뿐이다. 표준 한자야 여러 동양권 국가에서 사용하는데다 표의 문자(정확하게는 표어 문자)이기에 도저히 어떻게 할 대안이 없어서, 표준 기호(=,/,+ 등)같은 경우는 전세계에서 사용하는 것이라 저렇게 할당했다고 참작할 수 있지만, 한글은 엄연한 알파벳(음소 문자)이다. [8] 글꼴의 이유로 미음처럼 보일 수 있으나 비읍이다.[9] 2014년 12월에 표준어로 인정되었다. 그런데 기사를 보면 알겠지만 여기서도 '찟'은 깨졌다.[10] 다만 우크라이나어 표기 방식으로는 '안드리 셰우첸코'이다. 참고로 해당 표기는 러시아어 표기 방식이다.[11] 백괴사전 서버가 폭파한 관계로 웹아카이브로 대체.[12] 일부 지역에서 '벌'의 방언으로 쓴 적이 있다.[13] 일부 지역에서 '삯'의 방언으로 쓴 적이 있다.[14] 아이러니하게도 이 글자를 적기 위해 거치는 단계인 '쎠'와 '쎼'는 완성형에 없다.[15] 단, 윈도우 3.1에서는 모종의 버그로 '쎙'을 입력하면 이 글자가 입력되었다.[16] 겹받침과 이중모음을 모두 포함하여 초성 19자, 모음 21자, 종성 27자의 조합으로 종성이 없는 경우까지 고려하여 19 × 21 × 28 = 11,172[17] 엄밀히 말하면 EUC-KR은 확장 완성형이 아닌 완성형이고, 완성형에서는 2,350자 밖에 있는 한글을 표현할 때 한글 채움 문자를 이용하라고 했으므로 파이어폭스 쪽이 맞게 표현하는 것이다. 간혹 웹 페이지에서 뭐가 문제인지 한글 채움 문자를 날려 버려서 한 글자로 합쳐지지 못하게 되는 경우도 있다.[18] 이상하게도 이런 게임은 아직도 유니코드가 아닌 일본어 로케일을 사용하는 경우가 많아서 어플로케일이 아직도 필수에 가깝다. 수요층이 일본 한정, 혹은 해외 유저들이 사실상 복제 사용자들이라는 가정에서 나오는 판단인 듯하다.[19] 옛 도스 환경의 조합형 한글 글꼴은 오히려 2,350자 완성형 글꼴보다 용량이 적다(!). 초성 몇 벌, 중성 몇 벌, 종성 몇 벌(보통 초성 8벌, 중성 4벌, 종성 4벌이었다)을 디자인해 놓고 일정한 규칙에 따라 그 자형들을 조합해서(정확히는 겹쳐서. 일종의 레이어로 생각하면 된다) 11,172자를 출력했기 때문이다(당시에는 글꼴을 이렇게 만들고 초성, 중성, 종성을 겹쳐서 출력했다). 필요한 자형 수는 많아야 몇백 개. 반면 완성형 글꼴은 2,350자를 하나하나 디자인해야 하기에 옛 도스 환경의 조합형 한글 글꼴보다 용량이 클 수밖에 없다. 코딩할 때도 완성형은 한글 코드와 자소가 전혀 관계 없기때문에 일일이 코드페이지에서 찾아 줘야하지만 조합형은 자소의 코드를 합치기만 하면 글자가 완성된다.[20] 분명히 '뛔'는 있다. 하지만 핸드폰에서 뛔를 쓰려면 ㄷㄷㅜㅓㅣ의 순서로 써야 하기 때문에 중간에 '뚸'를 거쳐야 하지만 그 글자가 2,350자 안에 없다. 천지인 자판(ㆍ, ㅡ, ㅣ)을 채택하는 핸드폰의 경우 ㄷ → ㅌ → ㄸ → 뜨 → 뚜 → 뜌 → 뚸 → 뛔 순으로 써야 되는데 '뚸' 바로 앞의 '뜌'도 없다.[21] 예를 들어 연아의 햅틱의 경우 위에 나타난 쓩, 뷁, 뛔, 쿈 등을 모두 표기할 수 있다.[22] 대신 완성형도 2,350자+24자(한글 자모)+알파벳+숫자+일부 특수문자를 포함하여 대략 2,400여자를 입력해야 하기 때문에, 롬파일의 확장 혹은 이곳 저곳의 데이터 여백에 포인터를 배치하는 것으로 입력글자수를 늘리거나, 아니면 아예 처음부터 수천자를 입력시켜놓은 중국어 롬파일을 구해서 사용하는 케이스가 많다. [23] 특히 일본 대중문화 개방이 이루어지면서 이런 문제가 많아졌는데, 이는 완성형이 제정되었을 때에는 아직 개방이 이루어지기 이전이었기 때문이다.[24] 왜 이렇게 되었나면, 당시 구형 매킨토시에서 돌아가는 QuarkXPress는 한국 실정에 현지화된 3.3k 버전을 쓰고 있었는데, 제작사가 라이센스비를 올리자 인쇄 업계 측에서 담합해 신버전을 쓰지 않기로 하고 기존 버전을 고수해서 그렇다고 한다.[25] 여기서 '맨도롱 또똣'은 제주도 방언으로 미지근 뜨뜻, 다시 말해 음식이 먹기 좋을만큼 따뜻하다는 뜻이다.[26] 눈썰미의 고어이다.[27] EUC-KR을 특정 '프로그램'으로 알고 있는 것으로 보아, 문자 인코딩에 관련한 깊은 지식이 있는 블로거는 아닌 듯하다. 물론 이걸 알고 모르고를 떠나, '믜'가 입력이 안 되는 완성형 체제 자체는 까여야 마땅하다. 다만, 옛 한국어의 자음 + ㅢ는 늬, 희 등 일부를 제외하고는 모두 자음 + ㅣ로 변했기 때문에(예: 기차 ← 긔챠, 마디 ← 마듸, 거미 ← 거믜, 나비 ← 나븨, 키(신장) ← 킈, 티끌 ← 틧글, 피우다 ← 픠우다 등), 현대 한국어 정서법에 따르면 '설미'가 돼야 하긴 하다. 물론 인명이니 본인이 특이한 표기를 쓰겠다고 하면 할 말 없겠지만.[28] 이쪽은 '믜'를 '므ㅣ'로 표기했다.[29] 알파벳 계열은 많아야 100개 정도, 한글은 대략 11000글자…[30] 사실 이건 PC에서 문자 처리를 폰트를 이용해서 할 경우 비트맵으로 불러들여 처리하는 것보다 성능이 떨어지기에 도입된 방식이다. 이 때문에 2000년 이전에 개발된 게임의 경우 내부 글자를 폰트로 처리하는 경우는 별로 없다. 이때의 국산 게임도 완성형 폰트를 비트맵 파일로 만들어 표현하는 경우가 많았다.[31] 몇몇 소프트웨어 전용 폰트를 사용하는 한/글에서도 완성형 전용 폰트의 경우 2,350자 이외 글자에 한해서 조합형 폰트로 대체하고 있다.[32] '국규'는 '국가 규격'이라는 뜻이다.[33] 후술할 '특수 문자' 한글은 제외한다.[34] GB 12052는 1989년에 나왔고, KS X 1002(당시 KS C 5657)는 1991년에 나왔다.