본문으로 건너뛰기

중복 제거 도구

텍스트에서 중복된 라인을 제거하고 유니크한 라인만 남기는 무료 온라인 도구입니다.

⚙️ 옵션

📝 입력 텍스트

📊 통계

전체 라인0
유니크 라인0
제거된 라인0

✨ 결과 (유니크 라인)

중복된 라인을 제거합니다. "대소문자 구분"으로 대소문자를 구별하고, "결과 정렬"로 알파벳순으로 정렬하세요.

주요 기능

  • 중복 라인 제거: 동일한 내용의 라인을 자동으로 감지하고 제거
  • 대소문자 구분: 대소문자를 구분할지 선택 가능
  • 정렬 옵션: 결과를 알파벳순으로 정렬 가능
  • 실시간 통계: 전체 라인, 유니크 라인, 제거된 라인 수 표시
  • 순서 유지: 중복을 제거하면서 원본 순서 유지 (정렬 미사용 시)

사용 방법

기본 사용

  1. 입력 영역에 텍스트를 입력합니다 (한 줄에 하나씩)
  2. 중복이 자동으로 제거되어 결과가 표시됩니다
  3. "복사" 버튼을 클릭하여 결과를 클립보드에 복사합니다

옵션 설정

  • 대소문자 구분: 체크하면 "Apple"과 "apple"을 다른 것으로 취급
  • 정렬 출력: 체크하면 결과를 알파벳순으로 정렬

사용 사례

1. 이메일 리스트 정리

입력:
user1@example.com
user2@example.com
user1@example.com
user3@example.com

출력:
user1@example.com
user2@example.com
user3@example.com

2. 키워드 목록 정리

마케팅이나 SEO 작업 시 중복된 키워드를 제거할 때 유용합니다.

입력:
react
javascript
react
vue
javascript
angular

출력:
react
javascript
vue
angular

3. 파일 경로 정리

로그 파일이나 스크립트에서 중복된 경로를 제거할 때 사용합니다.

입력:
/home/user/docs
/home/user/downloads
/home/user/docs
/home/user/pictures

출력:
/home/user/docs
/home/user/downloads
/home/user/pictures

4. 데이터 정리

CSV 파일이나 데이터베이스에서 중복 항목을 제거할 때 사용합니다.

옵션 상세 설명

대소문자 구분 (Case Sensitive)

체크 해제 시 (기본값)

대소문자를 무시하고 중복을 판단합니다.

입력:
Apple
APPLE
apple
Banana

출력:
Apple
Banana

체크 시

대소문자를 구분하여 중복을 판단합니다.

입력:
Apple
APPLE
apple
Banana

출력:
Apple
APPLE
apple
Banana

정렬 출력 (Sort Output)

체크 해제 시 (기본값)

원본 순서를 유지합니다 (첫 번째 등장 순서).

입력:
Zebra
Apple
Banana
Apple

출력:
Zebra
Apple
Banana

체크 시

결과를 알파벳순으로 정렬합니다.

입력:
Zebra
Apple
Banana
Apple

출력:
Apple
Banana
Zebra

통계 정보

도구는 다음 세 가지 통계를 실시간으로 표시합니다:

  • 전체 라인 (Total Lines): 입력된 총 라인 수
  • 유니크 라인 (Unique Lines): 중복이 제거된 후 남은 라인 수
  • 제거된 라인 (Removed Lines): 제거된 중복 라인 수

실용적인 팁

1. CSV 파일 처리

CSV 파일의 특정 열에서 중복을 제거할 때:

  1. 엑셀이나 스프레드시트에서 해당 열을 복사
  2. 이 도구에 붙여넣기
  3. 중복 제거 후 다시 붙여넣기

2. 로그 분석

서버 로그에서 유니크한 IP 주소나 사용자를 찾을 때 유용합니다.

3. 코드 정리

Import 문이나 종속성 목록에서 중복을 제거할 때 사용할 수 있습니다.

4. 대량 데이터 처리

수천 개의 라인도 빠르게 처리할 수 있습니다.

알고리즘 설명

이 도구는 JavaScript의 Set 자료구조를 사용하여 효율적으로 중복을 제거합니다:

const seen = new Set();
lines.forEach((line) => {
const key = caseSensitive ? line : line.toLowerCase();
if (!seen.has(key)) {
seen.add(key);
uniqueLines.push(line);
}
});

시간 복잡도: O(n) - 매우 효율적입니다!

자주 묻는 질문

Q: 빈 줄은 어떻게 처리되나요?

빈 줄도 일반 라인과 동일하게 처리됩니다. 여러 개의 빈 줄이 있으면 하나만 남습니다.

Q: 앞뒤 공백은 중복 판단에 영향을 주나요?

네. "Apple"과 " Apple "(앞에 공백)은 다른 것으로 취급됩니다. 공백을 제거하려면 공백 제거 도구를 먼저 사용하세요.

Q: 최대 몇 개의 라인을 처리할 수 있나요?

이론적으로는 제한이 없지만, 브라우저 메모리에 따라 다릅니다. 일반적으로 수만 개의 라인도 문제없이 처리됩니다.

Q: 정렬 옵션은 어떤 방식으로 작동하나요?

JavaScript의 localeCompare를 사용하여 자연스러운 알파벳 순서로 정렬됩니다. 한글도 가나다순으로 정렬됩니다.

관련 도구

성능

  • 처리 속도: 1만 라인을 1초 이내에 처리
  • 메모리 효율: Set 자료구조로 최적화
  • 실시간 처리: 입력 즉시 결과 표시

개인정보 보호

이 도구는 완전히 클라이언트 측에서 작동합니다. 입력한 데이터는 서버로 전송되지 않으며, 브라우저에서만 처리됩니다.