문자소 클러스터(grapheme cluster)는 텍스트 처리에서 사용자가 한 글자로 인식하는 단위를 다루기 위해 묶은 문자들의 단위다. 유니코드 UAX 29는 이 묶음의 기본 경계 규칙을 정한다. 언어학의 [[문자소]]와 모든 상황에서 일치하는 개념은 아니다. ([유니코드 텍스트 분할](https://www.unicode.org/reports/tr29/)) - 한 글자가 유니코드 코드 포인트 하나로만 저장되는 것은 아니다. 기본 문자와 결합 부호를 함께 묶거나 한글의 이어지는 자모를 한 단위로 다룰 수 있다. ([문자소 클러스터의 예](https://www.unicode.org/reports/tr29/)) - 한글 ‘각’은 완성된 음절 하나로도, 초성, 중성, 종성의 조합으로도 표현할 수 있다. [[유니코드 정규화]]와 문자소 경계는 이런 서로 다른 표현을 다룰 때 함께 살필 주제다. - 글자 수 제한, 텍스트 선택, 방향키 이동은 사용자에게 보이는 단위를 고려해야 한다. [[표기 체계]]와 언어, 편집 목적에 따라 기본 경계를 조정할 수도 있다. ([UAX 29의 경계와 편집](https://www.unicode.org/reports/tr29/)) - 클러스터 경계가 화면상의 커서 위치를 전부 결정하지는 않는다. 겹치는 글리프와 합자 등 실제 모양에 관한 정보는 렌더링과 편집 프로그램에서도 제공해야 한다. ([커서 배치의 조건](https://www.unicode.org/reports/tr29/)) ## 기타 등등 - 하나의 문자소 클러스터에 들어갈 데이터 크기에는 이 규칙상 상한이 없다. 글자 수를 제한해도 저장할 바이트 수가 자동으로 제한되는 것은 아니다. [출처](https://www.unicode.org/reports/tr29/) - UAX 29는 어떤 시스템에서 백스페이스가 코드 포인트 단위로, 삭제 키가 클러스터 단위로 지울 수도 있다고 설명한다. 두 키의 삭제 단위가 반드시 같지는 않다. [출처](https://www.unicode.org/reports/tr29/) #타이포그래피 #유니코드 #개념