Encoding...Decoding...

samdaso-o·2021년 10월 31일
0

cs

목록 보기
4/4

Encoding? Decoding?

솔직히 많이 보고 알게 모르게 써왔던 것 같다. 이번에 정확한 개념을 확실히 정리해볼려고 한다.

Encoding

모든 문자 또는 기호에 하나씩 일련번호를 부여해 컴퓨터에 저장 또는 통신에 사용할 목적으로 부호화하는 방법이다. 간단하게 말하자면 입력한 문자나 기호를 컴퓨터가 이용할 수 있는 신호로 만드는 것을 뜻한다. (인코딩 = 부호화 = 암호화 / 같은 의미입니다.)

Decoding

인코딩의 반대 개념으로, 인코딩된 문자 또는 기호를 인코딩되기 전으로 돌리는 방법을 디코딩이라고 한다.

Encoding/Decoding을 사용하는 이유?

프로그래밍 언어가 다른 것들을 하나의 규격으로 표준화시켜 사용자의 요구에 따라 사용할 수 있도록 하기 위해서 사용한다고 한다. 인코딩과 디코딩 과정은 사실 표현방식을 바꾸는 것이라고 이해하면 될꺼 같다. 인코딩과 디코딩 과정을 수행하는 와중에 정보의 손실이 없다는 장점이 있다.

다양한 Encoding

  • 대표적인 몇개만 알아보도록 하겠습니다.
  1. ASCII code (아스키 코드)
    0번부터 127번까지 문자에 대해 각각의 번호를 지정한 집합체로 가장 기초가 되고 있는 문자 코드이다.
    7비트방식으로, 모든 문자를 1byte안에서 표현할 수 있다는 장점이 있다. 하지만 로마자 알파벳, 아라비아숫자, 일부 특수문자들만 사용할 수 있다는 단점이 있다.

  2. UTF-8 / UTF-16 (유니코드)
    아스키 코드는 로마자 알파벳만 표현 가능하다는 단점을 개선한 코드로, 전 세계 모든 글자를 다 표현할 수 있는 문자 처리 방식이다. 유니코드는 전세계 모든 문자를 각각 1byte 이상의 크기로 표현할 수 있게 할 수 있는 방식이다. 기존의 인코딩의 문자열보다 크기가 크다는 단점이 있다.

  3. Base 64
    Base64는 ASCII 중 제어문자와 일부 특수문자를 제외한 64개의 문자 코드에 영향을 받지 않는 공통 ASCII 문자만 사용한다. base 64는 6비트방식으로 6비트씩 자른 뒤 6비트에 해당하는 문자를 base64 table에 색인된 값을 찾아 치환하는 방식으로, 이 방식은 2비트가 남는 데이터가 버려지는 현상이 발생되는데, 그럼에도 이 방식을 사용하는 이용하는 이유는 기존의 아스키 코드 방식은 시스템간 데이터를 전달하기에 안전하지 않는 문제 때문이다. 모든 binary datark 아스키코드에 포함되지 않아 제대로 읽지 못하는 단점이 존재하는데, 반면 base64는 제어문자와 일부 특수문자를 제외하고는 읽을 수 있다.

profile
ㅎㅅㅎ

0개의 댓글