블로그 목록으로
텍스트 편집
2026년 5월 16일

가나다순 정렬의 기준 - 국어사전과 컴퓨터 정렬의 차이

국어사전의 가나다순 정렬 기준과 컴퓨터 유니코드 정렬이 다른 이유, 그리고 한국어 데이터를 올바르게 정렬하는 방법을 설명합니다.

Q.컴퓨터에서 한국어를 가나다순으로 올바르게 정렬하려면 어떻게 해야 하나요?

컴퓨터 기본 정렬(유니코드 코드포인트 순서)은 대부분의 경우 가나다순과 일치하지만, 대소문자 혼재, 특수문자 포함, 한자 혼용 시 예상과 다를 수 있습니다. Python에서는 `sorted(list, key=lambda x: x)` 기본 정렬이 유니코드 순서로 동작하며, 국어사전식 정렬이 필요하면 PyICU 또는 locale 모듈을 사용합니다.

가나다순 정렬한국어 정렬 기준유니코드 한글 정렬

엑셀에서 한국어 이름 목록을 가나다순으로 정렬했더니 "강민준"이 "가영수"보다 앞에 나왔다. 틀린 게 아닐까 의심스럽다. 실은 정렬 기준의 차이에서 비롯된 결과다.

핵심 답변

컴퓨터 기본 정렬(유니코드 코드포인트 순서)은 대부분의 경우 가나다순과 일치하지만, 대소문자 혼재, 특수문자 포함, 한자 혼용 시 예상과 다를 수 있습니다. Python에서는 sorted(list, key=lambda x: x) 기본 정렬이 유니코드 순서로 동작하며, 국어사전식 정렬이 필요하면 PyICU 또는 locale 모듈을 사용합니다.

국어사전식 가나다순의 기준

표준국어대사전(국립국어원)의 자모 배열 순서:

ㄱ ㄲ ㄴ ㄷ ㄸ ㄹ ㅁ ㅂ ㅃ ㅅ ㅆ ㅇ ㅈ ㅉ ㅊ ㅋ ㅌ ㅍ ㅎ

모음 순서:

ㅏ ㅐ ㅑ ㅒ ㅓ ㅔ ㅕ ㅖ ㅗ ㅘ ㅙ ㅚ ㅛ ㅜ ㅝ ㅞ ㅟ ㅠ ㅡ ㅢ ㅣ

유니코드와의 차이점

한글 완성형 유니코드(가=44032, 힣=55203)는 초성→중성→종성 순서로 배치되어 있어, 기본 코드포인트 정렬이 국어사전식 정렬과 일반적으로 일치한다. 그러나 다음 경우에 차이가 발생한다.

상황국어사전식유니코드 정렬
숫자+한글 혼재한글 먼저숫자 먼저 (ASCII)
대문자+한글가나다 기준 혼재영문 대문자 먼저
자모 분리 상태완성형과 구분자모 코드포인트 따로

올바른 정렬 방법

python
import locale

# 시스템 로케일을 한국어로 설정
locale.setlocale(locale.LC_ALL, 'ko_KR.UTF-8')

names = ["강민준", "가영수", "나나나", "각도기"]
sorted_names = sorted(names, key=locale.strxfrm)
print(sorted_names)  # ['가영수', '각도기', '강민준', '나나나']

더 정교한 유니코드 정렬이 필요하다면 icu 라이브러리의 Collator를 사용한다.

엑셀·구글 시트에서의 가나다 정렬

엑셀과 구글 시트는 기본적으로 한국어 로케일을 따라 가나다순으로 정렬한다. 단, 셀 값에 공백이 선행되거나 특수문자가 포함된 경우 예상과 다른 결과가 나올 수 있다. 정렬 전 TRIM 함수로 공백을 제거하는 것이 권장된다.

실전 적용 가이드

1단계: 정렬 목적 확인

사전식 정렬이 필요한지, 단순 유니코드 정렬로 충분한지 먼저 확인한다. 이름 목록, 지명 목록처럼 국어사전 기준이 필요한 데이터라면 로케일 정렬을 사용한다.

2단계: 데이터 정제

정렬 전 TRIM으로 앞뒤 공백을 제거하고, 전각·반각 문자가 혼재하지 않는지 확인한다. "가나다"(전각 공백)와 "가나다"(반각 공백)는 다른 값으로 처리된다.

3단계: 한자·영문 혼재 처리

데이터에 한자나 영문이 섞여 있다면 정렬 기준을 명확히 결정한다. 국어사전식 정렬에서 한자는 독음(읽는 소리) 기준으로 배치되나, 컴퓨터 정렬은 한자 유니코드 코드포인트 기준으로 배치한다.

4단계: 결과 검증

정렬 후 'ㄱ' → 'ㄴ' → 'ㄷ' → 'ㄹ' 순서가 유지되는지 샘플 항목 10개로 확인한다. "가"와 "까" 중 어느 쪽이 먼저 오는지 확인하면 정렬 방식을 빠르게 진단할 수 있다.

5단계: 정렬 로직 문서화

개발 프로젝트라면 어떤 정렬 방식을 사용했는지 주석이나 README에 기록한다. 나중에 유지보수하는 사람이 의도를 파악하는 데 큰 도움이 된다.

자주 묻는 질문

Q. "가"와 "까" 중 어느 쪽이 사전에서 먼저 나오나요?

A. 국립국어원 표준국어대사전에서는 "가"(ㄱ)가 "까"(ㄲ) 앞에 배치됩니다. 유니코드도 동일한 순서를 따릅니다. "가" 코드포인트(44032)가 "까" 코드포인트(44256)보다 작기 때문입니다.

Q. JavaScript에서 한국어 가나다 정렬을 하려면 어떻게 하나요?

A. Array.prototype.sort() 기본 동작은 유니코드 순서로 작동하여 한국어에서는 대체로 가나다순과 일치합니다. 더 정확한 로케일 정렬은 arr.sort((a, b) => a.localeCompare(b, 'ko'))를 사용합니다. 국제화 API인 Intl.Collator를 쓰면 성능이 더 좋습니다.

Q. 엑셀에서 가나다 정렬이 틀린 것 같은데 왜 그런가요?

A. 셀 앞에 공백이 있거나, 겉보기에는 같아 보여도 전각 문자와 반각 문자가 섞여 있을 가능성이 높습니다. 정렬 전 해당 열에 TRIM 함수를 적용하고, 필요하면 ASC 함수로 전각을 반각으로 통일한 뒤 정렬하세요.

마무리

이 글에서 정리한 기준을 실제 작업에 적용할 때는 [텍스터브 글자수 세기](/tools/char-counter/) 도구로 분량을 직접 확인하면서 진행하면 더 정확하게 맞출 수 있다.

텍스트 도구 사용하기

바로 가기 →

관련 글

추가 참고 자료

다른 글 보기