CS 2022. 12. 5.

[⚙️CS_001] Base64

 

 

글 목표

Base64가 무엇이며 왜 Base64 방식을 사용하는지 이해하기

 

예상 소요시간

5분

 

 

 

 

 

Base64란?

 

컴퓨터 분야에서 쓰이는 Base 64 (베이스 육십사)란 8비트 이진 데이터(예를 들어 실행 파일이나, ZIP 파일 등)를 문자 코드에 영향을 받지 않는 공통 ASCII 영역의 문자들로만 이루어진 일련의 문자열로 바꾸는 인코딩 방식을 가리키는 개념이다.
출처 : Wikipedia

 

 

위키백과의 말이 조금은 어렵죠?

조금 더 쉽게 말하자면, Base64란 인코딩의 방식의 한 종류입니다. 인코딩이란 파일에 저장된 정보의 형태나 형식을 다른 형태로 변환하는 과정, 혹은 그 변환 방식을 말합니다. 우리는 보통 데이터 표준화, 보안, 처리 속도 향상, 저장 공간 절약 등을 목적으로 인코딩을 합니다. 즉 Base64는 파일의 정보를 다른 형태로 바꾸는 방법 중 하나입니다.

 

 

 

Base64는 64비트를 사용하여 인코딩합니다. 왜 64비트 일까요? 그 이유는 ASCII에 있습니다. Base64가 인코딩을 시작하면 기존의 바이트를 ASCII코드로 변환을 하는데, 이때 사용하는 ASCII코드가 총 64개 (알파벳 대소문자, 0-9, 특수기호 2개)입니다. 64개의 문자, 즉 ASCII가 표현할 수 있는 가장 큰 진법이 64비트이기 때문에 64진법을 사용하는 것입니다.

 

 

 

Base64는 원본 문자열> ASCII binary> 6bit로 cut> Base64 encodeing의과정을 거쳐 인코딩합니다.

예 ) Man

출처 : Wikipedia

 

위와 같은 방식으로 인코딩 된 파일은 기존의 파일에 비해 4/3배 커진다는 특징이 있습니다. 

 

 

 

 

 

 

 

 

Base64를 쓰는 이유

 

그러면 우리는 왜 Base64 방식을 사용하는 것일까요? 기존의 파일보다 용량이 4/3배나 커지는데도 굳이 Base64로 인코딩해야 할 이유가 있을까요? 그 이유는 바로 Base64를 사용하면 바이너리 데이터의 손실을 막을 수 있기 때문입니다.

 

Base64가 아닌 ASCII로만 데이터를 보내게 되면 1bit의 손실이 발생할 수 있습니다. ASCII코드는 7 bit 방식으로 인코딩하는데, 남은 1bit를 처리하는 방식이 시스템별로 다르기 때문이죠. 또한 일부 제어 문자 같은 경우 시스템별로 다른 코드값을 가지기도 합니다. 이렇게 다른 시스템 규칙 사이에서 인코딩, 디코딩이 발생하면 데이터가 손실되는 상황이 발생할 수 있습니다.

 

하지만 Base64는 인코딩할 때 ASCII 중 제어 문자와 일부 특수문자를 제외한 64개의 안전한 출력 문자만 사용합니다. (위의 A-Z, a-z, 0-9를 의미) 이 덕분에 1bit의 손실이 발생하는 것을 막을 수 있게 되면서 정보를 온전히 보존할 수 있게 됩니다.

 

 

 

 

 

결론적으로,

Base64를 사용하는 이유는 데이터의 손실을 방지할 수 있기 때문이라고 할 수 있습니다 💁

 

 

 

'CS' 카테고리의 다른 글

HTTP에 대해 알아보기(발전 과정, 특징)  (0) 2023.05.23
URI과 URL, URN  (0) 2023.05.19
PORT와 DNS  (0) 2023.05.12
IP (Internet Protocol, 인터넷 프로토콜)  (0) 2023.05.11