블로그 보관함

2014년 2월 19일 수요일

문자집합에 관하여

1. 문자집합이란?

    Character Set 이라고 하여 문자를 컴퓨터 상에서 
    어떤 값으로 표현할 것인지에 대한 규칙 혹은 약속을 의미한다.

2. 변천 과정.


최초 ASCII의 경우 미국에서 자의적으로 만들었던 것이기 때문에 국제 표준으로 삼는 것에 문제가 있었다. 유럽의 반발을 받아들여 ISO-8859-1을 만들었지만 역시 모든 국가의 언어가 담겨있는 것이 아니었기 때문에 2Byte의 정보를 이용하여 언어들을 담기로 했다. 이 중에 한글을 2700자가 있었지만 한국에서 상용하고 있는 문자들은 10000개 이상으로 상당히 부족했다. 이에 한국에서는 조합형 양식을 만들어 사용하게 되었다.



이와 같이 앞의 1bit에는 한글인지 아닌지를 체크하는 장치를 마련하고 남은 15bit를 세 부분으로 나누어 초성, 중성, 종성으로 사용하여 한글로 표현할 수 있는 모든 문자를 사용할 수 있게 되었다. 하지만 이는 국제표준이 아니고 아래아 한글에서만 사용할 수 있는 문자집합이었다는 것에 한계가 있었다.
한국에서 한글을 모두 표현할 수 있는 아래아 한글을 많이 이용하자 MS사에서는 MS949를 이용하여 11172까지 한글을 표현할 수 있게 만들어 주면서 이용하게 만들었지만 이는 국제 표준이 아니고 한국에서, 거기다 Window 95 이상에서만 사용할 수 있는 한계가 있었다.

이를 해결하기 위해 Unicode 가 생기게 되었는데 여기에 한글은 MS949를 비롯하여 한국한자와 옛 한글을 추가하였다. 하지만 영어까지도 2Byte를 사용하게 된다는 문제점이 대두되었다. 이는 당시에 문서들의 용량을 2배로 만들 뿐 아니라 기존의 에디터들을 변경해야 한다는 제한을 갖게 되어 새로운 코드를 요구하게 되었다.

현재 사용하고 있는 UTF-8은 Unicode 의 변형을 뜻하는 것이다. 영어는 1Byte를 사용하고 기존의 8bit 문자들은 그래도 8bit를 사용하게 하고 나머지 문자들에 대해서 2~4Byte를 사용하도록 만들었다. 하지만 여기에도 한국인들에게 치명적인(?) 문제를 갖게 했으니 한글이 2Byte 가 아니고 3Byte 를 차지하게 되었다는 것이다.

댓글 없음:

댓글 쓰기