인코딩이란?

누피밥·2025년 2월 8일

운영체제

목록 보기
9/10

인코딩은 데이터를 특정 형식으로 변환하여 저장하거나 전송할 수 있도록 만드는 과정입니다.
텍스트, 이미지, 영상 등 모든 데이터는 컴퓨터 내부에서 숫자로 저장되므로, 서로 다른 시스템에서도 데이터를 올바르게 읽고 쓸 수 있도록 변환하는 과정이 필요합니다.

주요 목적

  1. 데이터 호환성 유지 -> 서로 다른 시스템에서도 같은 데이터를 읽을 수 있도록 변환
  2. 전송 및 저장 최적화 -> 네트워크 전송 시 데이터 손실 방지
  3. 특정 환경에서 올바르게 표시 -> 문자 깨짐 방지

주요 인코딩 방식

인코딩 방식설명예시
UTF-8, ASCII텍스트 데이터를 숫자로 변환UTF-8, ASCII, EUC-KR
Base64바이너리 데이터를 ASCII 문자로 변환이메일 첨부파일, JSON, 이미지 데이터 URI
URL EncodingURL에 포함할 수 없는 문자(공백, 특수문자)를 변환웹 주소(URL), HTTP 요청
파일 인코딩오디오, 동영상, 이미지 등 미디어 파일을 특정 포맷으로 변환MP3, JPEG, MP4

1. 문자 인코딩

컴퓨터는 문자를 직접 이해할 수 없기 때문에 문자를 숫자로 변환해야 합니다.

이를 위해 문자 인코딩 방식을 사용하며 대표적으로 ASCII, UTF-8, UTF-16 등이 있습니다.

a. ASCII(American Standard Code Information Interchange)

  • 영어(알파벳), 숫자, 특수문자만 표현 가능(총 128개)
  • 각 문자를 7비트(0~127) 숫자로 변환
  • 예제: "A" -> 65(10진수) -> 01000001(2진수)
  • 단점: 한글, 중국어, 이모지 등 다국어 지원 불가

ASCII 코드 예시

console.log("A".charCodeAt(0)); // 65
console.log(String.fromCharCode(65)); // "A"

b. UTF-8(Unicode Transformation Format - 8-bit)

  • 전 세계 모든 문자를 표현할 수 있는 인코딩 방식
  • 기본적으로 2바이트를 이용하여 한 문자를 표현
  • 현재 웹에서 가장 많이 사용되는 문자 인코딩 방식

UTF-8 변환 예시

const utf8Bytes = new TextEncoder().encode("안녕");
console.log(utf8Bytes); 
// 출력: Uint8Array(6) [ 236, 149, 136, 235, 133, 149 ]

c. UTF-16

  • 모든 문자를 2바이트(16비트) 또는 4바이트(32비트)로 인코딩
  • 이모지 같은 특수 문자를 더 잘 표현 가능
  • UTF-8보다 파일 크기가 클 수 있음

UTF-16 변환 예시

const utf16Bytes = new TextEncoder("utf-16").encode("Hello");
console.log(utf16Bytes);
// 출력: Uint8Array(12) [ 255, 254, 72, 0, 101, 0, 108, 0, 108, 0, 111, 0 ]

2. Base64 인코딩

바이너리 데이터를 텍스트(ASCII 코드)로 변환하는 방식 입니다. ASCII 코드 중 하위 문자들로만 변경됩니다.

[##Image|kage@A2U8Y/btsL8YCuhhQ/KO1qLHyq0iZAOGJJ9x4D0K/img.png|CDM|1.3|{"originWidth":526,"originHeight":962,"style":"alignCenter","width":220,"height":402}##]

Base64 인코딩 예시

const text = "Hello, World!";
const base64Encoded = btoa(text);
console.log(base64Encoded);  // "SGVsbG8sIFdvcmxkIQ=="

const base64Decoded = atob(base64Encoded);
console.log(base64Decoded);  // "Hello, World!"

3. URL 인코딩

URL에 포함할 수 없는 특수문자나 공백을 안전하게 변환하는 방식입니다.
URL에는 ASCII 문자(영어, 숫자, 일부 특수 문자)만 허용됩니다.  
한글, 공백, &, ?, / 등의 문자들은 URL에서 정상적으로 동작하지 않을 수 있으므로 변환이 필요합니다.

URL 인코딩 예시

const url = "https://example.com?q=hello world!";
const encodedUrl = encodeURIComponent(url);
console.log(encodedUrl);
// 출력: "https%3A%2F%2Fexample.com%3Fq%3Dhello%20world%21"

const decodedUrl = decodeURIComponent(encodedUrl);
console.log(decodedUrl);
// 출력: "https://example.com?q=hello world!"

4. 파일 인코딩

음악, 영상, 이미지 등의 파일을 특정 포맷으로 변환하는 방식입니다.
파일 크기를 줄이거나 특정 장치에서 재생할 수 있도록 변환합니다.

파일 유형대표적인 인코딩 방식
이미지JPEG, PNG, GIF, WebP
오디오MP3, AAC, FLAC, WAV
비디오MP4, H.264, HEVC, VP9

0개의 댓글