텍스트 줄 정렬 도구 — 오름차순·내림차순·중복 제거
텍스트 줄을 알파벳순 또는 역순으로 정렬합니다. 대소문자 구분 없는 비교, 중복 줄 제거, 빈 줄 제거, 앞뒤 공백 다듬기를 지원합니다. 모든 처리는 브라우저에서 이루어지며 데이터는 서버로 전송되지 않습니다.
작동 방식
텍스트 정렬의 작동 원리
정렬은 텍스트를 개별 줄로 나누고 사전순(렉시코그래픽 순서)으로 배열한 후 다시 합칩니다. 사전순이란 사전에서 사용하는 것과 같은 원리로, 문자를 왼쪽에서 오른쪽으로 Unicode 코드 포인트에 따라 한 글자씩 비교합니다.
기본적으로 대소문자를 구분하지 않는 비교를 사용하므로 'apple', 'Apple', 'APPLE'은 정렬 시 동일하게 처리됩니다. 대문자가 소문자 앞에 와야 하는 ASCII 순서(예: 'Z'가 'a'보다 앞)가 필요하다면 대소문자 구분 모드를 활성화하세요.
주요 활용 사례
이름 목록, 태그 클라우드, CSV 열 값을 알파벳순으로 정렬하는 것이 가장 일반적인 용도입니다. 개발자들은 import 문이나 설정 키를 정렬해 코드 리뷰와 diff 출력을 깔끔하게 만들 때 자주 사용합니다.
데이터 분석가는 줄 정렬을 통해 내보낸 목록의 중복 항목을 빠르게 찾거나 수동 비교 전에 두 데이터셋을 정렬합니다. 중복 제거 옵션을 사용하면 수천 개의 항목이 담긴 목록을 클릭 한 번으로 고유 값만 남길 수 있습니다.
정렬 알고리즘의 내부 동작
최신 JavaScript 엔진은 Array.prototype.sort 메서드에 병합 정렬과 삽입 정렬을 결합한 TimSort의 최적화 변형을 사용합니다. TimSort는 안정적인 정렬로, 동일하게 비교되는 줄은 원래의 상대적 순서를 유지합니다. 중복 제거된 목록을 정렬할 때 일관된 동작이 필요할 때 유용합니다.
일반적인 텍스트 목록이라면 수십만 줄도 브라우저에서 1밀리초 이내에 처리됩니다. 프랑스어나 독일어의 악센트 문자처럼 로케일을 고려한 정렬이 필요하다면 자체 코드에서 Intl.Collator 사용을 고려하세요. 이 도구는 최대 속도를 위해 단순 Unicode 코드 포인트 비교를 사용합니다.
자주 묻는 질문
›정렬이 자동으로 실행되나요?
네. 입력 내용이나 옵션을 변경할 때마다 결과가 실시간으로 업데이트됩니다. 제출 버튼이 없습니다.
›기본적으로 대소문자를 구분하나요?
아니요. 기본적으로 대소문자를 구분하지 않으므로 'Apple'과 'apple'은 함께 정렬됩니다. '대소문자 구분' 체크박스를 활성화하면 원시 Unicode 코드 포인트 순서가 됩니다.
›'줄'은 어떻게 판단하나요?
각 개행 문자(\n)가 줄의 끝을 나타냅니다. 스프레드시트나 Windows(\r\n 줄 바꿈)에서 붙여넣은 텍스트도 올바르게 처리하여 논리적 줄 단위로 정렬합니다.
›숫자도 정렬할 수 있나요?
이 도구는 숫자순이 아닌 사전순으로 정렬하므로 '10'이 '1' < '9' 원칙에 따라 '9'보다 앞에 옵니다. 숫자 정렬이 필요하면 붙여넣기 전에 앞에 0을 채워주세요(예: '09' vs '10').
›'중복 제거'는 정확히 어떻게 동작하나요?
각 고유 줄의 첫 번째 항목을 유지하고 이후의 동일한 줄을 제거합니다. 대소문자 설정을 따르므로 대소문자 구분 없음 모드에서는 'Apple'과 'apple'을 같은 줄로 처리합니다.
›내 데이터가 브라우저를 벗어나나요?
아니요. 모든 처리는 JavaScript로 로컬에서 이루어집니다. 어떤 서버에도 업로드되지 않습니다.
›줄 수 제한이 있나요?
이 도구가 강제하는 줄 수 제한은 없습니다. 성능은 장치에 따라 다르지만 최신 브라우저는 수십만 줄도 눈에 띄는 지연 없이 처리합니다.
›CSV 열을 정렬하려면 어떻게 하나요?
스프레드시트 앱에서 열 값을 복사해 입력 영역에 붙여넣으면 한 줄에 하나씩 붙여집니다. 옵션을 설정하고 정렬한 후 결과를 복사해 원본에 붙여넣으세요. 다른 열은 수동 또는 스프레드시트 수식으로 다시 연결합니다.
관련 도구
최종 업데이트: