될때까지

개념정리 :: 인코딩, 유니코드, 아스키코드, UTF-8 본문

학습/개념정리

개념정리 :: 인코딩, 유니코드, 아스키코드, UTF-8

랖니 2022. 5. 6. 18:58
728x90
이 블로그에 정리되어있는 모든 개념들은 학습 개념으로 혼자 정리한 내용입니다.
잘못 기술한 부분이 있을 수 있으니 발견하시면 언제든지 지적해주세요😄

컴퓨터는 손가락이 2개라서 2개만 셀 수 있다. 컴퓨터에 전압이 흐른다 / 안흐른다 2가지의 경우로, 이를 0과 1로 대변해 데이터들을 처리한다. 이때의 이 0과 1은 데이터의 최소 단위이며, 비트(bit)라고 부른다. 이를 2진법 binary라고 한다. 그렇다면 우리가 사용하는 언어들은 어떻게 컴퓨터가 알 수 있는 걸까? 문자와 숫자를 1대1로 매칭시킨 문자표(character set)를 사용한다. 문자를 숫자로 바꾸고 그 숫자를 또 2진법으로 바꿔서 0과 1로 이루어진 숫자로 바꿔버리면, 컴퓨터가 읽을 수 있게 된다. 이처럼 사람의 언어를 컴퓨터의 언어로 바꾸는 것을 인코딩이라고 한다.

 

이 문자표는 기준이 없었다. 그래서 각자 표현하는 방법이 기기마다 모두 달랐다. 어느 컴퓨터에서는 a를 1이라 읽고, 어떤 컴퓨터에서는 a를 2라 읽었다. 서로 호환되지 않으니 불편함을 겪었고, 이러한 불편함을 없애기 위해 숫자와 문자를 국제적으로 매칭시켜 규칙을 만들었고, 이를 아스키코드라 한다.  

 

아스키코드표가 만들어질떄는 주로 영어권 사람들만 컴퓨터를 이용했었다. 하지만 컴퓨터의 대중화로 여러 나라 사람들이 컴퓨터를 사용하게 되었고, 또 다양한 표준들이 생겨났다. 이 많은 표준들을 또한번 합치기 위해 유니코드가 생겼다.

 

하지만 이 유니코드도 문제가 있었으니.. 유니코드가 영어를 읽을 땐 1바이트를, 그리고 한글을 표현할 때는 2바이트를, 또 다른 문자를 표현할때는 3바이트로 표현하는 등 정해진 방법이 없이 읽어야 하니까 컴퓨터가 혼란이 생겼다. 그래서 어떤 글자는 1바이트로 읽어, 저런 글자는 2바이트로 읽고! 하고 정해주기 위해 다양한 인코딩 방식이 생겨났고, 그 중 하나가 UTF-8이다.

 

*참고한 영상

 

728x90