Base64 인코딩 도구 완벽 가이드
Base64는 바이너리 데이터를 텍스트 형식으로 안전하게 변환하는 인코딩 방식으로, 1987년 RFC 989에서 처음 정의된 이후 인터넷의 핵심 기술로 자리 잡았습니다. 64개의 안전한 ASCII 문자(A-Z, a-z, 0-9, +, /)를 사용하여 모든 종류의 바이너리 데이터를 텍스트로 표현할 수 있습니다. 본 도구는 텍스트와 파일 모두를 Base64로 양방향 변환할 수 있는 무료 온라인 도구입니다.
Base64 인코딩의 핵심 원리는 3바이트(24비트)의 바이너리 데이터를 4개의 6비트 단위로 나누고, 각 6비트 값을 미리 정의된 64개 문자 중 하나로 매핑하는 것입니다. 입력 데이터가 3의 배수가 아닌 경우에는 패딩 문자(=)를 추가하여 4의 배수 길이를 맞춥니다. 이 과정에서 원본 대비 약 33%의 크기 증가가 발생하지만, 텍스트 기반 프로토콜에서 바이너리 데이터를 안전하게 전달할 수 있다는 장점이 있습니다.
Base64의 주요 활용 분야
- 이메일 첨부파일(MIME): 이메일 프로토콜은 7비트 ASCII 기반이므로 바이너리 첨부파일을 Base64로 인코딩하여 전송합니다.
- 웹 개발(Data URI): 작은 이미지나 아이콘을 HTML/CSS에 직접 삽입하여 HTTP 요청 수를 줄일 수 있습니다.
- API 통신: JSON 형식으로 바이너리 데이터를 전송할 때 Base64 문자열로 변환하여 사용합니다.
- JWT(JSON Web Token): 인증 토큰의 헤더와 페이로드를 Base64url로 인코딩합니다.
- 인증서 및 키 파일: PEM 형식의 SSL 인증서와 암호화 키는 Base64로 인코딩된 형태입니다.
UTF-8과 Base64
한글이나 이모지와 같은 멀티바이트 문자를 Base64로 인코딩하려면 먼저 UTF-8로 변환해야 합니다. 예를 들어 한글 한 글자는 UTF-8에서 3바이트를 차지하므로, Base64로 인코딩하면 4개의 문자가 됩니다. 본 도구는 JavaScript의 TextEncoder/TextDecoder API를 사용하여 UTF-8 유니코드를 완벽하게 처리하므로, 한글, 일본어, 중국어, 이모지 등 모든 유니코드 문자를 정확하게 변환합니다.
이미지 Base64 변환과 Data URI
이미지를 Base64로 변환하면 data:image/png;base64,iVBORw0KGgo...와 같은 Data URI 형식의 문자열을 얻을 수 있습니다. 이 문자열을 HTML의 img 태그 src 속성이나 CSS의 background-image 속성에 직접 삽입하면, 별도의 이미지 파일 요청 없이 이미지를 표시할 수 있습니다. 이는 작은 아이콘, 로고, 1픽셀 추적 이미지 등에 특히 유용합니다. 다만 Base64 인코딩 시 약 33%의 크기 증가가 발생하므로, 큰 이미지에는 권장되지 않습니다.
Base64와 보안
Base64는 인코딩이지 암호화가 아닙니다. Base64 문자열은 누구나 쉽게 원본으로 디코딩할 수 있으므로, 민감한 데이터를 보호하는 용도로는 사용하지 마세요. 데이터 보안이 필요한 경우에는 AES, RSA 등의 암호화 알고리즘을 사용해야 합니다. Base64는 단지 데이터의 형식을 변환하는 도구일 뿐입니다.
사용 방법
- 모드 선택: '인코딩' 또는 '디코딩' 모드를 선택합니다.
- 입력 방식 선택: 텍스트를 직접 입력하거나, 파일을 업로드합니다.
- 변환 실행: '인코딩하기' 또는 '디코딩하기' 버튼을 클릭합니다.
- 결과 활용: 변환된 결과를 복사하거나, 공유하거나, 이미지 카드로 저장할 수 있습니다.
자주 묻는 질문 (FAQ)
Q. Base64 인코딩이란 무엇인가요?
A. Base64는 바이너리 데이터를 64개의 ASCII 문자(A-Z, a-z, 0-9, +, /)로 변환하는 인코딩 방식입니다. 이메일 첨부파일, 웹 개발의 Data URI, API 통신에서 바이너리 데이터를 텍스트 형식으로 안전하게 전송할 때 사용됩니다.
Q. Base64로 인코딩하면 데이터 크기가 어떻게 변하나요?
A. Base64 인코딩은 원본 데이터보다 약 33% 더 큰 결과를 생성합니다. 3바이트의 바이너리 데이터가 4개의 Base64 문자로 변환되기 때문입니다. 예를 들어 100KB 파일은 약 133KB의 Base64 문자열이 됩니다.
Q. 이미지를 Base64로 변환하면 어디에 사용할 수 있나요?
A. 이미지를 Base64 Data URI로 변환하면 HTML의 img 태그 src 속성이나 CSS의 background-image 속성에 직접 삽입할 수 있습니다. 이렇게 하면 별도의 HTTP 요청 없이 이미지를 표시할 수 있어 작은 아이콘이나 로고에 유용합니다.
Q. Base64는 암호화인가요?
A. 아닙니다. Base64는 암호화가 아닌 인코딩입니다. 누구나 Base64 문자열을 원본으로 디코딩할 수 있으므로 보안 목적으로 사용해서는 안 됩니다. 데이터를 안전하게 보호하려면 AES와 같은 암호화 알고리즘을 사용하세요.
Q. 한글도 Base64로 인코딩할 수 있나요?
A. 네, 가능합니다. 본 도구는 UTF-8 유니코드를 완벽하게 지원하므로 한글, 일본어, 중국어, 이모지 등 모든 유니코드 문자를 정확하게 Base64로 인코딩 및 디코딩할 수 있습니다.