본문 바로가기

TIL

Base 64 인코딩(encoding)이란 무엇인가? - 사용하는 이유

지난 글에서 Base 64 인코딩에 대해서 알아보았다.

어떤 정보를 Base 64 라는 차트에 맞게, 6bit 단위로 인코딩을 하는 것이라는 것!

 

Base 64로 인코딩을 하여 전송하는 이유는 무엇일까?

바로 안전하고 호환성 있게 전송되기 때문이다.

 

그렇다면, 왜 Base 64 인코딩 방식이 안전한 것이고,

다른 방식의 인코딩은 안전하지 못한 것일까?

지금부터 하나하나 파헤쳐보자.

 

 

먼저 컴퓨터는 기본적으로 이진법, 즉 binary(바이너리)인 데이터로 통신한다.

0과 1이라는 무수한 조합을 만들어서 이를 주고 받는데,

이렇게 받아온 0과1 짜리 데이터를 컴퓨터는 프로그램을 통해 읽어, 글자/이미지/음성/영상 등

다양한 방식으로 해석하여 사용자에게 보여준다.

 

문제는..

서로 다른 환경의 컴퓨터가 소통을 하게 된다면? 여기서 문제가 생기게 된다.

예를 들어 이미지를 나타내는 데이터인데, 이를 받는 컴퓨터에서 텍스트로 해석하게 된다면?

혹은 일반 텍스트인데, 특정 명령을 수행하라는 제어문자로 인식하여 받는 컴퓨터가 엉뚱한 명령을 시행하게 된다면?

생각보다 그런 오류는 많다.

위의 글자를 보면 아시다시피, 원래는 텍스트 문서가 아니다.

다른 바이너리 데이터를 글자로 해석하려다 보니, 저런 이상한 해석을 하게 된다는 것이다.

 

 

하지만 base 64는 다르다.

6bit의 조합, 그러니까 ASCII 코드 범위 바깥에 있지 않은 

A-Z, a-z, 0-9, +, / 와 같은 64개의 문자로만 통신이 된다는 점에서,

안전하다는 것이다.

 

위의 사진이 쉬운 예시가 되겠다.