차곡차곡 성 쌓기
article thumbnail

본 카테고리는 "혼자 공부하는 컴퓨터구조 + 운영체제" 책과 강의를 기반으로 작성하였습니다.


 

문자 집합과 인코딩

컴퓨터 어떻게 문자를 이해하는지 알기 위해선 다음 3가지 개념을 알고 있어야 한다.

문자 집합, 인코딩, 디코딩

 

▶︎ 문자 집합

  • 컴퓨터가 이해할 수 있는 문자의 모음
  • ex ) 아스키 코드, 유니 코드 등

 

▶︎ 인코딩

  • 코드화 하는 과정
  • 문자를 0과 1로 이루어진 문자 코드로 변환하는 과정

 

▶︎ 디코딩 

  • 코드를 해석하는 과정
  • 0과 1로 표현된 문자 코드를 문자로 변환하는 과정

 

아스키 코드

아스키 코드 표 일부

  • 초창기 문자 집합 중 하나
  • 알파벳, 아리비아 숫자, 일부 특수 문자 및 제어 문자 표현
  • 7비트로 하나의 문자를 표현 => 128개의 문자 표현
    • 1비트는 오류 검출을 위해 사용되는 패리티 비트
  • But 한국어, 중국어 등 표현 불가

 

 

한글 인코딩

한글은 초성, 중성, 종성의 조합이 존재한다. 때문에 한글 인코딩에는 2가지 방식으로 완성형 인코딩조합형 인코딩이  존재한다.

 

▶︎ 완성형 인코딩 

  • 초성, 중성, 종성의 조합으로 이루어진 완성된 하나의 글자에 고유한 코드를 부여하는 방식
  • ex) 강 -> 1110110 10001000 10010101 부여

 

▶︎ 조합형 인코딩

  • 각 초성, 중성, 종성에 고유한 코드를 부여하여 그것들의 조합으로 하나의 글자코드 완성
  • →  0010
  • →  0011 
  • →  0001 0011
  • 0010 0011 0001 0011

 

EUC-KR

  • 대표적인 한글 인코딩 중 하나로 완성형 인코딩 방식이다.
  • 글자 하나하나에 2바이트 크기의 코드 부여 →  2¹⁶ 개
    • 16bit = 4자리16진수
  • 한국어 인코딩이기 때문에, 다국어 지원 프로그램을 위해선 언어별 인코딩 적용이 필요하다

모든 언어, 특수 문자끼리 통일된 문자집합과 인코딩 방식이 필요!

 

 

유니 코드와 utf-8

 

모든 언어, 특수 문자끼리 통일된 문자집합과 인코딩 방식

▶︎ 유니코드

 

  • 글자 하나에 4바이트 크기까지 부여 가능 (32비트, 약 42억자)
  • 한국어는 조합형, 완성형 모두 배당되어 있음
더보기

가 →  U+AC00

  • U+는 16진수를 나타내며, 실제 할당된 코드는 AC00이다.

 

컴퓨터는 문자를 유니코드 표를 통해 할당된 표 값으로 인코딩 값을 삼지 않는다.

할당된 코드 값을 어떻게 처리하는지에 따라 인코딩 방식이 나뉜다.

 

 

▶︎ UTF-8

  • 유니코드 인코딩 방식이다.
  • UTF(Unicode Tranformation Format) == 유니코드 인코딩 방식
  • 가변 길이 인코딩 : 인코딩 결과가 1바이트 ~ 4바이트이다.
    • 유니코드 표에 할당된 범위에 따라 크기가 다르다.
첫 코드 포인트 마지막 코드 포인트 1바이트 2바이트 3바이트 4바이트
0000 007F 0XXXXXXXX      
0080 07FF 110XXXXX 10XXXXXX    
0800 FFFF 1110XXXX 10XXXXXX 10XXXXXX  
10000 10FFFF 11110XXX 10XXXXXX 10XXXXXX 10XXXXXX
  • 유니코드 문자에 부여된 값의 범위가 0부터 007F까지는 1바이트로 표현
  • 유니코드 문자에 부여된 값의 범위가 0080부터 07FF까지는 2바이트로 표현
  • 유니코드 문자에 부여된 값의 범위가 0800부터 FFFF까지는 3바이트로 표현
  • 유니코드 문자에 부여된 값의 범위가 10000부터 10FFFF까지는 4바이트로 표현
  • 할당된 코드 값을 빨간 X에 차례대로 넣은 값이 인코딩된 값이다.

 

 

 

 

profile

차곡차곡 성 쌓기

@nagrang

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!