정의
코드 포인트(code point)란 문자 집합(특히 유니코드)에서 각각의 문자에 할당된 고유한 번호를 의미한다. 유니코드 표준에서 각 문자와 기호는 0x0000부터 0x10FFFF까지의 21비트 정수값으로 지정되며, 이 값을 코드 포인트라고 부른다.
주요 특성
- 식별자: 코드 포인트는 문자 자체를 식별하는 숫자이며, 문자 자체의 형태나 폰트와는 무관하다.
- 표현 방식: UTF‑8, UTF‑16, UTF‑32와 같은 인코딩 방식은 코드 포인트를 바이트 시퀀스로 변환하는 방법을 정의한다.
- 범위: 현재 유니코드에서는 0x0000–0xD7FF, 0xE000–0x10FFFF 영역이 할당되어 있다. 0xD800–0xDFFF는 서러게이트 영역으로, 실제 문자에 직접 할당되지 않는다.
사용 맥락
- 소프트웨어 개발: 문자열 처리, 문자 인코딩 변환, 데이터 검증 등에서 코드 포인트를 직접 다루는 경우가 많다.
- 국제화(i18n) 및 지역화(l10n): 다국어 지원을 위한 문자 집합 설계 시 코드 포인트를 기준으로 문자 집합을 정의한다.
- 텍스트 데이터베이스: 문자열 검색 및 정렬 시 코드 포인트 값을 기준으로 비교 연산을 수행한다.
어원
‘코드 포인트’는 영어 “code point”를 그대로 음역·번역한 용어이며, ‘code’는 문자에 부여된 번호 체계를, ‘point’는 그 번호 자체를 가리킨다. 한국어 IT·컴퓨터 분야에서는 영어 원어를 그대로 차용해 사용한다.
관련 용어
- 유니코드(Unicode): 전 세계 모든 문자에 고유 코드를 부여하는 국제 표준.
- 인코딩(Encoding): 코드 포인트를 실제 저장·전송 가능한 바이트 시퀀스로 변환하는 방법.
- 서러게이트 페어(Surrogate Pair): UTF‑16에서 0x10000 이상 코드 포인트를 표현하기 위해 두 개의 16비트 값으로 구성된 쌍.
참고
- Unicode Consortium, The Unicode Standard, 최신 버전.
- ISO/IEC 10646, Universal Coded Character Set (UCS).