최근 수정 시각 : 2024-10-10 01:23:47

정렬/순서

파일:상위 문서 아이콘.svg   상위 문서: 정렬
1. 개요2. 정렬 관련 용어3. 한글4. 한자
4.1. 독음 순 정렬4.2. 부수-나머지 획수 순 정렬
5. 라틴 문자6. 가나7. 그리스 문자8. 아랍 문자9. 주음부호10. 키릴 문자11. 히브리 문자12. 단순 유니코드 순 정렬

1. 개요

이 문서에서는 문자·언어별 정렬 순서를 다룬다. 사전을 찾아볼 때나 정렬에 관련된 프로그래밍을 할 때 유용할 것이다.

여러 언어가 같은 문자 체계를 공유하는 경우도 있으므로 문자별로 단락을 만들어서 정리하도록 하고, 같은 문자에 다른 정렬 순서가 적용되는 경우 하위 단락으로 만들 것.

2. 정렬 관련 용어

정렬에도 여러 가지 단계가 있다.

단계는 보통 primary level(L1), secondary level(L2), tertiary level(L3), quaternary level(L4), pentanary level(L5) 다섯 단계로 나눠지며, 라틴 문자와 가나의 경우 이 네 단계는 다음과 같이 분류된다.
  1. primary level: 글자 자체가 다른 경우 (ab < ac < ad, はい < はう < はえ)
  2. secondary level: 주로 diacritic 차이 (ab < áb < ac, はい < ばい < はう)
    diacritic이 없는 것이 있는 것보다 앞에 온다.
  3. tertiary level: 대소문자 차이 (ab < Ab < áb, しゃ < しや < じゃ)
    보통 소문자가 대문자보다 앞에 온다.
  4. quaternary level: 문장 부호 차이 (ab < a c < a-c < ac < ad)
  5. pentanary level: 보통 대문자가 소문자보다 앞에 온다. (Ab < ab < Áb)
위 예에서 ab와 ac, はい와 はう 사이에는 L1 difference가 있고, ab와 áb, はい와 ばい 사이에는 L2 difference가 있으며, ab와 Ab, しゃ와 しや 사이에는 L3 difference가 있으며, a c와 a-c, ac 사이에는 L4 difference가 있고, Ab와 ab 사이에는 L5 difference가 있다.

정렬 시에는 언제나 상위 단계가 우선적으로 적용된다. 즉 L1 difference가 있을 경우 L2 difference 이하는 무시되며, L1 difference가 없고 L2 difference가 있을 경우 L3 difference 이하는 무시된다.

다만 L2 difference의 경우, '주로' diacritic 차이인 것을 염두에 두어야 한다. 만약 어떤 언어에서 á를 a와는 아예 다른 별개의 문자로 볼 경우, a와 á 사이에는 L2 difference가 아니라 L1 difference가 있는 것이 되며, 이 경우 ab < ac < áb 순으로 정렬된다. diacritic이 붙은 문자와 붙지 않은 문자를 별개의 문자로 볼지(L1 difference), 아니면 일단은 똑같은 문자로 볼지(L2 difference)는 언어에 따라 다르기 때문에 주의가 필요하다. 아래 '스페인어' 섹션을 보면 알겠지만 스페인어의 경우 a와 á 사이에는 L2 difference가 있지만 n과 ñ 사이에는 L1 difference가 있다.

이 문서에서는 L1 difference와 L2 difference을 주로 다룬다.

3. 한글

모든 낱자 사이에는 L1 difference가 존재하며, 초성이 같을 경우 중성 순으로, 초성과 중성이 모두 같을 경우 종성 순으로 정렬된다.

3.1. 대한민국 표준어

대한민국 표준어에서 사용되는 정렬 순서는 다음과 같다. 대개 가나다순이라고 한다.[1] 1988 서울 올림픽, 2018 평창 동계올림픽때 이 순서대로 입장하였다.
  • 초성: ㄱ ㄲ ㄴ ㄷ ㄸ ㄹ ㅁ ㅂ ㅃ ㅅ ㅆ ㅇ ㅈ ㅉ ㅊ ㅋ ㅌ ㅍ ㅎ
  • 중성: ㅏ ㅐ ㅑ ㅒ ㅓ ㅔ ㅕ ㅖ ㅗ ㅘ ㅙ ㅚ ㅛ ㅜ ㅝ ㅞ ㅟ ㅠ ㅡ ㅟ ㅢ ㅣ
  • 종성: (없음) ㄱ ㄲ ㄳ ㄴ ㄵ ㄶ ㄷ ㄹ ㄺ ㄻ ㄼ ㄽ ㄾ ㄿ ㅀ ㅁ ㅂ ㅄ ㅅ ㅆ ㅇ ㅈ ㅊ ㅋ ㅌ ㅍ ㅎ
ㅐ는 ㅏ와 ㅣ의 합자로 보기 때문에 ㅏ와 ㅑ 사이에 온다. ㅒ, ㅔ, ㅖ 등도 마찬가지.

쌍자음의 경우 1989년의 현행 맞춤법 제정 전에는 명확한 규정이 없었다. ㄱ과 ㄲ을 예로 들자면, ㄲ을 ㄱ에 diacritic(?)이 붙은 것으로 취급하여 ㄱ과 ㄲ 사이에 L2 difference가 있는 것으로 처리한 사전도 있었고(가, 까, 각, 깍, … 순. 예: 가오리 < 까마귀 < 각다귀), ㄱ과 ㄲ 사이에 L1 difference가 있는 것으로 보고 ㄱ과 ㄲ을 완전히 따로 분리해서 배열한 사전도 있었다(가, 각, …, 깋, 까, 깍, … 순. 예: 가오리 < 각다귀 < 까마귀). 1989년 현행 맞춤법이 시행되면서 후자로 명확히 규정하였다.

유니코드의 한글 자모 순서는 대한민국 표준어 순서를 따르고 있다.

3.1.1. 옛한글

표준어의 어문 규정에는 옛한글에 대한 정렬 순서는 없으나, 대한민국의 KS X 1026-1 규격(정보교환용 한글 처리지침)에 따르면 옛한글은 다음과 같이 정렬한다. 표준어의 정렬 순서를 확장한 것으로 볼 수 있다.
  • ㅿ은 ㅅ의 뒤에, ㆁ은 ㅇ의 뒤에, ㆆ은 ㅎ의 뒤에 따로 정렬하고, ㆍ(아래아)는 ㅣ의 뒤에 따로 정렬한다.
  • ㅲ, ㅼ, ㅵ과 같이 두세 낱자로 이루어진 병서는 A+B(+C)와 같이 보고 정렬한다. 예를 들어 ㅲ, ㅳ 등은 각각 ㅂ+ㄱ, ㅂ+ㄷ 등으로 보고 ㅂ과 ㅃ(= ㅂ+ㅂ) 사이에 정렬하고, ㅴ, ㅵ, ᄤ 등은 ㅄ과 ㅶ 사이에 정렬하고, ㅺ, ㅻ, ㅼ, ㅽ 등은 ㅅ과 ㅆ(= ㅅ+ㅅ) 사이에 정렬한다. 모음도 마찬가지로, ᅺ(= ㅓ+ㅗ), ᅻ(= ㅓ+ㅜ), ᅼ(= ㅓ+ㅡ) 등은 ㅓ와 ㅔ(= ㅓ+ㅣ) 사이에 정렬한다.
  • 연서(ᄛ, ㅱ, ㅸ, ㅹ, ㆄ)는 병서의 뒤에 따로 정렬한다. ㅷ ᄪ ꥴ ㅸ ㅹ ㅅ 순서이다.
  • 치두음(왼쪽으로 늘어진 낱자)과 정치음(오른쪽으로 늘어진 낱자)은 원 낱자(ㅅ, ㅈ, ㅊ)들의 뒤에 따로 정렬한다. 동일한 원 낱자 범위 안에서 치두음은 정치음보다 무조건 앞으로 정렬된다. 즉, 치두음쌍시옷(ᄽ)이 정치음시옷(ᄾ)보다 앞이다. ᄺ ᄻ ᄼ ᄽ ᄾ ᄿ ㅿ 순서이다.
  • 초성 채움 문자(U+115F)는 초성의 맨 뒤에 정렬되고, 중성 채움 문자(U+1160)는 중성의 맨 앞에 정렬된다. 초성과 중성은 모두 똑같고 종성의 유무만 다른 경우, 종성이 없는 글자는 종성이 있는 글자보다 앞에 온다.

구체적으로는 다음과 같이 정렬한다. 아래 이미지는 유니코드에 있는 모든 한글 낱자를 순서대로 정렬한 것이다. 자음의 경우 위의 것이 초성, 아래의 것이 종성이다.
파일:attachment/UnicodeHangulJamoInOrder.png

아래 표는 실제로 옛한글 정렬을 구현할 때 유용하게 쓰일 수 있을 것이다.
번호 초성 중성 종성
1 1100 1160 (없음)
2 1101 1161 11A8
3 115A 1176 11A9
4 1102 1177 11FA
5 1113 11A3 11C3
6 1114 1162 11FB
7 1115 1163 11AA
8 1116 1178 11C4
9 115B 1179 11FC
10 115C 11A4 11FD
11 115D 1164 11FE
12 1103 1165 11AB
13 1117 117A 11C5
14 1104 117B 11FF
15 115E 117C 11C6
16 A960 1166 D7CB
17 A961 1167 11C7
18 A962 11A5 11C8
19 A963 117D 11AC
20 1105 117E D7CC
21 A964 1168 11C9
22 A965 1169 11AD
23 1118 116A 11AE
24 A966 116B 11CA
25 A967 11A6 D7CD
26 1119 11A7 D7CE
27 A968 117F 11CB
28 A969 1180 D7CF
29 A96A D7B0 D7D0
30 A96B 1181 D7D1
31 A96C 1182 D7D2
32 A96D D7B1 D7D3
33 A96E 1183 D7D4
34 111A 116C 11AF
35 111B 116D 11B0
36 1106 D7B2 D7D5
37 A96F D7B3 11CC
38 A970 1184 D7D6
39 111C 1185 11CD
40 A971 D7B4 11CE
41 111D 1186 11CF
42 1107 1187 11D0
43 111E 1188 D7D7
44 111F 116E 11B1
45 1120 1189 11D1
46 1108 118A 11D2
47 1121 116F D7D8
48 1122 118B 11B2
49 1123 1170 D7D9
50 1124 D7B5 11D3
51 1125 118C D7DA
52 1126 118D 11D4
53 A972 1171 11D5
54 1127 D7B6 11B3
55 1128 1172 11D6
56 A973 118E 11D7
57 1129 D7B7 D7DB
58 112A 118F 11D8
59 A974 1190 11B4
60 112B 1191 11B5
61 112C 1192 11B6
62 1109 D7B8 11D9
63 112D 1193 D7DC
64 112E 1194 D7DD
65 112F 1173 11B7
66 1130 D7B9 11DA
67 1131 D7BA D7DE
68 1132 D7BB D7DF
69 1133 D7BC 11DB
70 110A 1195 D7E0
71 A975 1196 11DC
72 1134 1174 D7E1
73 1135 1197 11DD
74 1136 1175 11DE
75 1137 1198 11DF
76 1138 1199 D7E2
77 1139 D7BD 11E0
78 113A D7BE 11E1
79 113B D7BF 11E2
80 113C D7C0 11B8
81 113D 119A D7E3
82 113E D7C1 11E3
83 113F D7C2 D7E4
84 1140 119B D7E5
85 110B D7C3 D7E6
86 1141 119C 11B9
87 1142 D7C4 D7E7
88 A976 119D D7E8
89 1143 119E D7E9
90 1144 D7C5 11E4
91 1145 119F 11E5
92 1146 D7C6 11E6
93 1147 11A0 11BA
94 1148 11A1 11E7
95 1149 11A2 11E8
96 114A 11E9
97 114B D7EA
98 A977 11EA
99 114C D7EB
100 110C 11BB
101 114D D7EC
102 110D D7ED
103 A978 D7EE
104 114E D7EF
105 114F D7F0
106 1150 D7F1
107 1151 D7F2
108 110E 11EB
109 1152 D7F3
110 1153 D7F4
111 1154 11BC
112 1155 11F0
113 110F 11EC
114 1110 11ED
115 A979 D7F5
116 1111 11F1
117 1156 11F2
118 A97A 11EE
119 1157 11EF
120 1112 D7F6
121 A97B 11BD
122 1158 D7F7
123 1159 D7F8
124 A97C D7F9
125 115F 11BE
126 11BF
127 11C0
128 11C1
129 11F3
130 D7FA
131 D7FB
132 11F4
133 11C2
134 11F5
135 11F6
136 11F7
137 11F8
138 11F9

3.2. 북한 문화어

북한 문화어에서 사용되는 정렬 순서는 다음과 같다.
  • 초성: ㄱ ㄴ ㄷ ㄹ ㅁ ㅂ ㅅ ㅈ ㅊ ㅋ ㅌ ㅍ ㅎ ㄲ ㄸ ㅃ ㅆ ㅉ ㅇ
  • 중성: ㅏ ㅑ ㅓ ㅕ ㅗ ㅛ ㅜ ㅠ ㅡ ㅣ ㅐ ㅒ ㅔ ㅖ ㅚ ㅟ ㅢ ㅘ ㅝ ㅙ ㅞ
  • 종성: (없음) ㄱ ㄳ ㄴ ㄵ ㄶ ㄷ ㄹ ㄺ ㄻ ㄼ ㄽ ㄾ ㄿ ㅀ ㅁ ㅂ ㅄ ㅅ ㅇ ㅈ ㅊ ㅋ ㅌ ㅍ ㅎ ㄲ ㅆ
자음의 경우 쌍자음을 뒤에 배당하며, 모음의 경우 합성 자모를 뒤에 배당한다. 초성 ㅇ은 음가가 없기 때문에, 초성 ㅇ으로 시작하는 경우는 모음으로 시작한다고 보고 맨 뒤에 배당한다.

예를 들어, {개, 토끼, 하마, 오리, 기러기, 까마귀, 가오리}로 이루어진 단어 집합의 원소들을 남한식과 북한식으로 정렬하면 이렇게 된다.
  • 남: 가오리 < 개 < 기러기 < 까마귀 < 오리 < 토끼 < 하마
  • 북: 가오리 < 기러기 < 개 < 토끼 < 하마 < 까마귀 < 오리

이 순서는 다음과 같이 여러 그룹으로 나누면 쉽게 기억할 수 있다.
  • 초성: ㅇ을 제외한 홑자음(ㄱ ㄴ ㄷ ㄹ ㅁ ㅂ ㅅ ㅈ ㅊ ㅋ ㅌ ㅍ ㅎ), 쌍자음(ㄲ ㄸ ㅃ ㅆ ㅉ), ㅇ
  • 중성: 기본 모음(ㅏ ㅑ ㅓ ㅕ ㅗ ㅛ ㅜ ㅠ ㅡ ㅣ), ㅣ로 끝나는 digraph(ㅐ ㅒ ㅔ ㅖ ㅚ ㅟ ㅢ), 나머지 digraph(ㅘ ㅝ), trigraph(ㅙ ㅞ)
  • 종성: 쌍자음 둘(ㄲ ㅆ)만 맨 뒤로 뺌

참고로 유니코드에서 북한식 정렬이 철저하게 외면당하고, 오로지 남한식 정렬만 채택되었다. 그래서 북한식 정렬을 컴퓨터에서 구현하려면 남한식 정렬을 구현할 때보다 추가적인 삽질이 필요하다. 남북한 한글 코드의 충돌 문제 문서도 참고할 것.

표준어식 정렬은 확장이 용이하기 때문에 옛한글도 쉽게 수용할 수 있지만, 문화어식 정렬은 확장이 까다로워서 옛한글을 수용하기 어렵다. 옛한글은 그 정확한 발음을 아무도 모르기 때문에 음가 기준이 아니라 표준어식 정렬 순서와 같이 자형 기준으로 하는 것이 바람직하다.

3.3. 겨레말큰사전

남한과 북한이 공동으로 제작하는 한국어 사전 겨레말큰사전에서는 남한 표준어와 북한 문화어의 자모 순서를 절충해 다음과 같은 정렬 순서를 채택했다. 출처는 이 문서의 14쪽이다.
  • 초성: ㄱ ㄴ ㄷ ㄹ ㅁ ㅂ ㅅ ㅇ ㅈ ㅊ ㅋ ㅌ ㅍ ㅎ ㄲ ㄸ ㅃ ㅆ ㅉ
  • 중성: ㅏ ㅑ ㅓ ㅕ ㅗ ㅛ ㅜ ㅠ ㅡ ㅣ ㅐ ㅒ ㅔ ㅖ ㅘ ㅚ ㅙ ㅝ ㅟ ㅞ ㅢ
  • 종성: (없음) ㄱ ㄴ ㄷ ㄹ ㅁ ㅂ ㅅ ㅇ ㅈ ㅊ ㅋ ㅌ ㅍ ㅎ ㄲ ㄳ ㄵ ㄶ ㄺ ㄻ ㄼ ㄽ ㄾ ㄿ ㅀ ㅄ ㅆ
정리하자면 기본 자모들은 앞쪽에 따로 모으고 겹자모들은 뒤쪽에 따로 모은 것이다. ㅘ < ㅙ < ㅚ 순서가 아니라 ㅘ < ㅚ < ㅙ 순서가 된 것은 앞쪽의 ㅏ < ㅣ < ㅐ와 맞추기 위해서인 것으로 보인다. ㅝ < ㅟ < ㅞ도 마찬가지이다.

4. 한자

4.1. 독음 순 정렬

한국어, 일본어, 중국어, 베트남어 등은 자신만의 한자 독음을 가지고 있으며, 이러한 언어들은 그 독음에 따라 한자를 정렬하는 경우가 많다.

4.2. 부수-나머지 획수 순 정렬

한자를 1차적으로 부수에 따라 정렬하며, 부수가 같은 한자는 부수를 제외한 나머지 부분의 획수 순으로 정렬한다. 부수강희자전의 214부수 체계를 따르는 것이 일반적이다. 각 부수 사이에는 L1 difference가 존재한다.

이 정렬 방식은 한자의 독음을 알 수 없을 때(또는 한 한자에 여러 독음이 존재할 때) 유용하게 쓰일 수 있으며, 특정 언어의 독음에 의존하지 않아도 되기 때문에 중립적이기도 하다. 다만 부수와 획수가 같은 한자의 순서는 정해지지 않았다.

또한 이 방식을 채택한 사전들은 대부분 두 번째 글자부터는 이 방식을 따르지 않는 경우도 흔히 볼 수 있다. 가령 한국 발행 자전에서는 첫 번째 글자는 이 순서로 나오지만 첫 번째 글자가 같은 경우 두 번째 글자부터는 한국 한자음 가나다순 배열을 한 자전을 흔히 볼 수 있다.

유니코드에서 한자 블록을 제정할 때 한자들을 부수-나머지 획수 순으로 배당한다(一, 丁, 丂, …, 龣, 龤, 龥). 이는 옛 문헌에 나오는 독음을 알 수 없는 한자들도 비교적 쉽게 배열해 추가할 수 있다는 장점이 있다.

2008 베이징 올림픽, 2022 베이징 동계올림픽때 한자 획순대로 입장하였다.

5. 라틴 문자

기본적으로는 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 순을 따르고 모든 글자 사이에 L1 difference가 있으나, 언어에 따라서 조금씩 차이가 있다. 아래에서 별도의 언급이 없는 한 기본적으로 이 정렬 순서를 따른다.

또한 같은 글자라도 언어에 따라 순서가 다를 수 있다. 예를 들어 독일어에서는 Ö < Z이지만 스웨덴어에서는 Z < Ö이고, 프랑스어에서는 É < È이지만 베트남어에서는 È < É이다.

파일:상세 내용 아이콘.svg   자세한 내용은 로마자/확장 문자 문서
번 문단을
부분을
참고하십시오.

5.1. 영어 (en)

영어도 일부 어휘에 diacritics가 쓰이는 경우가 있는데,[2] diacritic이 붙은 문자와 diacritic이 붙지 않은 문자 사이에는 L2 difference가 있다.
  • 예: echo < éclair < eclipse, resume < résumé

5.2. 독일어 (de)

두 가지 정렬 순서가 존재한다. 이 두 가지 정렬 순서는 움라우트가 붙은 글자(Ä, Ö, Ü)를 처리하는 방법이 다르다. ß는 두 가지 순서에서 모두 SS와 동일하게 취급한다.
  • 사전 순서
    A, O, U와 Ä, Ö, Ü 사이에는 L1 difference가 있다.
    • 예: Arg < Arm < Assistent < Aßlar < Assoziation < Ärgerlich
  • 전화번호부 순서
    Ä, Ö, Ü를 각각 AE, OE, UE와 동일하게 취급한다.
    • 예: Udet < Übelacker < Uell < Ülle < Ueve < Üxküll < Uffenbach

그래서 독일어 사전에서는 of < öf이지만, 전화번호부에서는 öf < of이다.

두 가지 정렬 순서가 있는 이유는 다음과 같다.
  • 사전 순서: 단어의 파생형을 비슷한 위치에 놓기 위해서이다. 예를 들어 Fuß의 복수형은 Füße인데, ü를 일단 u와 동일하게 보면 Fuß와 Füße가 가까운 위치에 놓이게 되므로 편리하다.
  • 전화번호부 순서: 인명에서는 ä, ö, ü가 쓰이는 경우도 있고 ae, oe, ue가 쓰이는 경우도 있다. 예를 들어 독일어권에는 Müller 씨도 Mueller 씨도 모두 존재하는데, ü를 일단 ue와 동일하게 보면 Müller와 Mueller가 기본적으로 같은 위치에 놓이게 되므로 편리하다. 독일 개최 올림픽(1936 베를린, 1972 뮌헨 등) 개회식 입장 순서도 이 방식을 택했다.

5.3. 에스페란토 (eo)

Ĉ, Ĝ, Ĥ, Ĵ, Ŝ, Ŭ와 C, G, H, J, S, U 사이에는 L1 difference가 있다(…, C, Ĉ, D, E, F, G, Ĝ, H, Ĥ, I, J, Ĵ, …, S, Ŝ, T, U, Ŭ, V, Z).

5.4. 스페인어 (es)

Á, É, Í, Ó, Ú, Ü와 A, E, I, O, U 사이에는 L2 difference가 있다.
  • 예: facial < fácil < facilidad, como < cómo
다만 Ñ와 N 사이에는 L1 difference가 있다(따라서 N 뒤에 Ñ를 따로 정렬한다).
  • 예: anticipar < año < aorta

1997년까지는 CH, LL을 별도의 문자로 보고 각각 C, L 뒤에 따로 배열했지만, 현재는 별도의 문자로 보지 않고 각각 C + H, L + L로 본다.
  • 과거: centro < cielo < champú, limpiar < locación < llamar
  • 현재: centro < champú < cielo, limpiar < llamar < locación

5.5. 프랑스어 (fr)

diacritic이 붙은 문자와 diacritic이 붙지 않은 문자 사이에는 L2 difference가 있다. A, E, I, U와 같이 글자 위에 붙을 수 있는 diacritic의 종류가 둘 이상인 경우, acute (´) < grave (`) < circumflex (ˆ) < diaeresis (¨) 순으로 정렬된다. 정리하자면 다음과 같다(대괄호로 묶인 글자들은 L2 difference 관계임).
  • [A À Â] B [C Ç] D [E É È Ê Ë] F G H [I Î Ï] J K L M N [O Ô] P Q R S T [U Ù Û Ü] V W X [Y Ÿ] Z
Æ, Œ와 A, O 사이에는 L2 difference가 있다.

L1 difference가 없고 L2 difference만 있다면(= diacritic을 제거했을 때 똑같아진다면), 마지막 diacritic에 따라 정렬된다.
  • 예: cote < côte < coté < côté

5.6. 포르투갈어 (pt)

영어와 동일하다. diacritic이 쓰이는 경우가 있는데, diacritic이 붙은 문자와 diacritic이 붙지 않은 문자 사이에는 L2 difference가 있다.

5.7. 스웨덴어 (sv)

Å, Ä, Ö는 Z 뒤에 별도의 문자로 정렬된다(…, X, Y, Z, Å, Ä, Ö).

5.8. 튀르키예어 (tr)

Ç, Ğ, İ(i), Ö, Ş, Ü와 C, G, I(ı), O, S, U 사이에는 L1 difference가 있다. I(ı)와 İ(i)의 경우, I(ı) < İ(i)와 같이 점이 없는 것이 앞으로, 있는 것이 뒤로 간다.

5.9. 베트남어 (vi)

Ă, Â, Đ, Ê, Ô, Ơ, Ư와 A, D, E, O, U 사이에는 L1 difference가 있다(A, Ă, Â, B, C, D, Đ, E, Ê, G, …, N, O, Ô, Ơ, P, …, T, U, Ư, V, X, Y).

성조 부호가 없는 문자와 성조 부호가 붙은 문자 사이에는 L2 difference가 있다. 성조 부호는 부호 없음 (a) < grave (à) < hook above (ả) < tilde (ã) < acute (á) < dot below (ạ) 순으로 정렬된다.

5.10. 한어병음

보통 다음 두 가지 방식[3]으로 정렬된다. 代表(dàibiǎo), 单位(dānwèi), 单纯(dānchún), 大众(dàzhòng), 大家(dàjiā), 当时(dāngshí)라는 단어들을 예로 든다.
  • 첫 한자의 병음 표기 → 첫 한자 → 그 한자 안에서 두 번째 한자의 병음 표기 → 두 번째 한자 (세 글자 이상의 한자로 이루어진 단어라면 글자마다 같은 과정 반복)
    • da 大
      • …jia …家 → 大家
      • …zhong …众 → 大众
    • dai 代
      • …biao …表 → 代表
    • dan 单
      • …chun …纯 → 单纯
      • …wei …位 → 单位
    • dang 当
      • …shi …时 → 当时
  • 한자와 상관없이 모든 단어들을 병음 순서대로 나열함[4]
    • d → +a → +i → +b → +i → +a → +o → 代表
    • d → +a → +j → +i → +a → 大家
    • d → +a → +n → +c → +h → +u → +n → 单纯
    • d → +a → +n → +g → +s → +h → +i → 当时
    • d → +a → +n → +w → +e → +i → 单位
    • d → +a → +z → +h → +o → +n → +g → 大众
그래서 첫 번째 방식에서는 大家 < 大众 < 代表 < 单纯 < 单位 < 当时이고, 두 번째 방식에서는 代表 < 大家 < 单纯 < 当时 < 单位 < 大众이다. 쉽게 말해서 첫 번째 방식은 기본적으로 한자를 기준으로 하되 한자의 배열 순서가 병음 ABC순인 것이고, 두 번째 방식은 철저히 ABC가 기준이다.

첫 번째 방식은 특정 한자로 시작되는 단어들을 찾고자 할 때 편리하고(예를 들어 意를 보면 意로 시작하는 단어들이 그곳에 몰려 있으므로), 두 번째 방식은 발음은 알고 있으나 어떤 한자로 쓰는지 모르는 단어를 찾고자 할 때 아주 편리하다(예를 들어 yìshí(意识)라는 단어를 찾고자 할 때 단순히 y → +i → +s → +h → +i 식으로 찾아 나가면 되므로. 첫 번째 방식대로라면 yì에 해당되는 글자(꽤 많다)가 뭔지부터 궁리해야 한다).

성조 부호가 없는 문자와 성조 부호가 붙은 문자 사이에는 L2 difference가 있다. 성조 부호는 첫 번째 방식에서는 < macron (ā) < acute (á) < caron (ǎ) < grave (à) < 부호 없음 (a) 순으로, 두 번째 방식에서는 부호 없음 (a) < macron (ā) < acute (á) < caron (ǎ) < grave (à) 순으로 정렬된다.

6. 가나

기본적으로 오십음도를 따라 あ い う え お か き く け こ さ し す せ そ た ち つ て と な に ぬ ね の は ひ ふ へ ほ ま み む め も や ゆ よ ら り る れ ろ わ ゐ ゑ を ん 순으로 정렬되며, 각 문자 사이에는 L1 difference가 존재한다. 히라가나만을 예로 드나, 가타카나에도 똑같이 적용된다. 2020 도쿄 올림픽에서 해당 순서대로 입장하였다.
  • 탁점(゛)과 반탁점(゜)이 붙은 가나와 붙지 않은 가나 사이에는 L2 difference가 있다. L1 difference가 없을 경우, 없음 < 탁점 < 반탁점 순서로 정렬한다.
  • 작은 가나와 보통 크기의 가나 사이에는 L3 difference가 있다. L1 difference와 L2 difference가 없을 경우, 작은 가나 < 보통 크기의 가나 순서로 정렬한다.
  • 장음 부호(ー)는 앞 글자가 あ단일 경우 あ로, い단일 경우 い로, う단일 경우 う로, え단일 경우 え로, お단일 경우 お로, ん일 경우 ん으로 바꿔 처리한다.
  • ゝ, 々는 바로 앞 글자로 바꿔 처리한다. 앞 글자도 ゝ나 々일 경우는 그 앞 글자로 바꿔 처리한다.
  • 한자의 경우 해당 한자의 일본어 독음을 따른다.
  • 모든 요소가 동일할 경우 히라가나 < 가타카나 순서로 정렬한다.

이외로, 일본어 직음(直音, 기본 음절)만 사용해 지은 이로하 노래의 순서를 따라 배열하기도 한다. 이를 이로하 순서(いろは順)라고 하며, 실생활에서 오십음순 못지않게 많이 사용한다. 대표적으로 일본 법률의 조문의 이나 음 이름[5]이 있으며, 일본 해군과 해상자위대에서도 사용하였다. 사실 근대 이전까지만 해도 이로하 순서가 오십음순보다 훨씬 많이 쓰였다.

7. 그리스 문자

기본적으로 Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω 순으로 정렬된다. 각 글자 사이에 L1 difference가 있으며, diacritic이 붙은 문자와 diacritic이 붙지 않은 문자 사이에는 L2 difference가 있다.

8. 아랍 문자

ا ﺏ پ ﺕ ﺙ ﺝ چ ح خ د ذ ر ز ژ ﺱ ش ص ض ط ظ ع غ ف ڤ ق ك ک گ ل م ن ه و ي순으로 정렬된다. 각 문자 사이에는 L1 difference가 존재한다.

단, 기본적으로 좌서 문자이기 때문에 맨 오른쪽의 글자를 기준으로 정렬된다.

9. 주음부호

ㄅ ㄆ ㄇ ㄈ ㄉ ㄊ ㄋ ㄌ ㄍ ㄎ ㄏ ㄐ ㄑ ㄒ ㄓ ㄔ ㄕ ㄖ ㄗ ㄘ ㄙ ㄧ ㄨ ㄩ ㄚ ㄛ ㄜ ㄝ ㄞ ㄟ ㄠ ㄡ ㄢ ㄣ ㄤ ㄥ ㄦ (운모 단독) ㆬ ㄯ ㆭ 순으로 정렬된다. 각 문자 사이에 L1 difference가 존재한다. 표준 중국어 (중화민국 국어) 표기에 쓰이지 않는 글자에 취소선을 그었다.

10. 키릴 문자

기본적으로 А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я 순으로 정렬된다. 각 글자 사이에 L1 difference가 있으나, 언어마다 순서 차이가 있다. diacritic이 붙은 문자와 diacritic이 붙지 않은 문자 사이에는 L2 difference가 있다.

11. 히브리 문자

א בּ ב ג ד ה ו ז ח ט י כּ כ ך ל מ ם נ ן ס ע פּ פ ף צ ץ ק ר ש תּ ת 순으로 정렬된다. 각 문자 사이에는 L1 difference가 존재한다.

단, 기본적으로 좌서 문자이기 때문에 맨 오른쪽의 글자를 기준으로 정렬된다.

12. 단순 유니코드 순 정렬

단순히 유니코드 (코드 값) 순으로 정렬하는 것은 그 어떤 언어에도 적합할 수 없다.

라틴 문자의 경우 소문자 a(U+0061)가 대문자 Z(U+005A)보다 뒤에 오게 되며, Ñ(U+00D1)는 소문자 z(U+007A)보다 뒤에 오게 된다.

한글의 경우 (U+3134) 같은 낱자나 'ᄒᆞᆫ'(U+1112 U+119E U+11AB)과 같이 조합형 낱자로 이루어진 옛한글이 언제나 완성형 한글 글자 마디 '가'(U+AC00)보다 앞에 오게 된다.

한자의 경우, 위에서도 언급했듯 유니코드에는 강희자전 부수 순으로 정렬되어 있으며, 특정 언어의 독음 순으로 배당돼 있지 않다. 일본어에서 주로 쓰이는 々, ゝ, 장음 부호(ー) 등은 여러 영역에 흩어져 있다.

그래서 일본어 정렬 시 별도 처리를 하지 않고 단순 유니코드 순으로 정렬하면 문장부호 ( w제외) < 々 < 히라가나 < ゝ < ゠ (이중 줄표) < 가타카나 < < 장음 부호(ー) < 한자(강희자전 순) 순서로 정렬된다. 회원 가입 시 히라가나를 따로 받는 것도 이것 때문이며, 이런 꼼수를 쓰지 않는 경우 인명 정렬 시 あ가 아닌 (한 일)로 시작하는 이름이 맨 앞에 온다. 즉 가나 순으로 비교적 뒷자리인 히토츠이 하지메(一一 一)가 강희자전 순으로 가장 앞에 온다는 말이 된다.

즉 어떤 문자든 올바른 정렬을 위해 별도 처리가 필요하며, 코드 값에만 의존해 제대로 정렬이 불가능하다.


[1] 굳이 한글에 한정시키지 않는다면 일단 한국에서는 숫자->특수문자->한글->로마자 순으로 정렬하는 게 기본이다.[2] 주로 근래에 들어온 프랑스어독일어 등의 외래어에 쓰는 경우가 많다. 그렇지만 영어 고유어나 오래 전에 유입돼 영어로 완전히 흡수된 외래어 중에서도 diacritics를 덧붙이는 경우가 드물긴 해도 없지는 않다. 예를 들면 음절의 명확한 구분을 위해 ¨를 덧붙이는 경우가 간혹 있다. cooperation을 coöperation으로 쓰는 경우가 한 예인데, 이건 이 단어의 oo 부분이 하나의 모음을 나타내는 게 아니라 co-operation 식으로 나뉜다는 것을 강조하기 위해 o 위에 ¨를 덧붙인 것이다(참고로 이와 유사한 용법이 스페인어 등에서 쓰이고 있다). 또 다른 예로는 시어(詩語) 등에서 -ed를 -èd로 쓰는 경우가 있다. loved를 lovèd로 쓴다든가 blessed('블레스트'가 아니라 '블레시드'로 읽을 때로 한정)를 blessèd로 쓴다든가 등등. 물론 이런 용법은 근래에 거의 안 쓰는 추세이다.[3] 당연하겠지만 이 방식은 주음부호에서도 적용할 수 있다.[4] 이 방식은 미국의 중국학자 Victor H. Mair가 1986년에 제안한 방식이며, 이 방식을 채택한 사전 ABC Chinese–English Dictionary는 또 다른 미국의 중국학자 John DeFrancis의 주도로 1996년에 처음 나왔다. Mair도 DeFrancis도 현대 중국어가 다음절 언어라는 점을 강조한 바 있으며, 그에 따라 한자와 상관없이 모든 단어들이 병음 순서대로 나열된 사전이 필요하다고 보았다.[5] 다장조는 하장조(ハ長調), 라단조는 니단조(ニ短調)가 된다. 즉 도레미파솔라시도=다라마바사가나다=하니호헤토이로하.