[Etc] Base64란?
✔ Base 64 인코딩
- 프로젝트 진행중 Base64 인코딩 관련 내용이 존재하여 간략히 정리
✔ 인코딩?
파일에 저장된 정보의 형태
나 형식
을 데이터 표준화, 보안, 처리속도 향상,
저장 공간 절약 등을 위해서 다른 형태로 변환하는 처리 혹은 그 처리 방식.
이메일
등의 전송 동영상
이나 이미지
영역에서 가장 많이 사용되며,
반대말을 디코딩
이다.
✔ Base 64 인코딩
Binary Data
를Text
로 변환하는 Encoding 방법 중 하나Binary Data
를 Character set에 영향 받지 않고ASCII 영역의 문자로만 이루어진 문자열로 바꾸는 Encoding
방식- 남는 공간이 있을경우
padding
을 통해 빈 공간을0
으로 채워준다.
Base64 변환표
24bit의 buffer를 생성하여 위쪽(MSB)부터 바이트 데이털르 넣은 뒤,
버퍼의 위쪽부터 6bit
단위로 잘라 Base64 테이블의 ASCII 문자로 변환.
원본 문자열 > ASCII binary > 6bit cutting > base64 encoding
Base64 예제
- 위 표는 ASCII 코드 표입니다.
Man
이라는 세 글자 단어를 Base64로 인코딩 한다면- Man > 77 97 110 > 01100001 01101110 > TWFu 순으로 변환
Base64 사용 이유
😇 Base64를 사용하는 이유가 무엇인지 간략히 알아보자
Base64를 사용하는 경우
- Base64로 인코딩을 하게되면 6bit당 2bit의 Overhead가 발생
- 전송해야 될 데이터의 크기가 약 33% 정도 증가
왜 사용을 해야할까?
통신 과정에서 Binary Data의 손실을 막기 위해 사용이 된다
- 플랫폼 독립적으로 Binary Data를 전송할 필요가 있는경우 ASCII로 Encoding하여 전송하게 되면 문제가 생길 수 있다
대표적인 문제점
ASCII
는7bits Encoding
인데 나머지1bit
를 처리하는 방식이 시스템별로 상이하다- 일부 제어 문자 (e.g. Line ending)의 경우 시스템 별로 다른 코드값을 가짐
- 즉, ASCII는 시스템 간 데이터를 전달하기에 꼭 안전하지만은 않다.
정리
Base64는 HTML 또는 Email과 같은 문자를 위한 Media에 Binary Data를
포함해야 될 필요가 있을 때, Binary Data가 시스템 독립적으로 동일하게 전송 또는 저장되는걸 보장하기 위해 사용한다.
댓글남기기