유니코드(Unicode)
- 개념: 전 세계 모든 언어와 기호, 이모지까지 한곳에 모아 고유한 숫자 번호(방 번호)를 부여한 국제 표준 문자 코드 표
- 특징: 물리적인 저장 방식이 아니라 "어떤 문자가 몇 번인가"만 정의해 놓은 논리적인 설계도이자 정답지 집합(Character Set)
UTF-8
- 개념: 유니코드 표에 적힌 숫자 번호들을 컴퓨터 메모리에 실제 0과 1로 저장하기 위해 가공하는 컴퓨터 친화적 인코딩 방식
- 특징: 문자의 종류에 따라 크기가 유연하게 변하는 가변 길이(1~4바이트) 방식을 채택하여 전 세계 웹 표준의 90% 이상을 차지
유니코드를 쓰는 이유
- 전 세계 문자 통합: 과거 국가마다 제각각 만들어 쓰던 독자적 문자 규격(EUC-KR, CP949 등)의 파편화를 막고 하나의 표로 통일하기 위해 사용
- 문자 깨짐 방지: 다른 국가의 언어나 OS 환경으로 파일을 주고받을 때 데이터가 기괴한 외계어(▒▒▒)로 깨지던 호환성 문제를 근본적으로 해결
UTF-8을 쓰는 이유
- 메모리 및 대역폭 최적화: 전 세계 소스코드와 데이터의 절대다수를 차지하는 영어와 숫자를 과거 아스키(ASCII) 시절과 똑같이 딱 1바이트, 한글과 한자는 3바이트, 이모티콘과 고대 문자는 4바이트로 압축 보관하여 무시무시한 용량 낭비를 막아줌
- 기존 아스키(ASCII) 시스템과의 완벽한 호환: 1바이트 영역의 데이터 구조가 예전 아스키 규격과 완벽하게 똑같기 때문에, 과거에 개발된 옛날 프로그램이나 하드웨어 아키텍처를 통째로 부수고 새로 짜지 않아도 매끄럽게 유니코드 생태계로 전환할 수 있음
한글 이름을 변경하는 방법
| 한글 글자 | 유니코드 (16진수) | UTF-8 2진수 내부 배치 형태 | UTF-8 (16진수 출력 결과) | 차지하는 크기 |
| 박 | BC15 | 11101100 10110000 10010101 | EB B0 95 | 3 Byte |
| 상 | C0C1 | 11101100 10000011 10000001 | EC 83 81 | 3 Byte |
| 현 | D604 | 11101101 10011000 10000100 | ED 98 84 | 3 Byte |
- 유니코드 표에서 한글 글자들은 대략 U+AC00부터 U+D7A3 사이에 몰려 있음
- UTF-8 규격에서는 이 영역의 주소를 메모리에 새길 때, 다음과 같은 고정된 비트 패턴(틀)을 제공함
-
1110_ _ _ _ 10_ _ _ _ _ _ 10_ _ _ _ _ _
- 1110은 이 글자는 총 3byte 글자라는 뜻
- 10은 앞 글자에 이어지는 종속 byte라는 뜻
'AI 시스템 반도체 SW > 기술 면접' 카테고리의 다른 글
| [기술 면접] CISC(Complex Instruction Set Computer)와 RISC(Reduce Instruction Set Computer) (0) | 2026.05.30 |
|---|---|
| [기술 면접] Big Endian(모토롤라 계열)과 Little Endian(인텔 계열) (0) | 2026.05.30 |