매일 한걸음씩 성장하기

문자열(String)

문자열(String)은 메모리에 저장된 일련의 연속된 문자(Character)들의 집합을 의미합니다.

예로 "안녕하세요"는 "안", "녕", "하", "세", "요"라는 5개의 문자로 이루어진 문자열이라고 할 수 있습니다.

 

문자열은 문자의 종류에 따라 크기가 달라집니다.

알파벳 대소문자 52자(A-Za-z), 숫자 10자(0-9), 각종 특수기호는 1byte입니다.

하지만 한글, 한자 등은 2byte입니다.

 

 

유니코드(Unicode)

유니코드(Unicode)는 전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 산업 표준입니다.

사람은 매우 다양한 언어를 사용하지만 컴퓨터는 0, 1만 이해합니다. 그래서 컴퓨터와 사람이 대화하기 위해 중개자가 필요한데 이 중개자 역할을 하는 것이 바로 유니코드입니다.

 

유니코드는 사람이 사용하는 각각의 문자에 번호를 매기는 방식입니다.

최대 21bit를 사용하여 전세계의 문자를 표현할 수 있습니다.

 

유니코드를 사용하여 프로그래머는 문자 인코딩을 제작할 수 있고, 컴퓨터는 그 인코딩을 사용해 같은 파일이나 프로그램 내에서 어떠한 언어 조합이든 상관없이 저장, 처리, 전송할 수 있습니다.

유니코드 한글 문자표

 

문자 인코딩(character encoding)은 사람이 사용하는 언어를 컴퓨터가 이해할 수 있는 언어로 변경하는 것을 의미합니다.

문자 인코딩 방식에는 여러가지가 있는데 문자를 쓰고 읽을 때 문자 인코딩이 다르면 글자 깨짐 현상이 발생하기 때문에 어떤 인코딩 방식을 사용했는지 알아야 합니다.

 

이번 글에서는 대표적인 유니코드 인코딩 방법인 UTF-8과 UTF-16에 대해서 이야기해보고자 합니다.

 

UTF-8

UTF-8은 Universal Coded Character Set + Transformation Format – 8-bit의 약자로 유니코드를 위한 가변 길이 문자 인코딩 방식 중 하나입니다.

UTF-8은 1~4byte를 사용하여 유니코드 한 문자를 나타냅니다.

자주 사용되는 문자는 짧은 바이트로 표현하고 그렇지 않은 문자는 긴 바이트로 표현함으로써 저장 공간을 효율적으로 사용할 수 있습니다.

아스키 코드와 호환이 가능하며 대부분의 환경에서 사용하고 있습니다.

특별히 JSON은 UTF-8 인코딩만 사용하며 다른 문자열 인코딩은 지원하지 않습니다.

UTF-8 인코딩 규칙

 

UTF-16

UTF-16(16-bit Unicode Transformation Format)도 UTF-8과 같은 유니코드 문자 인코딩 방식의 하나입니다.

UTF-16은 UTF-8처럼 자주 사용되는 문자는 2byte, 그렇지 않은 문자는 4byte로 표현하는 가변 길이 인코딩 방식입니다.

아스키 코드와 호환되지 않으며 java, window와 같은 환경에서 사용하고 있습니다.

UTF-16 인코딩 규칙

 

 

Reference

 

'Level Up > Study' 카테고리의 다른 글

[JavaScript] IIFE  (0) 2021.06.21
[CS] 가비지 컬렉션  (0) 2021.06.20
[JavaScript] rest syntax와 spread syntax  (0) 2021.06.19
[HTTP] method  (0) 2021.06.18
[HTML] <script> 태그  (0) 2021.06.14

공유하기

facebook twitter kakaoTalk kakaostory naver band