Earn this, Earn it.
TIL - UTF-8이란? 본문
코딩을 하다보면 인코딩 관련해서 UTF-8 이란 말을 많이 들어봤을 것입니다.
저도 평소 많이 보았지만 그 의미에 대해 한 번도 생각해 본 적이 없어서 이번 기회에 공부하였습니다.
UTF-8 ?
이는 유니코드(Unicode)를 위한 가변 길이 문자 인코딩 방식이라고 위키백과에 나와있습니다.
(Universal Coded Character Set + Transformation Format – 8-bit 의 약자)
여기서 유니코드란? 전 세계 모든 문자를 컴퓨터에서 일관되게 표현하기 위한 산업 표준으로서 유니코드 협회에서 제정한다고 하네요.
기원에 대해 살펴보면 초기에 ASCII 코드로 문자를 주고 받을 때, 1바이트로는 표현에 한계가 있어서 2~4바이트로 세상의 모든 문자를 할당하였던 것이 유니코드인데요. 하지만 로마자의 경우는 용량이 두 배가 되어 비효율적인 셈이 되어서 가변 길이 문자 인코딩 방식인 (UTF-8)을 도입하여 기존 ASCII와 호환되는 규격을 만들었다고 하네요.
UTF-8의 인코딩
그러면 UTF-8은 어떤 방식으로 인코딩을 지원할까요?
대표적으로 한글의 인코딩 방식을 살펴보겠습니다.
다음은 https://studyforus.tistory.com/167 [Study For Us] 글을 인용하였습니다.
조합형 방식
한글의 편리함을 그대로 가지고 있는 방식으로 자음과 모음을 초성, 중성, 종성으로 구분하여 문자를 작성하는 방식을 이야기 합니다. 초성, 중성, 종성을 각기 따로 인식하고 그 것들을 하나의 바이트로 인식하고 조합되어, 총 3바이트의 문자로 인식합니다. (다른 종류도 있긴 하지만 3바이트 방식이 가장 일반적인것 같습니다.)
완성형 방식
문자를 하나의 완성되어져 있는 글자로 인식하는 방식입니다. 한글이 "가"부터 만들어 질 수 있는 문자표를 토대로 문자를 인식합니다. 유니코드보다는 확장성이 떨어지는데 그 이유는 만약 "쀏" 이라는 글자가 완성형 문자표가 있지않다면 "□" 식으로 표기가 됩니다.
오래된 한글 표현 방식입니다.
이해하기 쉬운 이미지가 있어서 참고하시는데 도움이 될 듯합니다.
UTF-8의 경우에는 조합형 방식의 문자집합(Charater Set)이면서, 유니코드 인코딩 방식중 하나입니다. 유니코드 인코딩 방식에서 가장 대표적인 문자집합인데, 그 이유는 ASCII 문자들을 표현할 수 있기 떄문입니다. 따라서 유니코드 인코딩 하면 UTF-8 방식을 많이 이야기 합니다.
출처: https://studyforus.tistory.com/167 [Study For Us]
UTF-8의 예시
그렇다면 UTF-8의 예시를 더 알아볼까요?
UTF-8에서 U+0000부터 U+007F 범위에 있는 ASCII 문자들은 1바이트만으로 표시됩니다.
그리고 4바이트로 표현되는 문자는 모두 기본 다국어 평면(BMP) 바깥의 유니코드 문자이며, 거의 사용되지 않는다고 하네요.
여기까지 간단히 UTF-8에 대해 알아보았습니다.😁
'[개발 공부]' 카테고리의 다른 글
[읽고 정리하기] 함수형 자바스크립트 - 1장 (1) | 2021.12.18 |
---|---|
TIL - [OSI 7 계층] 물리/데이터 링크 계층 (2) | 2021.12.12 |
TIL - AJAX란 무엇인가? (2) | 2021.12.04 |
TIL - HTTPS에 대해서 (0) | 2021.11.27 |
TIL - defer/async 와 ssr/csr (0) | 2021.11.17 |