AI 시스템 반도체 SW/기술 면접

[기술 면접] unicode와 UTF-8

psh010208 2026. 5. 30. 21:23

유니코드(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라는 뜻