1. 핵심 개념 정리 (정확한 용어 구분)
- 문자(character): 사람이 인식하는 기호(예: '가', 'A', '€').
- 문자 코드포인트(code point): 유니코드에서 각 문자에 할당된 고유 번호(예:
'가' = U+AC00, 'A' = U+0041).
- 코드 유닛(code unit): 특정 인코딩이 사용하는 최소 단위(UTF-8의 경우 8비트(1바이트), UTF-16은 16비트 단위).
- 문자열의 표현(three-layer): 문자 → 코드포인트 → 코드 유닛(인코딩) → 바이트(파일/네트워크).
- 인코딩(encoding): 코드포인트를 실제 바이트 시퀀스로 변환하는 규칙(예: UTF-8, UTF-16).
- 디코딩(decoding): 반대 과정 — 바이트를 문자로 해석.
2. 유니코드(Unicode)
유니코드 협회가 제정하는 전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 산업 표준
이 표준에는 ISO 10646 문자 집합, 문자 인코딩, 문자 정보 데이터베이스, 문자를 다루기 위한 알고리즘 등을 포함
- ISO/IEC 10646 (UCS) 와 Unicode 표준은 문자 집합(코드 포인트) 측면에서 사실상 같은 문자 레퍼토리와 코드 포인트를 공유함
- 하지만 Unicode는 여기에 더해 문자 속성, 정규화 규칙, 렌더링·정렬 알고리즘, 콜레이션 등의 추가 규칙과 알고리즘을 제공
- 요약: ISO 10646 = 코드 포인트 체계(표준), Unicode = 코드 포인트 + 문자 처리 관련 규칙들.
3. 인코딩(부호화)