🔥 컴퓨터가 문자를 이해하는 방법

컴퓨터는 기본적으로 0과 1(이진수)만 이해할 수 있는 기계입니다.
하지만 우리는 컴퓨터를 사용할 때 알파벳, 한글, 특수문자, 이모티콘까지 다양하게 입력하고 출력할 수 있습니다.

 

📌 이번 강에서는 컴퓨터가 문자를 표현하는 방법을 학습합니다.
문자 집합, 인코딩, 디코딩 개념 이해
아스키 코드(ASCII)와 한글 인코딩 방식(EUC-KR, UTF-8) 비교
유니코드(Unicode)와 다국어 표현 방식
인코딩 문제 발생 시 해결 방법(문자 깨짐 해결 팁)


🏗 1. 문자 집합과 인코딩의 개념

1️⃣ 문자 집합 (Character Set)

문자 집합(Character Set)이란?

  • 컴퓨터가 이해할 수 있는 문자들의 모음
  • 컴퓨터는 문자 집합에 속한 문자만 인식 가능

예를 들어, A, B, C만 지원하는 문자 집합이라면 D, E, F는 표현할 수 없음
👉 문자 집합이 어떤 문자를 포함하는지에 따라 컴퓨터가 이해할 수 있는 문자가 달라짐.


2️⃣ 인코딩(Encoding)과 디코딩(Decoding)

📌 인코딩(Encoding)이란?

  • 사람이 사용하는 문자를 컴퓨터가 이해할 수 있도록 0과 1로 변환하는 과정
  • 예: A → 01000001 (ASCII 코드)

📌 디코딩(Decoding)이란?

  • 컴퓨터가 저장한 0과 1을 사람이 이해할 수 있는 문자로 변환하는 과정
  • 예: 01000001 → A

정리하면?

개념
설명
인코딩 문자를 0과 1로 변환
디코딩 0과 1을 문자로 변환

 

📌 즉, 인코딩과 디코딩이 있어야 사람이 컴퓨터와 원활하게 소통 가능! 🚀


🎯 2. 대표적인 문자 인코딩 방식

컴퓨터는 다양한 문자 인코딩 방식을 사용하여 영어, 한글, 이모티콘 등 다양한 문자 표현이 가능합니다.

 

📌 대표적인 문자 인코딩 방식 3가지

1️⃣ 아스키 코드(ASCII)
2️⃣ EUC-KR (한글 인코딩 방식, 완성형/조합형)
3️⃣ 유니코드(Unicode) 및 UTF-8


🛠 3. 아스키 코드(ASCII)

📌 아스키(ASCII)란?

  • 초기 컴퓨터에서 사용된 가장 기본적인 문자 인코딩 방식
  • 영어 알파벳, 숫자, 특수문자(일부 기호)만 표현 가능
  • 7비트(128개 문자)로 표현

아스키 코드의 문제점?

  • 영어 및 일부 특수문자만 표현 가능
  • 한글, 중국어, 일본어, 이모티콘 등 다국어 지원 불가

📌 아스키 코드 예시

문자 10진수 2진수
A 65 01000001
B 66 01000010
a 97 01100001
0 48 00110000

 

🔹 한글이 표현되지 않기 때문에, 한국에서는 별도의 한글 인코딩 방식이 필요하게 됨.


🏗 4. 한글 인코딩 방식 (EUC-KR)

📌 한글을 표현하는 대표적인 방법:

1️⃣ 완성형 인코딩 (EUC-KR)
2️⃣ 조합형 인코딩


1️⃣ 완성형 인코딩 (EUC-KR)

  • 한글을 미리 정의된 문자 조합(완성된 형태)로 저장
  • 한 글자당 2바이트(16비트) 사용
  • 2,350여 개의 한글 표현 가능

📌 문제점?

  • 표현할 수 있는 한글이 제한됨
  • 예를 들어, ‘뷁’, ‘쩝’ 같은 글자는 표현 불가능
  • 일부 사용자는 이름이나 단어가 인코딩되지 않는 문제 발생

한글이 깨지는 이유 중 하나!
👉 EUC-KR 방식이 모든 한글을 표현하지 못하기 때문


2️⃣ 조합형 인코딩

  • 초성, 중성, 종성을 따로 저장하고 조합하여 한글 표현
  • 이론적으로 모든 한글을 표현 가능
  • 하지만 저장 공간 낭비복잡한 연산이 필요해 널리 사용되지 않음

📌 결론:
👉 EUC-KR이 표준으로 자리 잡았지만, 표현할 수 있는 글자 수가 한정적이었음.
👉 이를 해결하기 위해 유니코드(Unicode)가 등장!


🔥 5. 유니코드(Unicode)와 UTF-8

📌 유니코드(Unicode)란?

  • 모든 언어와 특수문자를 포함하는 글로벌 문자 표준
  • 한글, 중국어, 일본어, 아랍어, 심지어 이모티콘까지 표현 가능
  • UTF-8, UTF-16, UTF-32 등의 인코딩 방식으로 저장 가능

UTF-8 (가장 널리 사용되는 인코딩)

  • 유니코드의 대표적인 인코딩 방식
  • 영어는 1바이트, 한글은 2~3바이트, 특수문자는 4바이트
  • 웹 및 현대 시스템에서 가장 많이 사용됨

📌 UTF-8의 특징

  • 가변 길이 인코딩 (1~4바이트)
  • 아스키와 호환됨 (영어는 1바이트로 동일하게 저장됨)
  • 다국어 지원 가능

한글 인코딩 방식 비교

인코딩 방식
특징 단점
EUC-KR 한글 2,350자 표현 가능 일부 한글 표현 불가
UTF-8 모든 한글 및 다국어 표현 가능 한글은 2~3바이트 필요

 

📌 현대 시스템(웹, 운영체제 등)에서는 대부분 UTF-8을 사용! 🚀


🏁 6. 정리: 컴퓨터의 문자 표현 방식

📌 컴퓨터는 0과 1(이진수)로 문자를 저장하고 표현
📌 아스키 코드(ASCII)는 영어 및 기본 특수문자만 표현 가능
📌 한글 인코딩 방식(EUC-KR)은 일부 한글만 표현 가능
📌 유니코드(UTF-8)는 전 세계 모든 언어 및 이모티콘까지 표현 가능
📌 웹 개발 및 시스템 설정 시 인코딩 깨짐 문제 발생 가능 → UTF-8 설정 필수


이 블로그 포스트를 통해 배운 점

  • 컴퓨터가 문자를 표현하는 원리 (인코딩과 디코딩 개념 이해)
  • 아스키 코드(ASCII), EUC-KR(완성형), UTF-8(유니코드) 차이점 비교
  • 웹 개발에서 한글 깨짐 문제의 원인과 해결 방법

 

 

출처:
혼자공부하는 운영체제 - 강민철

 

+ Recent posts