인코딩이란 정보를 특정 형식으로 변환하는 과정입니다. 예를 들어 컴퓨터가 이해하거나 저장하거나 전송할 수 있도록 문자, 이미지, 소리 등의 데이터를 이진수(0과 1)로 변환하는 작업이라고 할 수 있습니다.
왜 인코딩이 필요한가?
- 컴퓨터는 오직 0과 1만 이해합니다.
→ 사람이 쓰는 문자, 그림, 소리 등을 처리하려면 이진수로 바꿔줘야 합니다. - 데이터 전송 시 규칙이 필요합니다.
→ 네트워크에서 한쪽에서 보낸 데이터를 다른 쪽에서 제대로 해석하려면, 양쪽이 동일한 인코딩 방식을 써야 합니다.
인코딩의 실제 예시
데이터 유형인코딩 종류설명
문자 | UTF-8, EUC-KR, ASCII | 한글, 영어 등을 이진수로 표현 |
이미지 | JPEG, PNG, BMP | 이미지 데이터를 압축 또는 변환 |
오디오 | MP3, WAV, AAC | 소리 데이터를 이진수로 압축 |
영상 | H.264, MPEG-4 | 영상 프레임과 소리 결합 후 인코딩 |
인코딩 vs 디코딩
- 인코딩: 사람이 이해하는 데이터를 → 기계(컴퓨터)가 이해할 수 있게 변환
- 디코딩: 기계가 갖고 있는 데이터를 → 사람이 이해할 수 있게 해석
예시:
"안녕하세요" → 인코딩(UTF-8) → 0xEC9588EC84B8ED9598 → 디코딩 → "안녕하세요"
Base64 이진수를 Text로 바꾸는 인코딩의 등장
- 인코딩(Encoding) = 데이터를 목적에 맞게 변환하는 행위
- Base64는 이진 데이터를 텍스트로 변환하는 특수한 인코딩 방식입니다.
- 즉, 무조건 이진수로 바꾸는 것만이 인코딩의 전부는 아니다.
Base64가 등장한 이유 : "이진 데이터를 텍스트 환경에서 쓰기 위해"
문제 상황
- 이미지, 오디오, 바이너리 파일은 이진 데이터입니다.
- 하지만 이메일, JSON, XML 등은 텍스트 기반 시스템입니다.
→ 이진 데이터를 그대로 포함하면 깨지거나 전송 오류가 발생합니다.
해결책
- 이진 데이터를 문자로 안전하게 바꾸는 방식이 필요했습니다.
- 그래서 나온 게 Base64 인코딩입니다.
Base64 인코딩의 작동 원리
원래 이진 데이터 (예: 3바이트)→Base64 문자로 인코딩 (4문자)
01000001 01000010 01000011 (A B C) | → | QUJD (Base64 결과) |
→ 이진 데이터 3바이트 = 24비트 → 6비트씩 나눔 → 각각을 문자로 매핑 → 텍스트 문자열로 변환
Base64는 64개의 안전한 문자(AZ, az, 0~9, +, /) 만 사용하므로,
- 메일, JSON, URL 등 텍스트만 허용되는 환경에서도 이진 데이터를 안전하게 전송할 수 있습니다.
그러니까 "왜 이진수를 텍스트로 바꾸는가?"
이진 데이터는 많은 시스템에서 안전하지 않기 때문입니다.
- 이메일, 웹, JSON 같은 텍스트 기반 시스템은 이진 데이터를 제대로 처리 못 합니다.
- Base64는 이런 상황에서 이진 데이터를 "깨지지 않게 포장"해주는 일종의 안전 케이스입니다.
요약
구분목적결과
일반 인코딩 (UTF-8 등) | 사람이 이해하는 문자를 → 컴퓨터용 이진수로 | 저장, 처리 효율 |
Base64 인코딩 | 컴퓨터의 이진 데이터를 → 사람이 읽을 수 있는 텍스트로 | 안전한 전송 |
'IT 기초부터 실무까지' 카테고리의 다른 글
자바 생태계와 스프링 프레임워크에 대한 이해 (0) | 2025.09.23 |
---|---|
A4 절반에 당신의 성과를 담아내는 법 (3) | 2025.08.17 |
HTTPS 호출 시 "기본 연결이 닫혔습니다" (1) | 2025.06.27 |