백엔드/[컴퓨터 공학] 기초

문자열

테오구 2021. 11. 25. 11:54
728x90

Achievement Goals

  • 프로그램, 프로세스, 스레드에 대해 기본적인 개념을 설명할 수 있다.
    • 동시성과 병렬성의 차이를 이해할 수 있다.
    • 자바스크립트 엔진(v8)이 어떤 특징을 가지고 있는지 이해할 수 있다.
  • 프로그래밍에서 문자열을 다루는 방법과 유니코드 및 인코딩에 이해할 수 있다.

 

유니코드

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

 

인코딩

어떤 문자나 기호를 컴퓨터가 이용할 수 있는 신호로 만드는 것, 인코딩과 디코딩의 기준을 문자열 세트 또는 문자셋(charset)이라고 합니다. 이 문자셋의 국제 표준이 유니코드입니다.

 

ASCII

영문 알파벳을 사용하는 대표적인 문자 인코딩으로 7비트로 모든 영어 알파벳을 표현할 수 있습니다.

52개의 영문 알파벳 대소문자와, 10개의 숫자, 32개의 특수 문자, 그리고 하나의 공백 문자를 포함합니다.

 

UTF-8 vs UTF-16

UTF-8

UTF-8은 Universal Codeed Character Set + Transformation Format-8-bit의 약자로 UTF-뒤의 숫자는 비트(bit)입니다.

1. 특징 : 가변 길이 인코딩

1 byte(8bits)에서 4 bytes까지 사용

  • 원리 : 코(유니코드로 U+CF54)를 이진법으로 표시하면 1100-1111-0101-0100으로 표현
    let encoder = new TextEncoder(); // 기본 인코딩은 'utf-8'
    encoder.encode('코') // Uint8Array(3) [236, 189, 148]
    
    (236).toString(2) // "11101100"
    (189).toString(2) // "10111101"
    (148).toString(2) // "10010100"​

 

네트워크를 통해 전송된 텍스트는 주로 UTF-8로 인코딩 됩니다.

 

2. 특징: 바이트 순서가 고정됨

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

 

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

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

U+ABCD라는 16진수를 있는 그대로 이진법으로 변환하면 1010-1011-1100-1101입니다.

 

UTF-8에서는 한글은 8 바이트, UTF-16에서는 2바이트를 차지

728x90

'백엔드 > [컴퓨터 공학] 기초' 카테고리의 다른 글

Checkpoint - 컴퓨터 공학 기초  (0) 2021.11.26
캐시  (0) 2021.11.26
가비지 컬렉션  (0) 2021.11.26
프로세스, 스레드, 멀티 스레드  (0) 2021.11.25
그래픽  (0) 2021.11.25