본문 바로가기
IT 기초부터 실무까지

인코딩(Encoding)이란?

by 개발 이야기 2025. 6. 6.

인코딩이란 정보를 특정 형식으로 변환하는 과정입니다. 예를 들어 컴퓨터가 이해하거나 저장하거나 전송할 수 있도록 문자, 이미지, 소리 등의 데이터를 이진수(0과 1)로 변환하는 작업이라고 할 수 있습니다.


왜 인코딩이 필요한가?

  1. 컴퓨터는 오직 0과 1만 이해합니다.
    → 사람이 쓰는 문자, 그림, 소리 등을 처리하려면 이진수로 바꿔줘야 합니다.
  2. 데이터 전송 시 규칙이 필요합니다.
    → 네트워크에서 한쪽에서 보낸 데이터를 다른 쪽에서 제대로 해석하려면, 양쪽이 동일한 인코딩 방식을 써야 합니다.

인코딩의 실제 예시

데이터 유형인코딩 종류설명
문자 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 인코딩 컴퓨터의 이진 데이터를 → 사람이 읽을 수 있는 텍스트로 안전한 전송