🔥 컴퓨터가 문자를 이해하는 방법
컴퓨터는 기본적으로 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(유니코드) 차이점 비교
- 웹 개발에서 한글 깨짐 문제의 원인과 해결 방법
출처:
혼자공부하는 운영체제 - 강민철
'Computer Science > Computer Structure' 카테고리의 다른 글
혼공 운영체제) 03.명령어 01.소스 코드와 명령어 (0) | 2025.02.18 |
---|---|
혼공 운영체제) 02.데이터 01.0과 1로 숫자를 표현하는 방법 1 (0) | 2025.02.18 |
혼공 운영체제) 01.컴퓨터 구조 시작 02.컴퓨터 구조의 큰 그림 (0) | 2025.02.18 |
혼공 운영체제) 01.컴퓨터 구조 시작 01.컴퓨터 구조를 알아야 하는 이유 (0) | 2025.02.18 |