문자열

정성준 (Seongjun Chung)·2021년 9월 13일
0

컴퓨터공학 기초

목록 보기
1/1

문자열 하나는 몇 바이트인가??

영어의 경우 알파벳 하나가 1바이트(byte)를 차지하던 시절이 있었으나, 글로벌 시대에는 유니코드를 사용해야 텍스트를 정확하게 저장할 수 있다. 그러하여 이에 대한 답변은 자료형이 차지하고 있는 바이트를 이해할 때 답변이 가능하다.

유니코드는 무엇인가?

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

유니코드 탄생 이전에는, 같은 한글이 적힌 텍스트 파일이라도 표현하는 방법이 제각각이였다. 어떤 파일을 지원하지 않는 다른 *인코딩 형식으로 저장되어 있는 경우에는 파일을 제대로 불러올 수 없었다. 기본적으로 유니코드의 목적은 현존하는 문자 인코딩 방법을 모두 유니코드로 교체하는 것이다.

여기서 인코딩이란?

어떤 문자나 기호를 컴퓨터가 이용할 수 있는 신호로 만드는 것. 이 신호를 입력하는 인코딩과 문자를 해독하는 반대의 개념인 디코딩을 하기 위해서는 미리 정해진 기준을 바탕으로 입력과 해독이 처리되어야 한다.
이렇게 인코딩과 디코딩의 기준을 문자열 세트 또는 문자셋(Charset)이라고 한다. 이 문자셋의 국제 표준이 유니코드이다.

ASCII 문자?

영문 알파벳을 사용하는 대표적인 문자 인코딩으로 7비트로 모든 영어 알파벳을 표현 가능함. 52개의 영문 알파벳 대소문자와, 10개의 숫자, 32개의 특수 문자, 그리고 하나의 공백 문자를 포함한다.

유니코드는 ASCII를 확장한 형태이다!

UTF-8과 UTF-16의 차이점은 무엇인가?

위 둘은 인코딩 방식의 차이를 의미한다.

UTF-8 특징

- 가변 길이 인코딩

UTF-8은 유니코드 한 문자를 나타내기 위해 1바이트(=8bits)에서 4바이트까지 사용한다. 이처럼 가변 길이를 가지는 인코딩 방식이고 네트워크를 통해 전송되는 텍스트는 UTF-8로 인코딩이 된다. 이유는 사용된 문자에 따라 더 작은 크기의 문자열을 표현할 수 있기 때문이다.

- 바이트 순서가 고정됨

UTF-16에 비해 바이트 순서를 따지지 않고, 순서가 정해져 있다.

UTF-16 특정

- 코드 그대로 바이트로 표현 가능하며 순서가 다양함

UTF-16은 유니코드 코드 대부분을 16비트로 표현한다.

대부분에 속하지 않는 기타 문자는 32비트로 표현하므로 UTF-16도 가변 길이라고 할 수 있으나, 대부분 2바이트로 표현한다.

한글의 경우 UTF-8에서는 3바이트, UTF-16에서는 2바이트를 차지한다.

profile
ZEP에서 프론트엔드 개발을 하고 있습니다.

0개의 댓글