데이터 분석가 Damla's blog

[컴퓨터 지식] UTF-8 은 무엇일까? 본문

성장 | 생각 기록

[컴퓨터 지식] UTF-8 은 무엇일까?

DA Damla 2022. 7. 6. 20:25

컴퓨터는 기본적으로 이진법(0과 1, binary)로 이루어져있다.

모든 컴퓨터내의 자료는 다 이진법으로 구성되어 있다.

우리가 보는 모든 데이터는 여러 개의 1과 여러 개의 0으로 이루어져 있다.

 

가장 기본적인 이진법(Binary) 유닛(unit)은 바이트(bite)이고 한개의 1과 한개의 0으로 이루어진다. 

그 다음으로 큰 이진법 유닛은 바이트(byte)로 (철자는 다르지만 발음이 똑같다) 8개의 바이트(bite)로 구성된다.


 

즉, 1 bite = 00,11,01,10

1 byte = 1100110011001100 8 bites, 16 numbers

이다.

 

1 kb(킬로바이트)는 약 1,000 bytes 이고

1 gb(기가바이트)는 약 1,000,000 bytes로 구성된 것이다.

 


1960년, 미국에서 처음에 아스키코드(ASCII, The American Standard Code for Information Interchange, 미국 정보 교환용 표준 부호)를 발표할 때 알파벳을 이 8 바이트(bytes)로 지정했다.8 바이트로 256개의 조합을 만들 수 있기 때문에 알파벳을 표현에는 전혀 문제가 없었지만 컴퓨터가 전세계에서 사용되면서 다른 언어를 표현하기 위한 코드가 필요하게 되었다.

여러 개의 인코딩 시스템을 가지는 것은 비효율적이고 혼란스러웠기 때문에 모든 문자를 표현할 수 있는 하나의 시스템의 필요성이 대두되었고 유니코드(Unicode)가 등장했다.

 


유니코드는 앞서 말한 것과 같이 아스키코드이 단점을 보완하기 위해 이모지를 포함한 모든 언어를 표현할 수 있다. 그런데 유니코드 자체는 이진법으로 저장되지가 않기 때문에 이진법으로 변환하기 위해서 UTF-8이 필요하다.

 

Unicode <-> UTF-8

유니코드는 UTF-8로 변환이 가능하고 UTF-8은 유니코드로 변환이 된다. 그러니까 두개는 상호변환이 가능한 것이다. 

 

UTF는 “Unicode Transformation Format.” 유니코드로 변환가능한 포맷/형식이라는 의미이다.

다시말해, UTF-8은 8바이트로 unicode를 변환한다는 의미인 것이다.

 

Unicode를 UTF-8으로 변환하는 이유는 저장용량을 줄이기 위해서이다.

 

UTF-8는 우리가 사용하는 95%의 웹사이트에서 기본적으로 사용하는 형식이다.

 

기본값인 것이다. 

만약 사용하는 언어가 영어가 아닌 다른 언어라면 UTF-16을 사용하는 것이 좀더 효율적이겠지만 영어와 숫자로만 이루어져있는 문서라면 UTF-8사용이 좀더 적합하다.

 

 


 

그렇다면 왜 파이썬을 할 때 UTF-8으로 저장해야하는 지는 다음에 알아보겠다.

아래 사이트에서 번역한 내용을 정리하였다.

 

출처

https://blog.hubspot.com/website/what-is-utf-8