code chap 20 - 문자코드

주유구·2022년 4월 8일
0

메모리에는 비트만 저장할 수 있기 때문에 모든 것은 비트의 형태로 구성되어 있어야 한다.

이를 위해 개발된 것이 부호화된 문자체계(coded character set)이다. 숫자와 문장부호(문자코드, character codes)같은 글에서 나타나는 요소들 역시도 표현체계에 포함시킨 것을 뜻한다.

모스부호같은 가변폭부호는 전신과같은 용도로는 적합하지만 컴퓨터에서 다루기는 쉽지 않다. 그리고 모스부호에서는 대문자와 소문자를 구분할 수 없다.

점자는 모든 문자가 6비트로 표현되는 고정폭부호 방식을 채택하고 있으며, 이 방식은 컴퓨터가 사용하기에 좀 더 용이한 방법이다. 점자의 경우에는 탈출부호에 의한 구현이기는 하나 대문자를 표현할 방법또한 마련되어 있다.

I have 27 sisters.
라는 문장이 있다고 가정했을 때, 이를 표현하기 위해 필요한 문자부호는 알파벳 대문자, 소문자에 해당하는 부호, 숫자에 해당하는 부호, 온점에 해당하는 부호 그리고 공백에 해당하는 부호이다. 이러한 목적에 가장 부합하는 부호는 에밀보도에 개발된 보도부호, 혹은 머레이부호이다. 보도부호는 5비트를 사용하는 부호체계이고, 32개의 부호가 가능하다.

이것이 보도부호가 지원하는 32개의 부호가 연관되어있는 모양새이다. 보도부호의 기호변경이라 이름붙은 부호가 있는 것이다. 기호변경 부호가 입력된 다음에 나오는 모든 부호는 문자변경 부호가 나와서 이후의 부호를 문자열로 되돌리기 전까지 숫자 혹은 구두점으로 해석된다.그래서
I spent $25 today.
8 '03,5 $25 today.
같은 오류가 발생할 수 있다.

보도부호는 아주 경제적인 부호이나 숫자나 구두점에 대해서 고유 부호를 할당하고, 대문자와 소문자를 구분하기 위해 7비트의 체계를 선택하게 된다. 아스키코드는 기술적으로는 7비트이나, 8비트값으로 저장한다. 컴퓨터에서 통일된 부호를 모두 함께 이용하는 것이 합리적이기 때문에 미국 표준부호(American Standard Code for Information Interchange;ASCII)가 1967년에 제정되었다. 아스키코드는 7비트 부호로 0000000부터 1111111까지를 사용한다. 아스키코드는 대문자와 소문자가 20h 차이가 나는데, 이는 문서의 문자열을 적는 과정에서 어떤 부호를 대문자로 만드는 등의 작업이 필요할 때 상당히 편하게 만들어준다. 또한 아스키부호는 33개의 제어문자를 포함하고 있는데, 이 문자들은 눈에 보이지는 않으나 다양한 기능(제목시작, 벨소리, 백스페이스 등)을 수행한다.

아스키코드의 가장 큰 문제는 미국의 실정에만 맞추어져 있다는 것이다. 이를 보완하기 위해 수십년에 걸쳐 많은 아스키부호 확장안이 발표되었다. 근본적으로는 일본어, 한국어나 중국어(한자)를 지원하기 위한 확장이었다.

전세계언어를 모두 표현하기에 적합하고, 모호하지 않은 명확한 표준이 있다면 좀 더 개발에 편리할 것이라는 공감대로 인해 1988년부터 주요 컴퓨터 회사들은 아스키코드를 대체할 유니코드 개발에 착수했다. 유니코드는 16비트부호이다. 각각의 문자를 표현하기 위해 2바이트가 필요하다. 유니코드는 완전히 새롭게 설계된 것은 아니며, 처음 128문자는 아스키코드와 동일하다. 단점은 용량이 아스키코드의 2배에 달한다는 것이다.

profile
뜨개질 어딕트 개발자

0개의 댓글