[TIL] CS 기초 - 문자열, 이미지

Alex J. Lee·2021년 11월 25일
0

TIL

목록 보기
57/58

Today I Learned

문자열

유니코드 (Unicode)

  • 전 세계 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 산업 표준
  • 표준에는 ISO/IEC 10646 Universal Character Set, 문자 인코딩 방식, 문자 정보 데이터베이스, 문자 처리 알고리즘 등이 포함됨
  • 유니코드 협회 (Unicode Consortium)에서 제정
  • 유니코드의 문자에는 언어 표기 문자 뿐 아니라 악보 기호, 이모티콘, 기타 기호들도 포함된다.
  • 목적 : 현존하는 문자 인코딩 방법을 유니코드로 통일하는 것
    • Encoding(부호화) : 사람이 인지할 수 있는 형태의 데이터(문자, 그림 등)를 약속된 규칙에 따라 컴퓨터가 이해할 수 있는 신호(0과 1)로 변환하는 것을 말한다. 반대로 신호를 문자로 해독하는 것을 Decoding(복호화)라고 한다. 인코딩/디코딩을 하기 위한 기준이 문자셋(Character Set)이다. 문자셋에는 키(숫자)와 값(문자)이 1:1로 매핑되어 있다.
    • 초기에는 ASCII(7비트로 영문 알파벳, 숫자, 32개 특수문자, 공백 표현)가 사용되었으나 세계 곳곳에 인터넷이 보급되면서 표현해야할 문자가 증가하면서 전 세계 모든 문자들의 문자셋을 표준화하기 위한 대체 방식이 필요해졌다. 표준 문자셋에 대한 논의의 결과로 유니코드가 등장하게 되었다.
  • 유니코드 문자는 글자 코드를 U+(16진수)로 표기한다. (예: '가' = U+AC00)

UTF-8 vs. UTF-16

  • UTF : Universal Coded Character Set Transformation Format
  • 인코딩 방식의 차이(8bit/16bit). 유니코드표의 키(숫자)들을 어떻게 표현하느냐의 차이.
  • UTF-8
    • 가변 길이 인코딩 : 한 문자를 나타내기 위해 1byte(=8bit) ~ 4byte까지 사용
    • ASCII 코드의 경우 1byte만으로 표현 가능. 영문 외 글자는 2, 3byte, 보조 글자는 4byte.
    • 네트워크를 통해 전송되는 텍스트는 주로 UTF-8로 인코딩
    • byte 순서가 고정됨
  • UTF-16
    • 유니코드 코드 대부분을 16bit(=2byte)로 표현 (기타 문자는 32bit(=4byte)로 표현)
    • 이진법으로 표현된 문자를 16bit로 그대로 사용하며 바이트 순서에 따라 UTF-16의 종류도 달라짐
  • 한글은 UTF-8에서는 3byte, UTF-16에서는 2byte를 차지한다.

이미지 : Vector vs. Raster

  • 컴퓨터가 이미지를 저장하는 방식은 Vector와 Raster로 나눌 수 있다.

File:Bitmap VS SVG.svg - Wikimedia Commons

Vector

  • 이미지 데이터를 함수 형태로 저장 (이미지 데이터가 갖는 모양을 함수로 표현)
  • 이미지 크기에 상관없이 적은 용량을 차지한다
  • 이미지를 확대해도 그림이 깨지지 않는다
  • 색상 데이터 구성이 복잡하면 함수로 표현하기 어려워지고 처리 시간이 오래 걸린다
  • 로고, 도안 등 단순한 이미지에 적합
  • 쉽게 래스터 이미지로 변환할 수 있음
  • 포맷 : svg

Raster

  • 비트맵으로 이미지 저장
    • 비트맵 : 비트 배열. 이미지를 픽셀로 나누고 각 픽셀의 색상 데이터를 저장
  • 고해상도일수록, 이미지 크기가 클 수록 파일 크기도 커진다
  • 이미지를 확대하면 그림이 깨진다
  • 이미지가 복잡한 경우 벡터로 변환하는 데 시간이 오래 걸린다
  • jpg, gif, png
profile
🦄✨글 잘 쓰는 개발자가 되기 위해 꾸준히 기록합니다 ✨🦄

0개의 댓글