본문 바로가기

컴퓨터의 이해

아스키코드(ASCII Code)와 유니코드 이해하기

반응형

컴퓨터의 저장 단위를 설명한 강의에서 컴퓨터의 데이터는 0과 1의 2가지 디지털 정보의 조합으로 이루어져 있다고 설명했습니다.
그런데 우리는 컴퓨터를 이용해 한글도 읽고, 영어도 읽고, 사진과 동영상, 음악도 들을 수 있습니다.
그렇다면 컴퓨터 속의 한글과 영어, 사진과 음악도 0과 1로 만들어져 있을까요?
맞습니다. 컴퓨터 내에 저장되는 모든 정보는 0과 1의 조합입니다.
오늘은 이 0과 1이 어떻게 문자(한글과 영어)로 저장되는지를 설명해 보려고 합니다.

아스키코드(ASCII Code)와 유니코드 이해하기

1946년에 최초의 컴퓨터인 에니악이 발명된 곳이 미국이니 영어를 컴퓨터로 먼저 표현하기 시작한 것이 이해가 될 거예요.
지난 강의에서 1비트가 0과 1로 이루어져 있고, 1바이트는 8비트로 이루어져 '00000000', '00000001', '00000010', '00000011', ..., '11111111'의 총 256가지로 표현할 수 있다고 설명했습니다.
오늘 설명할 아스키 코드는 1바이트라는 8자리 데이터를 어떻게 사용할 것인지를 고민한 결과입니다.

아스키코드는 1American Standard Code for Information Interchange의 첫 글자인 ASCII를 소리나는 대로 읽은 것으로 영문 알파벳을 정의하는 문자 코드라고 할 수 있습니다.
1967년에 최초로 제정된 이 코드는 영어 원문을 해석하면 '미국정보교환표준부호' 정도로 번역이 되는데, 미국에서 정의한 데이터 교환을 위한 표준 부호값을 말합니다.
아스키코드는 총 7자리의 데이터를 사용합니다. 1바이트 안에 포함될 수 있는 8자리 가운데 7자리를 의미합니다.

아스키코드에는 33개의 출력이 불가능한 컴퓨터 제어를 위한 문자와 95개의 출력이 가능한 문자로 이루어져 있어 총 128개로 구성됩니다.
'0000000' 은 Null 문자, '00000001' 은 헤더 시작을 가리키는 문자, '00000010'은 본문이 시작되는 것을 가키리는 특수한 제어 문자입니다.
'0110000'은 숫자 '0'을 의미하는 문자, '1000001'은 대문자 'A', '1100001'은 소문자 'a'를 가리키는 문자입니다.
그리고 '0100001'은 느낌표 '!', '0111111'은 물음표 '?' 등을 가리킵니다.

자세한 문자의 의미는 다음의 아스키코드표를 보면 이해하기 쉽습니다.

아스키코드표

이렇게 7자리의 2진수 데이터 영역에 영문자, 숫자, 특수문자, 그리고 보이지 않는 컴퓨터 제어 문자를 사용하는 것으로 정의한 것이 아스키코드이고, 이 코드를 기반으로 컴퓨터에서의 문자 인코딩(정보의 변환방식)이 이루어 졌습니다.

이 아스키코드는 영문자와 숫자, 특수문자 등이 정의가 되었는데, 한글이나 한자와 같은 다른 언어들은 그렇다면 어떻게 컴퓨터에서 변환되어 사용할 수 있을까요?
아스키코드가 기본이 되어 전 세계의 모든 문자를 표현하기 위해 유니코드(Unicode)라는 표준이 나오게 되었습니다.
1996년에 정의해 놓은 유니코드에서 한글은 '가', '각', '갂', '갃' 등이 각각 하나의 문자로 등록이 되어 총 11,172 자가 유니코드에 등록되어 있습니다.
유니코드의 인코딩의 방법은 UTF-8이나 UTF-16 등의 다양한 표현 방식이 존재합니다.

참고로 아스키코드와 유니코드를 '표준'이라고 이야기한 이유는 각각의 컴퓨터에서 공통으로 사용하기로 한 '약속'을 정했기 때문입니다.
만약 트리 선생님의 컴퓨터에서는 '1000001'이 'A'로 정의되어 있는데, 여러분의 컴퓨터에서는 '1000001'이 'T'로 정의되어 있다면 서로 정보를 잘 주고받을 수 없겠죠?
그래서 이 표준이라는 약속을 정해 놓은 것입니다.

이렇게 컴퓨터에서 한글과 영어, 한자 등을 표현하기 위해서는 문자 인코딩(변환)을 하게 되고, 이 인코딩은 각각의 표준 규칙을 정해 모든 컴퓨터에서 지켜 서로 정보를 주고 받을 때 사용하고 있습니다.
여러분이 사용하는 키보드를 통해 정보가 컴퓨터로 들어갈 때, 입력된 정보가 모니터에 출력될 때 등 모든 순간순간 이 표준 규칙을 통해 문자로 변환됩니다.

반응형