입력 텍스트
0 chars출력 Base64
0 chars
Base64 인코딩 원리
입력:Man(3 bytes)
출력:TWFu(4 chars)
Base64 인코더/디코더는 텍스트와 이미지를 Base64 형식으로 변환하거나 원래대로 복원하는 도구입니다.
🔒 Base64 인코딩 (Encode)
• 인코딩 모드를 선택하세요
• 입력창에 변환할 텍스트를 입력하세요
• "변환" 버튼을 클릭하면 Base64로 인코딩됩니다
• 예: "Hello World" → "SGVsbG8gV29ybGQ="
• "복사" 버튼으로 결과를 클립보드에 복사할 수 있습니다
🔓 Base64 디코딩 (Decode)
• 디코딩 모드를 선택하세요
• 입력창에 Base64 문자열을 입력하세요
• "변환" 버튼을 클릭하면 원본 텍스트로 복원됩니다
• 이미지 데이터인 경우 자동으로 미리보기가 표시됩니다
• 잘못된 Base64 문자열은 자동으로 감지됩니다
📁 파일 업로드
• "파일 업로드" 버튼을 클릭하여 이미지나 텍스트 파일을 선택하세요
• 이미지는 자동으로 Base64 Data URI로 변환됩니다
• 최대 파일 크기: 10MB
• 지원 형식: PNG, JPEG, GIF, WebP, SVG, TXT, JSON
🔄 입출력 교환
• "입출력 교환" 버튼으로 입력과 출력을 빠르게 전환할 수 있습니다
• 인코딩과 디코딩을 연속적으로 수행할 때 유용합니다
📊 통계 정보
• 변환 후 입력/출력 길이와 크기 변화율을 확인할 수 있습니다
• Base64 인코딩은 일반적으로 원본보다 약 33% 크기가 증가합니다
Base64는 이진 데이터를 텍스트로 변환하는 인코딩 방식입니다. 64개의 안전한 문자(A-Z, a-z, 0-9, +, /)만을 사용하여 모든 데이터를 표현합니다.
📖 Base64의 역사
Base64 인코딩은 1987년 RFC 989에서 처음 제안되었고, 1992년 MIME(Multipurpose Internet Mail Extensions) 표준의 일부로 RFC 1341에 정의되었습니다. 초기 이메일 시스템은 7비트 ASCII 텍스트만 전송할 수 있었기 때문에, 이미지나 첨부파일 같은 이진 데이터를 전송하는 방법이 필요했습니다.
Base64라는 이름은 2^6 = 64개의 문자를 사용한다는 의미에서 유래했습니다. 각 Base64 문자는 6비트의 정보를 담고 있으며, 8비트(1바이트)의 이진 데이터를 표현하기 위해 3바이트를 4개의 Base64 문자로 변환합니다. 이 과정에서 데이터 크기가 약 33% 증가하게 됩니다.
🔧 동작 원리
1. 원본 데이터를 3바이트씩 그룹화합니다
2. 각 그룹의 24비트를 6비트씩 4개로 나눕니다
3. 각 6비트 값을 Base64 문자표의 해당 문자로 변환합니다
4. 마지막 그룹이 3바이트 미만이면 '=' 패딩을 추가합니다
💡 주요 사용 사례
• 이메일 첨부파일 인코딩 (MIME)
• 웹에서 이미지 임베딩 (Data URI)
• JSON/XML에 이진 데이터 포함
• HTTP Basic Authentication
• JWT(JSON Web Token) 토큰
• CSS/HTML에 폰트 파일 임베딩
🎨 Data URI 스킴
Base64는 웹 개발에서 Data URI 스킴과 함께 자주 사용됩니다:
data:[MIME타입];base64,[Base64데이터]
예시:
data:image/png;base64,iVBORw0KGgoAAAANS...
이를 통해 외부 파일 요청 없이 이미지를 HTML/CSS에 직접 포함할 수 있어, HTTP 요청 수를 줄이고 로딩 속도를 개선할 수 있습니다.
⚠️ 주의사항
• Base64는 암호화가 아닙니다 (누구나 디코딩 가능)
• 데이터 크기가 33% 증가하므로 큰 파일에는 부적합
• 브라우저 캐싱이 불가능하여 반복 로딩 시 비효율적
• 텍스트 검색이나 이미지 최적화가 불가능
💡 Base64 활용 가이드
1. 이미지 임베딩 최적화
작은 아이콘이나 로고는 Base64로 인코딩하여 HTML/CSS에 직접 포함하세요. HTTP 요청이 줄어들어 초기 로딩 속도가 개선됩니다. 하지만 10KB 이상의 이미지는 별도 파일로 관리하는 것이 좋습니다.
2. API 응답에 이미지 포함
REST API에서 이미지를 JSON으로 반환할 때 Base64를 사용하면 별도의 이미지 URL 없이 데이터를 전송할 수 있습니다.
3. localStorage에 이미지 저장
브라우저의 localStorage는 텍스트만 저장 가능하므로, 이미지를 Base64로 변환하여 저장할 수 있습니다.
4. 이메일 템플릿
HTML 이메일에 이미지를 포함할 때 Base64를 사용하면 외부 서버 의존 없이 이미지를 표시할 수 있습니다.
5. 보안 고려사항
Base64는 단순 인코딩이지 암호화가 아닙니다. 민감한 정보는 Base64로 인코딩하더라도 쉽게 디코딩 가능하므로, 반드시 암호화를 함께 사용하세요.
6. 성능 최적화
• 큰 파일은 Base64 대신 CDN 사용
• 반복 사용되는 이미지는 캐싱 가능한 별도 파일로 관리
• Base64 문자열은 gzip 압축과 함께 사용하면 효과적
7. JavaScript에서 사용
• 인코딩: btoa() 또는 Buffer.from().toString('base64')
• 디코딩: atob() 또는 Buffer.from(str, 'base64')
• UTF-8 지원: TextEncoder/TextDecoder 사용
8. 파일 다운로드
Base64 Data URI를 사용하여 동적으로 생성한 파일을 다운로드할 수 있습니다:
<a href="data:text/plain;base64,..." download="file.txt">
9. Canvas/Blob 변환
HTML Canvas를 Base64로 변환: canvas.toDataURL()
Base64를 Blob으로 변환하여 파일 업로드에 활용
10. 문자 집합 주의
표준 Base64: +, /
URL-safe Base64: -, _ (URL 파라미터에 안전)