inblog logo
|
DailyCoding
    Spring Boot

    14-5. Base64

    박은서's avatar
    박은서
    Feb 26, 2026
    14-5. Base64
    Contents
    1. Base641️⃣ Base64 란?2️⃣ 왜 Base64를 사용할까?3️⃣ 장단점4️⃣ 동작 원리 (실행 흐름)5️⃣ 패딩(=)이 필요한 이유6️⃣ 핵심 요약 (시험용 / 면접용)7️⃣ 그림으로 이해하기

    1. Base64

    1️⃣ Base64 란?

    1) 개념

    데이터를 "텍스트 형태로 안전하게 표현하기 위한 인코딩 방식"
    • 바이너리 데이터(이미지, 파일, 암호키 등)를 ASCII 문자로 변환
    • 이름 의미
      • 사용 가능한 문자 집합이 64개
    • 사용 문자
      • A–Z (26) a–z (26) 0–9 (10) + /
        총 64개 문자
        (+ 패딩용 =)

    2️⃣ 왜 Base64를 사용할까?

    1) 핵심 이유

    • 텍스트만 안전한 환경 때문
      • 인터넷의 많은 시스템은 기본적으로 텍스트 중심
    • 예
      • 이메일 (SMTP)
      • JSON / XML
      • URL
      • HTTP 헤더
      • 쿠키
      • 이 환경들은 바이너리 데이터 직접 처리 어려움 ❌
        ✅ 텍스트는 안정적
        ➡️ 바이너리 → 텍스트 변환 필요 → Base64

    2) 대표 사용 사례

    • 이미지 데이터를 JSON에 포함
    • 이메일 첨부파일
    • JWT 토큰
    • 암호화 키 표현
    • Data URI
    • 예
      • <imgsrc="data:image/png;base64,iVBORw0KGgoAAAANSUhEUg..."/>

    3️⃣ 장단점

    1) 장점

    • 안전성
      • 텍스트만 허용되는 환경에서도 사용 가능
      • 깨짐 / 손상 위험 감소
    • 호환성
      • 거의 모든 시스템에서 처리 가능
      • 플랫폼 독립적
    • 단순성
      • 구현이 매우 간단
      • 디코딩도 쉬움

    2) 단점

    • 데이터 크기 증가
      • Base64 인코딩 시 약 33% 증가
      • 이유 : 3바이트 → 4문자 변환 구조
      • 예
        • 원본: 3 bytes (24 bits) Base64: 4 chars (32 bits)
    • 암호화 아님
      • 보안 기술 ❌ 단순 변환 ⭕
        • 누구나 디코딩 가능
    • 처리 비용
      • 인코딩 / 디코딩 CPU 사용
      • 대량 데이터 시 부담

    4️⃣ 동작 원리 (실행 흐름)

    Base64 핵심 아이디어 : 6비트 단위 변환

    Step 1) 데이터를 비트로 변환

    예:
    문자: "Man" M → 01001101 a → 01100001 n → 01101110
    합치면:
    010011010110000101101110 (24 bits)

    Step 2) 6비트씩 분할

    010011 010110 000101 101110

    Step 3) 10진수 변환

    010011 → 19 010110 → 22 000101 → 5 101110 → 46

    Step 4) Base64 문자 매핑

    Base64 테이블 사용:
    19 → T 22 → W 5 → F 46 → u
    결과:
    TWFu

    5️⃣ 패딩(=)이 필요한 이유

    • 입력 데이터가 3바이트 단위가 아닐 경우 발생
    • 예
      • 1바이트 → ==
      • 2바이트 → =
    • 목적 : 길이 맞추기

    6️⃣ 핵심 요약 (시험용 / 면접용)

    • Base64 = 인코딩 방식
    • 목적 = 바이너리 → 텍스트 변환
    • 특징
      • 안전성 ↑
      • 크기 ↑ (~33%)
      • 보안 X
      • 6비트 단위 변환

    7️⃣ 그림으로 이해하기

    notion image
    Share article
    Contents
    1. Base641️⃣ Base64 란?2️⃣ 왜 Base64를 사용할까?3️⃣ 장단점4️⃣ 동작 원리 (실행 흐름)5️⃣ 패딩(=)이 필요한 이유6️⃣ 핵심 요약 (시험용 / 면접용)7️⃣ 그림으로 이해하기

    DailyCoding

    RSS·Powered by Inblog