* [[컴퓨터 관련 정보]] - [[인코딩]] [include(틀:한글 전산화)] [목차] == 개요 == [[한글]]을 [[컴퓨터]]에 표시하는 방식. 현대 한글은 음소 문자 주제에(…) 음절에 따라 모아쓰기를 하기 때문에[* 이는 한자 표기와의 호환성을 위해서였다고 생각된다.] 다른 문자 체계와는 다른 별도의 방식을 고안할 수밖에 없었다.[* 한글 [[풀어쓰기]]를 주장하는 사람들이 근거로 내세우던 것 중 하나가 바로 이 점이었다. 풀어쓰기를 하면 전산화에 따르는 여러 난점을 해결할 수 있다는 것. 한편 [[일본어]]판 위키피디아에서는 '한글은 음절별로 모아쓰기를 하니까 한글은 음소 문자가 아니라 음절 문자'라고 주장한다. ~~그러니까 자모의 형상을 봤을 때 음소 문자라고~~] == 역사 == === 조합형과 완성형 === 한글의 인코딩은 크게 두 가지로 나뉜다. 첫 번째는 '가', '각', '간' 등 한글의 한 글자 한 글자를 독립된 문자로 인식하고 각 글자에 코드를 부여하는 [[완성형]]이고, 두 번째는 초성, 중성, 종성을 독립된 문자로 보고 자모의 조합으로 글자를 표현하는 [[조합형]]이다. 이렇게 두 가지로 나뉘다 보니 한글 전산화 초기에는 [[조합형 완성형 논쟁|조합형과 완성형 사이의 논쟁]]이 있었다. 조합형은 한글의 창제 원리를 잘 반영하였고 간단한 계산만으로 초·중·종성을 분리할 수 있다는 장점이 있다. 하지만 2바이트를 비트 단위로 쪼개서 해석을 해야 하기 때문에[* 2바이트 조합형의 경우이다. 2바이트(=16비트) 중 맨 처음 1비트는 제외하고 나머지 15비트 중 5비트씩 잘라서 초성, 중성, 종성에 배당하였다.] 처리상의 부담이 컸고 다른 문자 체계들과 호환이 안 된다는 단점이 있었다. 반면 완성형은 한글의 제자 원리를 무시한다는 단점이 있었지만, 조합형의 단점들 때문에 완성형이 국가 표준으로 채택되었다. === 완성형의 문제점 === 초기 완성형에서는 현대 한글로 표현할 수 있는 글자 중 사용 빈도가 높은 [[완성형/한글 목록/KS X 1001|2350자]]만을 채택하여 지원하였다. 그래서 '뷁', '힣' 같은 글자는 물론 '귬', '붴', '칢'처럼 표준어에 있는 글자들도 쓸 수가 없었다. 이 점을 해결하기 위해 [[마이크로소프트]]에서는 [[윈도우즈]] 95에서 [[CP949|코드 페이지 949]], 또는 통합 완성형이라는 이름의 코드를 도입하였다. 이 코드에는 EUC-KR의 2350자로 표현할 수 없는 8822자를 추가하였다. 그러나 기존의 2350자가 있던 영역(KS X 1001)과는 다른 별도의 영역에 글자들을 지정하였기 때문에 한글의 순서가 뒤죽박죽이 되었고, 따라서 코드값만으로는 제대로 정렬이 이루어지지 않는 문제점이 있었다. 그러나 어쩌다 보니 확장 완성형이 계속 사용되어 왔다. 저렇게 윈도우에서 기존 EUC-KR를 코드 페이지 949로 확장하였고, 현재 한국어 윈도우에서는 저 코드 페이지 949가 표준적으로 쓰이고 있기 때문에, 순수하게 윈도우 전용의 한국어 인코딩이지만 윈도우 점유율로 인해 코드 페이지 949가 사실상 표준인 셈. 가끔 보면 한국어 윈도우에서 만들어진 파일을 유니코드로 변환할 때 원본 파일의 인코딩을 EUC-KR로 지정하는 경우가 있는데, 이렇게 되면 자주 쓰이는 EUC-KR에 포함된 문자들은 제대로 유니코드로 변환되지만, 차후에 추가된 저 나머지 문자들은 제대로 변환이 안 되니 반드시 CP949로 지정하도록 하자. CP949는 EUC-KR를 완전히 포함하므로 원본 파일이 코드 페이지 949가 아닌 EUC-KR 환경에서 만들어졌더라도 신경 쓸 필요가 없다. === 유니코드와 한글 === [[유니코드]] 항목의 '[[유니코드#s-4.2.1|한글 전산화]]' 섹션 참조. 현재의 유니코드에는 완성형 11,172자와 조합형 한글 낱자가 모두 수록되어 있어 현대 한글과 옛한글을 모두 완벽하게 표현할 수 있다. 일반적인 한글 문서에는 완성형을 사용하지만, [[옛한글]] 등 특수한 목적을 위해서는 [[조합형]](첫가끝) 한글 낱자를 사용한다. 컴퓨터 운영체제 포맷에 따라 한글 파일명을 완성형(윈도우) 또는 조합형(맥)으로 "유니코드 정규화"해서 인코딩을 한다. 이 때, 서로 다른 운영체제 간 파일 전송 시, 파일명 [[문자 깨짐]]이 발생하거나, 그렇지 않더라도 정렬이나 검색에서 파일이 제대로 나오지 않는 상황이 발생하기도 한다. [[크로스 플랫폼|서로 다른 컴퓨터, 서로 다른 운영체제, 서로 다른 파일 시스템, 서로 다른 문서 양식을 만나게 되는]] "[[월드 와이드 웹|웹]]"에서는 인코딩이 맞지 않으면 [[혼파망]]이 필히 발생했다. 이에 대비해 유니코드의 [[UTF-8]] 인코딩이 개발되었고, 2014년 이후부터는 어지간한 컴퓨터 문서에서 이를 사용하기 때문에 한글의 인코딩이 깨지는 문제점은 사라졌다. 만약 웹사이트를 만든다면 인코딩을 EUC-KR이 아닌 UTF-8로 하자. == 관련 문서 == * [[조합형]] * 상용 조합형 * 첫가끝 * [[완성형]] * EUC-KR * [[CP949]] (통합 완성형) * EUC-KP: 북한의 국가 규격 완성형 코드로, 국규 9566을 따른다. 국규 9566은 남한 표준인 KS X 1001과 유사하지만 정렬 순서가 다르다.[* 남한과 북한은 한글 낱자의 정렬 순서가 서로 다르다. 한때 북한이 유니코드에 남한의 낱자 순서만이 반영되어 있는 것을 문제 삼았지만 유니코드는 한 번 지정된 문자는 자리를 옮기지 않는다는 지침을 따르고 있기 때문에 씨알도 안 먹혔다. 사실 이 지침이 제정된 게 한글 때문이기도 하고...] '김, 일, 성, 김, 정, 일, 김, 정, 은'을 별도의 코드로 지정해 놓은 것으로 악명이 아주 높다.[* 이런 사례가 드문 것은 아니다. 일본도 [[연호/일본|연호]]를 ㍻([[헤이세이]]), ㍼([[쇼와]]), ㍽([[다이쇼]]), ㍾([[메이지]])로 한 글자로 박아넣은 코드가 있고 세로쓰기에 쓰기 위해 ㍍(미터), ㌧(톤), ㌘(그램) 등 여러 글자를 한 코드 안에 박아넣고 있다. 하지만 저 앞의 경우는 편의를 위한 것일 뿐인데 북한이 저렇게 해놓은 목적은 뭐... 일본의 저 사례와 제대로 일치시키려면 세글자를 코드 하나에 욱여넣었어야 제대로 된 비유가 될 듯.] * 보통의 경우에 쓰는 '김, 일, 성, 정, 은'과, [[김일성]], [[김정일]], [[김정은]] 3대를 가리킬 때 쓰는 '김, 일, 성, 김, 정, 일, 김, 정, 은'을 아예 따로 배당해 놓았다. 출판물 편집 작업을 할 때마다 김일성, 김정일, 김정은을 일일이 강조하기 번거로우니 아예 별도의 코드로 해 놓았다는 설이 있고(북한의 출판물에서는 김일성, 김정일, 김정은의 이름은 반드시 강조하도록 돼 있다), 컴퓨터에서 정렬을 할 때 김일성, 김정일, 김정은의 이름이 먼저 오도록 해 놓은 것이라는 설이 있다. * [[한컴 2바이트 코드]] * [[조합형 완성형 논쟁]] * [[남북한 한글 코드의 충돌 문제]] 한글 전산화가 이루어지던 80~90년대에는 그 외에도 도깨비 한글, 7비트 한글 코드 등 독자적으로 쓰이는 코드가 있었다. == 관련 문서 == * [[문자 깨짐]] [[분류:한글 전산 처리]]