관리 메뉴

클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지

데이터 3 - 0과 1로 문자를 표현하는 방법 2 : 유니코드와 UTF-8 본문

알고리즘 및 자료 관리/컴퓨터 구조 & 운영체제

데이터 3 - 0과 1로 문자를 표현하는 방법 2 : 유니코드와 UTF-8

huenuri 2024. 10. 14. 21:11

이어서 유니코드 인코딩 방식에 대해서 학습해보겠다.


 

 

 


유니코드와 UTF-8

하지만 모든 한글을 표현할 수 없다는 한계가 있다.

 

 

이렇게 해서 등장한 것이 유니코드 문자 집합이다.

 

 

유니코드를 인코딩하는 방식도 이처럼 여러 가지가 있다. 유니코드가 얼마나 다양한 문자를 표현할 수 있는지 실습을 통해 확인해보기로 하자.


 

 

 

유니코드 실습 사이트

 

Unicode Blocks (◕‿◕) SYMBL

Unicode web service for character search. Find, copy and paste your favorite characters: 😎 Emoji, ❤ Hearts, 💲 Currencies, → Arrows, ★ Stars and many others 🚩

symbl.cc

 

 

여러 다양한 언어의 문자들을 확인해볼 수 있다.

 

 

 

그 중에서 arrow를 클릭하면 화살표에도 고유한 16진수가 부여되어 있음을 알 수 있다. 이렇게 부여된 16진수를 코드 문자에 부여된 고유한 값 즉, 유니코드의 코드 포인트라고 한다. 여기 U+는 유니코드의 16진수임을 나타내는 표식이고, 실제로부여된 값은 뒤의 네 자리이다.

하지만 지금은 이 U+가 없이 그냥 16진수만 표시되고 있다. 아마도 이전 사이트에서 이렇게 표시되었나보다.

 

 

 

 

유니코드 문자 집합에는 아스키 코드나 EUC-KR과 같이 각 문자마다 고유한 값이 부여된다. 예를 들어 한에는 D55C가, 글에는 AE00이 부여되어 있다.

 

 

 

유니코드는 글자에 부여ㅕ된 값 자체를 인코딩된 값으로 삼지 않고 이 값을 다양한 방법으로 인코딩한다. 이런 인코딩 방법에는 크게 UTF-8, UTF-16, UTF-32 등이 있다.

 

 

 

 

 

여기 X로 표시된 부분에 유니코드 문자열에 부여된 고유한 값이 들어간다. 이를 이진수로 변환된 값이 자릿수에 들어가는 것이다.

 

한과 글이 UTF-8 방식으로 인코딩된 것이다. 이제 인코딩을 직접 실습해 보기로 하자.

 

 

UTF-8 인코딩 실습 사이트

 

Convert UTF8 to Binary Bits

World's simplest online utility that converts UTF8 to binary. Free, quick, and powerful. Import UTF8 – get binary bits.

onlinetools.com

 

 

 

 

한과 글의 Binary가 잘 출력이 되는 것을 확인할 수 있다.


 

이런 경우에는 혹시 인코딩이 호환되지 않는지, 문자 집합에 속하지 않는 글자를 사용한 건 아닌지 의심해볼 수 있다.


 

 

 

 

 

단원 마무리하기

 

 

조합형과 완성형을 모두 공부해서 EUC-KR에는 두 가지 방식이 모두 있는 줄 알았는데 아니었다. 문자 집합을 기반으로 하는 완성형 인코딩 방식이므로 2번이 답이다. 3번 문제는 어떻게 풀어야 할지 몰라서 인코딩 사이트에 들어가서 답을 구했다.

근데 풀이 과정도 이것과 별로 다르지 않았다. 지금은 그냥 이렇게 인코딩이 된다는 것 정도만 알아두면 될 것 같다.

 


 

학습을 마치고

드디어 2단원 학습을 마쳤다. 3일만에 컴퓨터 구조와 운영 체제 공부를 마치려고 했는데 택도 없을 것 같다. 오늘은 첫날이니 조금 가벼운 마음으로 천천히 공부를 진행했다. 원래 뭐든 처음 공부하는 날에는 무리가 되지 않도록 천천히 가는 편이다. 발부터 조금씩 물에 닿으면서 친숙해지는 시간이 필요하기 때문이다.

이제 컴퓨터 구조와 조금 친해져서 내일부터는 속도를 내도 될 것 같다.