8비트의 이진 데이터(Binary Data)를 문자 코드에 영향을 받지 않는 공통 ASCII 영역의 문자들로만 이루어진 일련의 문자열로 바꾸는 인코딩 방식을 가리키는 개념이다.
BASE64로 인코딩 시, 6bit당 2bit의 Overhead가 발생하고, 전송해야 될 데이터의 크기가 약 33% 증가 한다. 그럼에도 사용하는 이유는 통신 과정에서 이진 데이터의 손실을 막기 위해 사용된다.
즉, HTML, 이메일 또는 DB에 이미지를 전송할 경우처럼 이진 데이터를 포함해야 할 때, 포함된 이진 데이터가 시스템 독립적으로 동일하게 전송/저장되는 걸 보장하기 위해 사용한다.
btoa() // 인코딩
atob() // 디코딩
const text = 'hello';
const base64 = btoa(text);
console.log(base64) // 인코딩 되어 출력
📌 참고
BASE64 - Wikipedia
BASE64란 무엇일까? / BASE64 사용 이유와 인코딩과 디코딩
Javascript에서 문자를 BASE64로 인코딩, 변환하는 방법은?