0, 1로 문자를 표현하는 방법
컴퓨터는 0, 1 만 이해 가능합니다. 0, 1로 문자를 표현하는 방법으로 문자 집합, 문자 인코딩, 문자 디코딩을 알아야 합니다.
문자 집합
컴퓨터가 인식하고 표현할 수 있는 문자의 모음
컴퓨터는 문자 집합 속에 속해 있는 문자를 이해할 수 있고, 미포함된 문자는 이해가 안 됩니다.
★ 컴퓨터가 인식할 수 있는 문자들의 모음
문자 인코딩
문자를 0, 1로 변환해야 비로소 컴퓨터가 이해 가능하고 이과정을 문자 인코딩이라고 합니다.
인코딩 후 0, 1로 이루어진 결괏값이 문자 코드로 됩니다.
★ 문자들을 컴퓨터가 이해할 수 있는 0, 1로 변환하는 과정
문자 디코딩
인코딩의 반대로 0, 1로 이루어진 문자 코드를 사람이 이해 가능한 문자로 변환하는 것입니다.
★ 인코딩 반대로 0, 1로 표현된 문자 코드를 사람이 읽을 수 있는 문자로 변환하는 과정
아스키코드(ASCII)
영어 알파펫, 아라비아 숫자, 일부 특수 문자를 포함하고 각각 7비트로 표현되며
※ 실제로 하나의 아스키 문자를 나타내기 위해서는 8비트(1바이트)를 사용하지만 8비트(1바이트) 증 1비트는 패리티 비트라 불리는 오류 검출을 위해 사용되는 비트이므로 실질적으로 문자 표현을 위해 사용되는 비트는 7비트 입니다.
표출되는 문자의 가짓수는 128개입니다.
아스키 문자들은 128개의 숫자 중 하나의 고유한 수에 일대일로 대응되고 아스키코드로 인코딩 됩니다.
아스키코드는 매우 간단하게 인코딩 되는 장점이 있지만 단점으로 한글을 표현할 수 없습니다.
이를 위해 아스키코드에 1비트를 추가한 8비트의 확장 아스키가 있지만 256개의 문자만 표현 가능하고 부족합니다.
EUC-KR
한글 인코딩을 위해서는 완성형(한글 완성형 인코딩), 조합형(한글 조합형 인코딩)이 존재합니다.
- 완성형 인코딩 : 초성, 중성, 종성의 조합으로 이루어진 완성된 하나의 글자에 고유한 코드를 부여하는 인코딩
- 조합형 인코딩 : 초성, 중성, 종성의 각각의 비트열을 할당하여 그것들의 조합으로 하나의 글자 코드를 완성하는 인코딩
KS X 1001, KS 1003이라는 문자 집합을 기반으로 하는 대표적인 완성형 인코딩 방식입니다.
초성, 중성, 종성이 모두 결합된 한글 단어에 2바이트 크기의 코드를 부여합니다.
EUC-KR로 인코딩 된 한글은 네 자리 십육진 수로 표현 가능합니다.
단 문자 집합에 정의되지 않는 '쀍, 쀓' 같은 글자는 미 표현됩니다.
이러한 문제를 해결하기 위해 마이크로소프트에서 'CP949' 만들었으나 한글 전체를 표현은 안됩니다.
유니코드
EUC-KR 등장으로 한국어를 코드로 표현 가능 하지만 모든 한국어가 불가하고 언어별로 인코딩을 지정해야 하는
번거로움이 있습니다.
이러한 번거로움을 없애기 위해 모든 언어를 아우르는 문자 집합, 통일된 표준 인코딩 방식 '유니코드'가 등장했습니다.
유니코드는 EUC-KR보다 다양한 한글, 대부분의 나라의 문자, 특수문자, 화살표, 이모티콘을 코드로 표현 가능한
통일된 문자 집합입니다.
글자에 부여된 값 자체를 인코딩된 값으로 삼지 않고 이 값을 다양한 방법으로 인코딩 합니다.
인코딩 방법으로 'UTF-8, UTF-16, UTD-32' 등이 있고 'UTF-8, UTF-16, UTD-32'는
유니코드 문자에 부여된 값을 인코딩 하는 방식 입니다.
UTF-8
통상 1바이트부터 4바이트까지의 인코딩 결과를 만들어 냅니다.
인코딩한 값읠 결과는 1바이트가 될 수도 2,3,4바이트도 가능합니다.
인코딩한 결과의 바이트는 유니코드 문자에 부여된 값의 범위에 따라 결정됩니다.
○ 유니코드 문자에 부여된 값의 범위가 0~007F(16) 까지는 1바이트로 표현
○ 유니코드 문자에 부여된 값의 범위가 0080(16)~07FF(16) 까지는 2바이트로 표현
○ 유니코드 문자에 부여된 값의 범위가 0800(16)~FFFF(16) 까지는 3바이트로 표현
○ 유니코드 문자에 부여된 값의 범위가 10000(16)~10FFFF(16) 까지는 4바이트로 표현
코드 포인트
문자 인코딩에서 '글자에 부여된 고유한 값'을 의미합니다.
※※※※※ 마무리 ※※※※※
문자 집합 : 컴퓨터가 인식 가능한 문자의 모음, 문자 집합에 속한 문자를 인코딩하여 0, 1로 표현 가능
아스키 코드 : 아스키 문자 집합 0~127개의 수가 할당되어 아스키 코드로 인코딩 됩니다.
EUC-KR : 한글을 2바이트 크기로 인코딩할 수 있는 완성현 인코딩 방식 입니다.
유니코드 : 다양한 나라의 언어를 광범위하게 표현 가능하게 통일된 문자 집합이며 대표적으로 'UTF-8, UTF-16, UTF-32' 유니코드 문자의 인코딩 방식 입니다.