[CS] 컴퓨터 공학 기초
Computer Science

[CS] 컴퓨터 공학 기초

반응형

 

알아두면 좋은 내용이지만, 컴퓨터에 관심이 없거나 코딩짜는 것 밖에 알지 못한다면 결코 좋은자료가 못되어서 유튜브나 검색해서 더 좋은 자료를 보는게 맞는 것 같습니다.

 

관련 유튜브 영상 (말로만 설명해주시만 잘 설명해주어서 좋습니다)

https://youtu.be/ABPOjjre0C8

문자열

유니코드라고 불리우는 인코딩 방식이 통일된 시대를 살아가고 있습니다. 문자열을 다루는 디테일한 방식에 대해 전부 알 필요는 없지만, 프로그래밍 언어마다 문자열을 다루는 자료형의 차이를 이해하기 위해 문자열을 다루는 기본적인 방식은 알고 있어야 합니다.

유니코드?

유니코드(Unicode)는 유니코드 협회(Unicode Consortium)가 제정하는 전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 산업 표준입니다. 이 표준에는 ISO 10646 문자 집합, 문자 인코딩, 문자 정보 데이터베이스, 문자를 다루기 위한 알고리즘 등을 포함하고 있습니다.

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

 

ASCII 문자?

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

유니코드는 ASCII를 확장한 형태입니다.

 

UTF-8과 UTF-16의 차이점

UTF-8 특징: 가변 길이 인코딩, 바이트 순서가 고정됨

UTF-8은 유니코드 한 문자를 나타내기 위해 1 byte(= 8 bits) 에서 4 bytes까지 사용합니다.

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

 

UTF-8은 1 byte에서 4 bytes까지의 가변 길이를 가지는 인코딩 방식입니다. 네트워크를 통해 전송되는 텍스트는 주로 UTF-8로 인코딩됩니다. 사용된 문자에 따라 더 작은 크기의 문자열을 표현할 수 있기 때문입니다. ASCII 문자는 1 바이트만으로 표현 가능한 것처럼 말입니다. UTF-8은 ASCII 코드의 경우 1 byte, 크게 영어 외 글자는 2byte, 3byte, 보조 글자는 4byte를 차지합니다. 이모지는 보조 글자에 해당하기 때문에 4byte가 필요합니다.

 

UTF-16 특징: 코드 그대로 바이트로 표현 가능, 바이트 순서가 다양함

UTF-16은 유니코드 코드 대부분(U+0000부터 U+FFFF; BMP) 을 16 bits로 표현합니다.

U+ABCD라는 16진수를 있는 그대로 이진법으로 변환하면 1010-1011-1100-1101 입니다. 이 이진법으로 표현된 문자를 16 bits(2 bytes)로 그대로 사용하며, 바이트 순서(엔디언)에 따라 UTF-16의 종류도 달라집니다.

 

 

UTF-8에서는 한글은 3 바이트, UTF-16에서는 2 바이트를 차지합니다.

 

 

 

 

 

그래픽

반응형