Base64란?
Base64는 바이너리 데이터를 ASCII 문자열 형식으로 표현하는 바이너리-텍스트 인코딩 방식입니다. 바이너리 데이터를 64개의 출력 가능한 문자로 변환하여 텍스트 기반 프로토콜에서 안전하게 전송할 수 있게 합니다.
Base64를 사용하는 이유
• 텍스트 기반 프로토콜(이메일, HTTP)에서 바이너리 데이터 안전하게 전송 • 텍스트 형식(JSON, XML, HTML)에 바이너리 데이터 포함 • 데이터베이스에 바이너리 데이터를 텍스트로 저장 • CSS나 HTML에서 이미지 인코딩 • URL에서 특수 문자 처리
Base64 문자 집합
Base64는 64개의 문자를 사용합니다: • A-Z (26자) • a-z (26자) • 0-9 (10자) • +와 / (2자) • = 패딩용
Base64 작동 방식
1. 바이너리 데이터에서 3바이트(24비트)를 가져옴 2. 각 6비트씩 4개 그룹으로 분할 3. 각 6비트 그룹을 Base64 문자로 변환 4. 입력이 3으로 나누어지지 않으면 패딩(=) 추가
예제
입력: "Hi"
바이너리: 01001000 01101001
분할: 010010 000110 1001xx
Base64: S G k=
결과: "SGk="Base64 URL 안전 버전
URL용으로 표준 +와 / 문자가 대체됩니다: • +는 -로 • /는 _로 이것을 Base64URL 인코딩이라고 합니다.
일반적인 사용 사례
• 이미지 포함을 위한 Data URI • 이메일 첨부파일 (MIME) • JSON Web Tokens (JWT) • API 인증 헤더 • 쿠키에 바이너리 데이터 저장