본문 바로가기

개발 관련 부가 지식/기타

인코딩, Charset, base64, 아스키 용어 정리

728x90
728x90

필수 지식

컴퓨터는 문자를 읽을 수 없다

-> 01010110 등과 같은 이진법 숫자를 읽을 수 있다

( 0과 1 데이터는 이진데이터, binary data 라 불림, 모든 data는 바이너리 데이터)

-> 따라서 우리가 컴퓨터를 가운데 두고 문자를 주고 받을 때에는 문자를 이진법 숫자에 매칭시켜서 컴퓨터한테 줘야한다.

 

1. 인코딩 (encoding)

아주 넓게 얘기하면 데이터를 변환하는 것이다.

좁게 얘기하면사람이 읽을 수 있는 데이터를 컴퓨터가 읽을 수 있는 부호로 전환해주는 것이다.

(각 분야마다 정확한 뜻은 다르고 변환한다는 뜻은 같다.)🤷‍♀️

 

2. 디코딩 (decoding)

디코딩은 인코딩의 반대 개념이다.

 

3. Charset

charset은 인코딩 규칙(프로토콜)이다,

어떤 이진수 숫자가 어떤 문자로 바꾸어어야 하는지는 미리 정해놓은 규칙들(매칭 표)로 보면된다.

 

---Chartset 의 종류----------------------------------------------------------------------------------

- ASCII

가장 처음으로 만들어졌고, 127개의 영문과 숫자로 이루어져 있다.

 

- UNICODE

아스키코드를 보완하기 위해 나왔으며, 모든나라의 언어를 표현할 수 있다.

------------------------------------------------------------------------------------------------------------

 

UTF-8 이란?🤔

UNICODE는 모든 나라의 언어를 표현하는 문자열 셋이다.

UTF-8은 유니코드의 문자열셋을 이용하는 여러 인코딩 방식 중 하나이다.

 

인코딩 방식?🤔

유니코드에서 A가 65일 때 binary data로는 1000001 이다.

컴퓨터는 1000001로 딱 7비트만 써서 저장할 수도 있고,

같은 데이터를 01000001  8비트(1바이트)로 저장할 수도 있다.

 

UTF-8은 

가변 인코딩방식이다. 글자마다 byte 길이가 다르다는 것이다. ‘a’는 1 byte이고 ‘가'는 3 byte이다

(규칙은 인터넷에서 찾아볼 수 있다)🤦‍♂️