-
Base64EDI 관련 기술 용어 2022. 7. 27. 10:30
지난번 character Encording과 UTF-8, 한글 인코딩 등을 알아봤습니다.
이번에는 인코딩과 관련해서 자주 나오는 Base64를 알아보겠습니다.
Base64
Base64는 전자 메일을 통한 이진 데이터 전송 등에 많이 사용되는 인코딩입니다.
Base64를 사용하는 이유는 메일에서 이미지, 오디오 파일을 보낼 때, 모든 플랫폼에서 안보이거나 깨지는 일이 생기지 않기 위함입니다.
Bynary 데이터를 텍스트로 주고 받으면서, 안전한 출력이 가능합니다.
base64는 바이너리 데이터를 문자로 변환하는데, 인쇄 가능한 숫자만을 이용하여 인코딩하는 방식으로 공통 ASCII(아스키) 코드 영역의 문자로만 이루어진 문자열로 바꾸는 인코딩입니다.
8비트 이진 데이터를 64개의 문자를 이용하여, 아스키 영역의 일련의 문자열로 바꿉니다.
아스키 텍스트로 변환한 데이터를 6비트씩 나눕니다.
각 6비트에 해당하는 문자를 Base 64 색인 표에서 찾아서 매핑하고, 남은 비트가 6비트 보다 적다면 = 기호(패딩문자)로 채우게 됩니다.
정리하자면 문자열을 컴퓨터가 이해할 수 있는 아스키 코드로 인코딩하고, 그것을 다시 base64 코드 표를 통해 인코딩 하는 것입니다.
Base64 변환 단계
위 예시를 통해 자세히 살펴보도록 하겠습니다.
Many라는 각 문자에 해당하는 아스키 코드를 찾습니다.
77 97 110 121이 됩니다.
해당 코드를 바이너리로 변환하면, 01001101 01100001 01101110 01111001이 됩니다.
위 8비트 바이너리를 6비트씩 나누면, 010011 010110 000101 101110 011110 01이 됩니다.
이 때 뒤에는 2비트만 남는데, 남는 비트 뒤에는 0을 채워 6비트로 만듭니다.
그럼 010011 010110 000101 101110 011110 0100000이 됩니다.
각 6비트에 해당하는 문자를 Base64 색인 표에서 찾아서 매핑하고, 0으로 채운 부분은 패딩문자(=)로 채우면 인코딩이 마무리 됩니다.
010011은 T, 010110은 W, 000101은 F, 101110은 u, 011110은 e, 0100000은 Q입니다.
그리고 0으로 채웠던 부분은 =으로 표기하며, 0 두개를 패딩문자 = 하나로 표기합니다.
위에서는 0을 4개 채웠기 때문에 ==이 됩니다.
따라서 Many를 Base64로 변환하면 TWFueQ==이 됩니다.
MIME
Base64는 인코딩은 MIME에서 주로 사용되는데, 아스키 코드에서 지원하지 않는 언어나 이진 데이터로 구성된 실행파일, 미디어 파일을 전송하기 위해 탄생되었습니다.
MIME는 Multipurpose Internet Mail Extensions으로 다목적 인터넷 메일 확장이라는 뜻으로, 인터넷의 전자 메일에서 사용되는 문자 데이터를 표현하기 위한 형식 표준입니다.
이메일을 송신하는 측에서는 전송 전 이진 데이터를 아스키 코드로 변환하고, 수신 측에서는 원래 형식으로 역변환합니다.
MIME는 이메일 이외의 어플리케이션에서도 중요하게 사용되며, 월드와이드웹(www)을 위한 HTTP 프로토콜 통신에서도 사용됩니다.
[참고 자료]
이렇게 Base64는 이미지가 깨지지 않게, 잘 디코딩해줍니다.
위 사이트에서 이미지도 Base64로 인코딩하는 것을 볼 수 있습니다.
궁금하시다면 한 번 해보시는 걸 추천드립니다.
'EDI 관련 기술 용어' 카테고리의 다른 글
SOA (Service Oriented Architecture) (0) 2022.08.19 소켓(Socket) (0) 2022.08.05 UTF-8, UTF-16, UTF-32, 한글 인코딩 (0) 2022.07.20 문자 인코딩(Character Encoding) (0) 2022.07.15 AS2 작동방식 (0) 2022.06.30