TIL_문자열/그래픽

해달·2021년 9월 9일
0

TIL

목록 보기
48/80
post-thumbnail

Today 공부

  • 문자열(ASCII, UTF-8, UTF-16)
  • 그래픽(Raster/Vector)

문자열

유니코드

  • 전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 산업 표준
  • 목적 : 현존하는 문자 인코딩 방법을 모두 유니코드로 교체

인코딩(부호화)

  • 어떤 문자나 기호를 컴퓨터가 이용할 수 있는 신호로 만드는 것
  • 신호를 입력하는 인코딩문자를 해독하는 디코딩을 하기 위해서는 미리 정해진 기준을 바탕으로 입력과 해독이 처리되어야 한다
  • 인코딩과 디코딩의 기준을 문자열 세트 또는 문자셋(charset)이라고 한다

ASCII

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

0xxxxxxx // 맨 앞 바이트가 0으로 시작하면 한 바이트짜리 ASCII문자이다.(7bit)

UTF-8과 UTF-16의 차이점

인코딩 방식의 차이를 의미
UTF- 뒤에 등장하는 숫자는 비트(bit)
UTF-8에서는 한글은 3 바이트, UTF-16에서는 2 바이트를 차지


UTF-8

특징
1. 가변 길이 인코딩
2. 유니코드 한 문자를 나타내기 위해 8bit(1bytes)기반으로 4 bytes까지 사용
3. 바이트 순서가 고정됨

4가지 패턴
0xxxxxxx                            // 000000-00007F
110xxxxx 10xxxxxx                   // 000080-0007FF
1110xxxx 10xxxxxx 10xxxxxx          // 000800-00FFFF
11110zzz 10zzxxxx 10xxxxxx 10xxxxxx // 010000-10FFFF
1110xxxx 10xxxxxx 10xxxxxx # x 안에 순서대로 값을 채워넣습니다.
11101100 10111101 10010100 // UTF-8로 표현된 '코'

let encoder = new TextEncoder(); // 기본 인코딩은 'utf-8'
encoder.encode('코') // Uint8Array(3) [236, 189, 148]

0xxxxxxx // ASCII
01100010 // UTF-8로 표현된 'b'

UTF-16

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

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


그래픽

비트맵(래스터)

  • 픽셀 기반
  • 사진과 같이 색상의 조합이 다양한 이미지에 적합
  • 확대에 적합하지 않암, 이미지가 깨짐
  • 큰 크기의 이미지는 큰 파일 사이즈를 가짐
  • 이미지의 복잡도에 따라 벡터로 변환하는 것에 오랜 시간이 걸림
  • jpg, gif, png 등이 널리 쓰임

벡터

  • Shape 기반
  • 로고, 일러스트와 같이 제품에 적용되는 이미지에 적합
  • 품질 저하없이 모든 크기로 확대 가능하며, 해상도의 영향을 받지 않음
  • 큰 크기의 벡터 그래픽은 작은 파일 사이즈를 유지할 수 있음
  • 쉽게 래스터 이미지로 변환 가능
  • svg 포맷은 현대의 브라우저에서 대부분 지원

0개의 댓글