문자열 인코딩/디코딩
Base64, URL 인코딩/디코딩
인코딩 타입 선택
예시 텍스트 (클릭하여 적용)
인코딩 / 디코딩
🔤 문자열 인코딩/디코딩 완벽 가이드 - 웹 개발 필수 도구
문자열 인코딩은 데이터를 특정 형식으로 변환하는 핵심 기술입니다. 본 계산기는 Base64, URL, HTML Entity, Unicode, Hex 5가지 인코딩/디코딩을 지원하며, 웹 개발, API 통신, 데이터 전송에 필수적인 도구입니다. 실시간 변환, 복사 기능, 입력 통계를 제공합니다.
📊 인코딩 방식 비교표
| 인코딩 | 용도 | 문자셋 | 크기 증가 | 예시 |
|---|---|---|---|---|
| Base64 | 이진 데이터 → 텍스트 | A-Z, a-z, 0-9, +, / | ~33% | SGVsbG8= |
| URL | URL 안전 문자 변환 | % + 16진수 | ~3x (한글) | %ED%95%9C%EA%B8%80 |
| HTML Entity | HTML 특수문자 이스케이프 | &name; 또는 &#num; | 다양 | <script> |
| Unicode | Unicode 이스케이프 | \uXXXX | ~6x | \uD55C\uAE00 |
| Hex | 16진수 문자열 | 0-9, A-F | ~2x | 48 65 6C 6C 6F |
🔬 각 인코딩 상세 설명
📦 Base64
이진 데이터를 64개의 ASCII 문자로 변환합니다. 이메일 첨부, JSON에 이미지 포함, JWT 토큰 등에 사용됩니다. 3바이트를 4문자로 변환하여 ~33% 크기가 증가합니다.
🌐 URL (Percent) Encoding
URL에 사용할 수 없는 문자를 %XX 형식으로 변환합니다. 쿼리 파라미터, 한글 URL, 특수문자 처리에 필수입니다. RFC 3986 표준을 따릅니다.
📄 HTML Entity
HTML에서 특별한 의미를 가진 문자를 이스케이프합니다. XSS 공격 방지, HTML 내 특수문자 표시에 필수입니다. < → <, > → > 등으로 변환됩니다.
🔤 Unicode Escape
비ASCII 문자를 \uXXXX 형식으로 변환합니다. JSON에서 유니코드 문자 표현, 소스 코드 호환성에 사용됩니다. JavaScript, Java, Python 등에서 사용됩니다.
💡 인코딩 활용 예시
🌐 웹 개발
- • URL 파라미터: ?name=홍길동 → ?name=%ED%99%8D%EA%B8%B8%EB%8F%99
- • Data URI: data:image/png;base64,iVBORw0...
- • XSS 방지: <script> → <script>
📧 이메일 및 API
- • MIME 첨부파일: 이진 파일을 Base64로 인코딩
- • Basic Auth: Authorization: Basic base64(user:pass)
- • JWT 토큰: Header.Payload.Signature (각각 Base64URL)
💻 프로그래밍
- • JSON 이스케이프: 유니코드 문자 처리
- • 정규식 패턴: 특수문자 이스케이프
- • 디버깅: Hex 덤프로 바이너리 데이터 분석
❔ 자주 묻는 질문 (FAQ)
Q. Base64와 암호화의 차이는?
Base64는 암호화가 아닙니다. 단순히 이진 데이터를 텍스트로 표현하는 인코딩 방식입니다. 누구나 디코딩할 수 있으므로 민감한 정보 보호에는 적합하지 않습니다. 보안이 필요하면 AES, RSA 같은 암호화를 사용하세요.
Q. URL 인코딩과 HTML Entity의 차이는?
URL 인코딩은 URL에 사용하기 위해 %XX 형식으로 변환하고,HTML Entity는 HTML 문서에서 특수문자를 안전하게 표시하기 위해 &name; 형식으로 변환합니다. 용도가 다르므로 각각의 상황에 맞게 사용해야 합니다.
Q. 한글은 어떻게 인코딩되나요?
한글은 UTF-8로 인코딩되면 3바이트가 됩니다. 예: '한' = EC 95 88 (3바이트). URL 인코딩 시 %EC%95%88처럼 9자로 표현됩니다. Base64는 UTF-8 바이트를 인코딩하여 4자로 표현합니다.
Q. Base64URL과 Base64의 차이는?
기본 Base64는 +, /, = 문자를 사용하는데, 이들은 URL에서 특별한 의미가 있습니다.Base64URL은 +를 -, /를 _로 대체하고 패딩(=)을 생략하여 URL 안전하게 만듭니다. JWT 토큰에서 사용됩니다.
Q. XSS 공격과 HTML Entity의 관계는?
XSS(Cross-Site Scripting)는 악성 스크립트가 웹페이지에 삽입되는 공격입니다. 사용자 입력을 HTML에 표시할 때 <, >, " 등을 HTML Entity로 변환하면 스크립트가 실행되지 않고 텍스트로 표시되어 XSS를 방지할 수 있습니다.
⚠️ 주의사항
🔓 인코딩 ≠ 암호화
Base64, URL, HTML 인코딩은 암호화가 아닙니다. 누구나 디코딩할 수 있으므로 비밀번호나 개인정보 보호에 사용하면 안 됩니다.
📏 크기 증가
인코딩은 원본보다 크기가 커집니다. Base64는 ~33%, URL 인코딩은 한글의 경우 ~3배 증가합니다. 대용량 데이터 전송 시 고려해야 합니다.
🔄 이중 인코딩 주의
이미 인코딩된 문자열을 다시 인코딩하면 문제가 발생할 수 있습니다. 예: %25 (%)를 다시 URL 인코딩하면 %2525가 됩니다. 디코딩/인코딩 횟수를 정확히 맞춰야 합니다.