Base64가 뭔가요
개발 문서를 보다 보면 Base64라는 단어가 나옵니다. 긴 영문자와 숫자로 된 문자열인데 뭔지 모르겠습니다. 암호화인가요 인코딩인가요. Base64의 원리와 실무에서 어떻게 쓰이는지 설명해드릴게요.
인코딩이에요
암호화가 아니라 인코딩입니다. 바이너리 데이터를 텍스트로 바꾸는 방식입니다. 64개의 문자만 사용합니다. A-Z a-z 0-9 그리고 + / 기호입니다. 누구나 디코딩해서 원본을 볼 수 있습니다. 보안 목적이 아니라 전송 목적입니다.
왜 필요한가요
이메일은 원래 텍스트만 보낼 수 있었습니다. 이미지나 파일을 보내려면 텍스트로 변환해야 합니다. Base64로 인코딩하면 가능해집니다. HTML에 이미지를 직접 삽입할 때도 씁니다. API로 파일을 전송할 때도 활용합니다.
인코딩 방법
3바이트를 4글자로 변환합니다. 그래서 용량이 약 33% 커집니다. 온라인 도구로 쉽게 변환할 수 있습니다. Base64 인코더에 텍스트를 입력하면 됩니다. 디코딩도 바로 할 수 있습니다.
실무 활용
JWT 토큰이 Base64로 인코딩되어 있습니다. 디코딩하면 내용을 볼 수 있습니다. CSS에서 작은 아이콘을 Base64로 넣기도 합니다. 별도 이미지 파일 없이 스타일시트에 포함됩니다. API 인증에서 Basic Auth도 Base64를 씁니다.
주의사항
Base64는 암호화가 아닙니다. 민감한 정보를 Base64로만 보내면 안 됩니다. 누구나 디코딩해서 볼 수 있습니다. 보안이 필요하면 HTTPS나 암호화를 써야 합니다. 용량이 커지니 큰 파일에는 비효율적입니다.
개발자 도구
터미널에서 base64 명령어로도 변환할 수 있습니다. 브라우저 콘솔에서 btoa atob 함수로 가능합니다. 비밀번호 생성기와 개발 도구들을 함께 활용하면 작업이 편리해집니다.