왜 이 문자가 여기 있는가?
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
개발 툴
대상자
Unicode 인코딩 문제 해결을 위한 개발자, 소프트웨어 엔지니어, 특히 한글 처리 관련 작업자
핵심 요약
- 한글은 Unicode의 BMP 범위(U+AC00~U+D7A3)에서 11,172개의 자음/모음 조합으로 정의됨
- 분해형(Decomposed) 한글(예: '하' = ㅎ + ㅏ)은 Windows 같은 시스템에서 깨짐 현상을 유발할 수 있음
- 한글 정렬 기준은 1988년 한국 교육부 공문에서 확정, 북한과는 초성/종성 순서가 다름
섹션별 세부 요약
1. Unicode 구조와 한글 범위
- Basic Multilingual Plane (BMP): 16비트 공간, U+0000~U+FFFF 범위
- 한글은 BMP의 AC~D7 영역(U+AC00~U+D7A3)에 위치
- 19개 초성 + 21개 중성 + 28개 종성 조합으로 11,172개 한글 자음/모음 생성
2. 분해형 vs 조합형 한글
- 분해형(예: '한' = ㅎ + ㅏ + ㄴ)은 macOS에서 파일명에 사용됨
- 조합형(예: '한')은 Windows에서 제대로 표시되지 않음
- JavaScript substring()은 분해형 문자를 잘못 인식하여 '하'만 추출할 수 있음
3. 한글 정렬 기준
- 1988년 교육부 기준: 1988년 이후 표준 KS X 1026-1에 반영
- 북한 기준: 이중자음은 끝에 배치, ㅇ(이응)도 끝에 배치
- Unicode Consortium은 북한의 1999년 개정안을 채택하지 않음
4. 한글 입력 도구와 오류
- 세벌식 키보드: 초/중/종성을 분리 입력 가능, 오타 감소
- 듀벌식 키보드: 입력 타이밍에 따라 초/종성 구분, '옷이 ㅇ벗어요' 같은 오류 발생 가능
결론
- 분해형 Unicode 문자(예: NFD) 사용 시 Windows와 macOS 간 호환성 문제 발생 가능
- 한글 처리 시 Unicode 범위(U+AC00~U+D7A3)와 정렬 기준(KS X 1026-1)을 반드시 고려해야 함
- 세벌식 키보드 사용을 통해 한글 입력 오류를 최소화할 수 있음