본문 바로가기

CS

유니코드의 개념과 사용 목적

  • 유니코드란?

 

유니코드는 전 세계의 모든 문자를 다루도록 설계한 전산 처리 방식입니다. 즉, 전 세계의 숫자와 글자를 키와 값 처럼 1:1로 매핑된 형태의 코드를 의미합니다. 

 

현재의 유니코드는 지구상에서 통용되는 대부분의 문자들을 담고 있으며 심지어 악보 기호, 이모지 태그 같은 것들도 포함 되어있습니다. 

 

  • 표기 방법

유니코드 문자의 경우 해당 글자의 코드를 표기 할 때  U + (16 진수의 숫자) 로 쓴다. 

예를 들면 한글 '가' 는 유니코드에서 16진수로 AC00 라는 코드 넘버를 가지는데 이것을 U + AC00 라고 적는 방식이다. 

 

  • 유니 코드 블럭

유니 코드는 너무 많아서 ASCII 코드 표처럼 한 눈에 들어오는 테이블을 만들기 어렵다. 그래서 블록으로 테이블을 나누어 놓았습니다. 

 

우리가 사용하는 한글의 경우에는 조합형을 위한 자음, 모음과 완성형 한글이 모두 포함 되어있다. 

현대 한국어의 자모 조합으로 나타낼 수 있는 모든 완성형 한글 11,172자(가, 각, 갂 ... 힡, 힢, 힣) 이 모두 들어가 있다. 그래서 '힣', '슌' 처럼 안쓰는 완성형 한글도 전혀 문제 없이 쓸 수 있다. 

 

 

  • UTF-8 과 유니 코드의 관계

 

UTF-8 은 유니코드를 위한 가변길이 문자 인코딩 방식중 하나입니다. 문자 인코딩 방식에는 EUC-KR, CP049등이 있죠.

여기서 문자 인코딩이란 사용자가 입력한 문자나 기호들을 컴퓨터가 이용할 수 있는 신호로 만드는 것을 말합니다. 

 

UCS2, UFT16 계열은 모든 문자를 2바이트로 인코딩 합니다. 이렇게 문자를 2바이트로 표시하면 대부분의 유럽, 한글, 한자, 일본어 등이 표현 가능합니다.

 

하지만 한글 고대어 등 2^16 (2바이트) 범위를 넘어가는 코드 포인트의 문자는 표현할 수 없습니다.

UCS2, UTF16의 문제점은 동아시아 문자같은 멀티바이트 문자들은 낭비가 없지만, 영문자만 사용하는 국가들에서는 첫번째 바이트는 고정값으로 사용해야 하기 때문에 낭비가 생깁니다. 

 

이러한 문제점을 해결하기 위해 등장한 문자 인코딩 방식이 UTF-8 입니다. 

 

UTF-8은 가변길이의 인코딩으로 모든 유니코드 문자를 표현할 수 있습니다. 대신 약간의 비트 연산이 필요합니다. 

 

결론적으로 UTF-8이 가장 낭비가 없이 모든 유니코드를 표현할 수 있기 때문에 현재 인코딩 표준이라고 생각하면 될 것 같습니다. 

 

반응형

'CS' 카테고리의 다른 글

오픈소스 라이선스  (2) 2022.08.15
쿠키와 세션  (0) 2022.01.14
MIME 의 개념과 사용 목적  (1) 2022.01.12
WEB 서버와 WAS의 차이  (0) 2022.01.12
Base64 Encoding 이란?  (1) 2022.01.07