중복 줄 제거 · 정렬 도구
겹치는 줄을 지우고 가나다·길이·역순으로 정렬합니다
입력한 목록은 브라우저 밖으로 나가지 않습니다.
결과0줄0줄
‘중복’은 생각보다 정의가 여럿이다
여러 줄에서 겹치는 것을 지우는 일은 단순해 보입니다. 그런데 막상 실제 데이터를 넣어 보면 ‘무엇을 같은 줄로 볼 것인가’부터 정해야 한다는 걸 알게 됩니다. 아래 네 줄은 ‘같은 값’일까요?
사과
사과␣ ← 끝에 공백
사과 ← 앞에 전각 공백
Apple
apple눈으로는 위 세 줄이 같은 “사과”이고 “Apple/apple”도 같은 단어입니다. 하지만 컴퓨터에게 그냥 “똑같은 줄”을 지우라고 하면 글자 하나까지 완전히 일치하는 것만 지웁니다. 공백 하나, 대문자 하나가 다르면 다른 줄입니다. 그래서 이 도구는 두 개의 옵션으로 ‘같음’의 기준을 직접 정하게 합니다.
- 앞뒤 공백 제거— 엑셀·구글시트에서 복사하면 셀 끝에 눈에 안 보이는 공백이 자주 딸려 옵니다. 이걸 켜야 “사과”와 “사과 ”가 같은 줄로 묶입니다. 기본으로 켜 두었습니다.
- 대소문자 무시— 이메일 주소나 아이디처럼 대소문자를 구분하지 않는 값에서 켭니다. “User@site.com”과 “user@site.com”을 하나로 봅니다.
중요한 건 이 기준이 비교에만 쓰인다는 점입니다. 대소문자를 무시해서 중복을 지워도, 남는 줄은 처음 나온 원본 그대로입니다 — 표기가 마음대로 바뀌지 않습니다.
순서를 지키는 제거 vs 정렬
중복을 지울 때 이 도구는 처음 나온 줄을 남기고 뒤의 것을 지웁니다. 그래서 정렬을 켜지 않으면 원래 순서가 그대로 보존됩니다. 이건 명단처럼 순서에 의미가 있는 목록에서 중요합니다 — 접수 순, 우선순위 순으로 정렬된 목록을 알파벳순으로 흐트러뜨리지 않습니다.
정렬이 필요하면 네 가지 중에 고를 수 있습니다: 가나다 오름/내림차순, 그리고 글자 수 기준 오름/내림차순. 정렬은 중복 제거 뒤에적용되므로, “중복을 지운 뒤 가나다순으로” 같은 흔한 작업이 한 번에 됩니다.
왜 ‘가나다순’을 코드포인트로 하는가
정렬 방식에는 두 갈래가 있습니다. 하나는 운영체제의 언어 설정을 따르는 로케일 정렬, 다른 하나는 글자마다 매겨진 유니코드 코드포인트 순서입니다. 이 도구는 후자를 씁니다.
이유는 두 가지입니다. 첫째, 한글 음절은 유니코드에 이미 가나다 순으로 배열돼 있습니다(U+AC00 ‘가’부터 시작해 초성 ㄱ→ㅎ, 그 안에서 중성, 다시 종성 순). 그래서 순수 한글은 코드포인트로 정렬해도 정확히 가나다순이 됩니다. 둘째, 코드포인트 정렬은 어느 컴퓨터에서 돌려도 결과가 같습니다. 로케일 정렬은 브라우저·운영체제의 언어 데이터에 따라 특수문자나 대소문자의 위치가 미묘하게 달라질 수 있는데, 정렬 결과가 기기마다 다르면 목록을 신뢰하기 어렵습니다.
대신 숫자·영문·한글이 섞이면 숫자 → 영문 대문자 → 영문 소문자 → 한글 순으로 놓입니다(각자의 코드포인트 구간이 그 순서이기 때문). 엑셀의 정렬과 다르게 보일 수 있는데, 어느 쪽이 틀린 게 아니라 기준이 다른 것입니다.
스프레드시트 대신 여기서 하는 이유
중복 제거는 엑셀에도 있는 기능입니다. 그런데 이메일 목록이나 회원 명단처럼 민감한 데이터일 때, 온라인 스프레드시트에 붙여넣는 것은 그 데이터를 남의 서버로 올리는 일입니다. 이 도구는 모든 처리를 브라우저 안에서 하므로 목록이 네트워크로 나가지 않습니다. 붙여넣고, 정리하고, 복사해서, 탭을 닫으면 끝입니다.
정리하면
- ‘같은 줄’의 기준을 먼저 정하세요. 앞뒤 공백과 대소문자를 무시할지에 따라 무엇이 중복인지가 달라집니다.
- 제거는 순서를 지키고, 정렬은 그 뒤에 적용됩니다. 순서가 중요한 명단은 정렬을 끄고, 사전순이 필요하면 켜세요.
- 정렬은 코드포인트 기준이라 어디서든 같은 결과입니다. 한글은 가나다순과 일치하고, 혼합 목록은 숫자→영문→한글 순으로 놓입니다.
자주 묻는 질문
- 중복을 지우면 어느 줄이 남나요?
- 처음 나온 줄이 남고 뒤의 중복이 지워집니다. 그래서 원래 순서가 보존됩니다(정렬을 켜지 않는 한). 예를 들어 'b, a, b, c'는 'b, a, c'가 됩니다. 명단처럼 순서에 의미가 있는 목록에서 중요합니다.
- '사과'와 '사과 '(끝에 공백)가 다른 줄로 처리됩니다.
- 기본적으로 '앞뒤 공백 제거'가 켜져 있어 두 줄을 같게 봅니다. 만약 공백까지 정확히 구분하고 싶다면 이 옵션을 끄세요. 엑셀에서 복사한 목록에는 눈에 안 보이는 뒤쪽 공백이 자주 붙어 있어서, 이 옵션이 없으면 같은 값이 중복으로 안 걸립니다.
- 대소문자가 다른 이메일 주소를 같은 것으로 묶고 싶어요.
- '대소문자 무시' 옵션을 켜세요. 'User@site.com'과 'user@site.com'을 같은 줄로 보고 하나만 남깁니다. 남는 줄은 처음 나온 원본 그대로라 표기가 임의로 바뀌지 않습니다.
- 한글이 가나다순으로 정렬되나요?
- 네. 정렬은 유니코드 코드포인트 순서로 하는데, 한글 음절은 유니코드에 이미 가나다(초성 ㄱ→ㅎ, 중성, 종성) 순으로 배열돼 있어서 코드포인트 정렬이 곧 가나다 정렬이 됩니다. 숫자·영문이 섞이면 숫자 → 영문 대문자 → 영문 소문자 → 한글 순으로 놓입니다.
- 정렬 결과가 엑셀이나 다른 도구와 다를 때가 있어요.
- 이 도구는 일부러 운영체제나 브라우저의 언어 설정에 기대지 않고 코드포인트 순서로 정렬합니다. 그래서 어느 컴퓨터에서 돌려도 항상 같은 결과가 나옵니다. 반면 엑셀은 언어별 정렬 규칙을 적용해서, 특수문자나 대소문자가 섞이면 결과가 미묘하게 다를 수 있습니다. 어느 쪽이 '맞다'기보다 기준이 다른 것입니다.
- 명단이 서버로 전송되나요?
- 아닙니다. 모든 처리는 브라우저 안에서 끝나고, 입력한 목록은 어디로도 전송되거나 저장되지 않습니다. 고객 이메일이나 회원 명단처럼 민감한 목록을 넣어도 안전합니다.