컴퓨터는 0과1밖에 모른다. 그렇다고 해서 사람이 0과1로만 텍스트를 작성한다면 ...끔찍한 세상이 될 것이다.
따라서 사람이 편하게 텍스트를 입력할 수 있도록 하기위해 인코딩/디코딩이 등장하였다.
인코딩 : 문자A를 숫자65로 변환하는 것
디코딩 : 숫자65를 해석하여 문자 A로 변환하는 것
아스키코드
- 128개의 문자 조합을 제공하는 7비트 부호
- 오류 검출을 위한 패리티부호에 해당하는 1비트를 포함하여 총 8비트로 구성
- 하나의 문자는 하나의 번호에 대응

유니코드
아스키 코드는 미국의 표준이다. 초기에는 알파벳,등을 표현하는데 아스키코드로 충분했지만 점점 컴퓨터 보급이 활발해지면서 다양한 나라의 문자( 한국어,일본어,중국어 등 )도 표현해야 할 필요성이 대두되었다.
때문에 전 세계 문자를 동일한 방법으로 표현하기 위해 1995년 유니코드가 국제 표준으로 제정되었다.
- 전 세계 문자를 동일한 방법으로 표현
- 초기엔 16비트였으나, 이모티콘 등 표현할 문자가 많아져 21비트로 늘림

유니코드를 표현하는 방법은
비트를 4개씩 나눠서 16진법(4비트)로 표현한다.
16진법을 사용하는 경우 U+를 붙여서 표시한다.
UTF-8

개발하면서 자주 보았던 UTF-8은 유니코드 캐릭터 셋을 기반으로 한 인코딩 방식이다.
UTF-8은 가변 인코딩 방식을 사용한다(메모리 낭비를 줄임).
인코딩 결과는 1byte~4byte가 가능하다.
기존 아스키코드에 포함된 알파벳은 1byte로 충분한 표현이 가능하다. 이렇듯 자주 쓰는 문자를 1byte로 처리하여 용량을 절약한다.
또한 각각 문자마다 사용하는 byte가 달라지므로 구분하기위해 위 표와같은 규칙을 적용한다.
1byte문자는 아스키코드와 호환된다. ex) "A" => 아스키코드 65번 , 인코딩시 01000001로 표현
이는 "A"를 UTF-8로 변환해도 동일함 ( 01000001 )

### 예시
한글"가" => 유니코드로 U+AC00 , 코드값 범위는 0800~FFFF에 해당, utf-8로 인코딩 시 3byte로 저장
16진법의 AC00을 이진법으로 나타내면
A C 0 0
1010 1100 0000 0000
==> 11101010 10110000 10000000로 변환된다.
cf) [2026] 말이 트이는 cs기술면접을 통해 작성된 내용입니다.
'cs > 컴퓨터구조' 카테고리의 다른 글
| CPU 구성과 기능 (0) | 2026.01.04 |
|---|---|
| 컴퓨터의 구성 (1) | 2026.01.01 |
| 데이터와 표현- 컴퓨터의 숫자 표현 (0) | 2025.12.31 |