etc

ASCII Code & Uni Code

Yuna_dev 2021. 6. 14. 21:31

컴퓨터 시스템에서 인간이 사용하고 있는 모든 정보는 2진수, 즉 비트로 표현되어야 하기 때문에 인간이 사용하는 정보를 컴퓨터 내부에서 표현할 때 미리 약속된 비트정보로 부호화(Coded)하여 사용해야 한다.

문자는영문 대/소문자, 한글, 한자 등의 문자와 +, *, @ 등 특수문자, 0, 1, 2 등 숫자 등으로 구성되어 있다.

컴퓨터에서는 이러한 문자들을 각각 구별할 수 있도록 약속된 비트 정보를 통해 문자를 표현할 수 있도록 하고 있으며, 한 문자를 표현하기 위해 여러개의 비트를 사용한다.

1. ASCII Code 란?

정의

ASCII 란 'American Standard Code for Information Interchange' 의 약자이며, 아스키 코드라고 읽는다. 아스키 코드는 문자에 대해 각각의 번호를 지정하여 관리하고 있는 집합체이며, 가장 기초가 되는 문자코드라고 할 수 있다.

만든 목적

프로그램이나 다른 컴퓨터와 통신하기 위하여 다양한 문자와 기호를 컴퓨터의 숫자 표현(비트)으로 변환될 필요가 생겼고, 그에 따라 개발된 것이 아스키 코드이다. 1968년 미국 ANSI에서 미국 표준 코드 체계를 제시하였다.

구성

기본 아스키 코드는 7개의 비트로 구성되어 있고, 128개의 문자를 표현할 수 있다. 예를 들어, 알파벳 A는 10진수 기준으로 65, 알파벳 B는 66으로 정해져 있다.

만약 M을 2진법으로 표현한다면,

M: 1001101 = 2^6x1 + 2^5x0 + 2^4x0 + 2^3x1 + 2^2x1 + 2^1x0 + 2^0x1 = 64+8+4+1=77

이와 같은 방식으로 문자를 숫자값으로 저장한다.

한계점☆

미국에서 영어를 기준으로 만들어진 코드이기 때문에 아스키 코드로 나타낼 수 없는 문자들이 많다. 수학 기호들과 영어 외 다른 언어의 글자들은 표준 아스키 코드에 포함되기가 힘들다. 이러한 이유때문에 훨씬 더 많은 문자들을 포함할 수 있는 유니코드(Unicode)가 생기게 됐다.

2. Uni Code 란?

정의

Unicode 는 전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 문자 집합이다. 산업 표준이며, 유니코드 협회가 제정한다. 이 표준에는 ISO 10646 문자 집합, 문자 인코딩, 문자 정보 데이터 베이스, 문자들을 다루기 위한 알고리즘 등을 포함하고 있다.

만든 목적

컴퓨터가 영어권 뿐만 아니라, 전 세계적으로 사용하게 됨에 따라 각 나라의 문자에 각각의 번호를 지정하여 관리하기 위해 만들어졌다.

기존에 영어와 숫자만을 표현할 수 있는 ASCII Code의 한계를 넘어서 Uni Code는 100만개 이상의 문자들을 나타낼 수 있는 문자 인코딩이다. 유니코드의 첫 128개의 문자는 아스키 코드의 128개의 문자와 동일하여 서로 호환이 된다.

한글, 한자, 일어 등 각 나라별 언어를 표현해야 필요가 생겼고, 그리하여 미국의 컴퓨터 운영체제 업체와 데이터베이스 관련 기업 들이 중심이 되어 다국적 지원 코드인 Uni Code를 만들게 되었다.

구성

운영체제나 프로그램 언어에 관계없이 문자마다 고유한 코드값을 제공한다. 16개의 비트(2바이트)로 이루어져 최대 65,536개를 표현할 수 있다. 유니코드는 이모티콘까지 표현할 수 있게 해주었다.

각 문자에 대해 지정된 번호는 '코드포인트'라고 하며, 이는 문자 집합체 내의 부호의 위치이다. 그리고 각 코드 포인트는 16진수로 표시하며 문자앞에 'U'를 붙여서 사용한다.

UTF-8 인코딩

Unicode를 인코딩하는 방식 중 가장 일반적인 방식이며, 문자를 표현하는데 필요한 byte 수가 글자마다 다르다.

예를 들어, 'abcd' 문자를 저장한다면, 각 문자당 1byte씩 4byte만으로 문자를 표현할 수 있다.

'가나다'라는 문자를 저장한다면, 각 문자당 3byte가 필요하여 총 9byte의 크기가 필요하다. (이것은 Unicode를 만든 협회에서 지정한 규칙이며, 전세계 공통이다.)

UTF-8 인코딩이 가장 인기 많은 이유 중 하나는, 기존 ASCII코드 파일까지도 깔끔하게 읽을 수 있다는 것이다. 유니코드의 첫 128개의 문자는 아스키 코드의 128개의 문자와 동일하기 때문이다.

문자는영문 대/소문자, 한글, 한자 등의 문자와 +, *, @ 등 특수문자, 0, 1, 2 등 숫자 등으로 구성되어 있다.

컴퓨터에서는 이러한 문자들을 각각 구별할 수 있도록 약속된 비트 정보를 통해 문자를 표현할 수 있도록 하고 있으며, 한 문자를 표현하기 위해 여러개의 비트를 사용한다.