리스트 비교 도구 (공통 행·차이 행 추출)

두 개의 텍스트 리스트(한 줄에 하나씩)를 비교하여 집합 연산으로 양쪽 모두에 있는 행, A에만 있는 행, B에만 있는 행을 자동으로 추출합니다. 메일 목록 대조나 재고 목록 중복 확인에 유용합니다. 모든 처리는 브라우저 내에서 완료되며 입력 내용은 서버로 전송되지 않습니다.

  • 메일링 리스트와 수신 거부 목록을 비교하면 다음 발송에서 제외해야 할 주소를 한 번에 추출할 수 있습니다.
  • 재고 목록과 발주 목록을 비교하여 아직 발주하지 않은 상품만 빠르게 찾아내는 용도로도 사용할 수 있습니다.
  • 각 행의 앞뒤 공백은 자동으로 제거된 후 비교되므로 복사·붙여넣기 과정에서 섞인 여분의 공백을 신경 쓸 필요가 없습니다.
  • 같은 행이 여러 번 등장하더라도 결과에는 중복이 제거된 고유한 행만 한 번씩 표시되어 지저분한 목록을 정리하는 데도 도움이 됩니다.
  • "대소문자 구분" 체크를 해제하면 Example.com과 example.com처럼 표기가 다른 경우도 같은 행으로 처리할 수 있습니다.

자주 묻는 질문

Diff 비교 도구는 두 텍스트의 순서를 유지한 채 한 줄씩 대조하여 추가되거나 삭제된 행을 검출합니다. 본 도구는 순서를 무시하고 두 목록을 집합으로 취급하여 공통 행과 각 쪽에만 있는 행을 추출한다는 점이 다릅니다. 같은 내용의 행이 다른 위치에 있는 경우, Diff 비교 도구에서는 차이로 검출되지만 본 도구에서는 공통 행으로 취급됩니다.

같은 내용의 행이 여러 번 입력되어도 비교 결과에는 중복이 제거된 고유한 행으로 한 번만 표시됩니다. 등장 횟수를 포함한 비교는 지원하지 않습니다.

기본적으로는 대소문자를 구분하여 비교합니다. "대소문자 구분" 체크를 해제하면 Example과 example처럼 표기가 다른 경우도 같은 행으로 처리할 수 있습니다.

각 행의 앞뒤 공백은 자동으로 제거되며, 그 결과 내용이 비어버린 행(빈 줄)은 비교 대상에서 제외됩니다. 빈 줄이 섞여 있는지 신경 쓰지 않고 목록을 붙여넣을 수 있습니다.

아니요. 비교 처리는 모두 브라우저 내의 자바스크립트에서 완료되며 입력한 목록 내용이 서버로 전송되는 일은 없습니다. 이메일 주소 등 개인정보가 포함된 목록도 안심하고 사용하실 수 있습니다.
ツールくん

여담 ― "집합 연산"으로 목록을 비교한다는 발상

두 목록의 "차이"를 구하는 방법은 하나가 아닙니다. 텍스트 차이(Diff) 도구처럼 행 단위로 작동하는 diff 알고리즘은 행의 순서를 유지한 채 대응 관계를 찾기 때문에 소스 코드나 설정 파일의 변경 이력을 추적하는 데 적합합니다. 반면 이메일 주소나 재고 코드처럼 애초에 순서에 의미가 없는 목록을 비교할 때는 수학의 집합 연산(교집합·차집합)으로 생각하는 편이 훨씬 직관적입니다. 본 도구는 후자의 방식을 채택하고 있습니다.

집합 연산에서 "교집합(intersection)"은 두 집합 모두에 공통으로 포함된 원소를, "차집합(difference)"은 한쪽 집합에만 포함된 원소를 가리킵니다. 본 도구의 "공통 행"은 교집합(A∩B)에, "A에만 있는 행"과 "B에만 있는 행"은 각각 차집합(A−B, B−A)에 해당합니다. 수학적으로는 단순한 연산이지만 실무에서는 고객 목록 정리, 발송 대상 좁히기 등 다양한 상황에서 활용됩니다.

구현상의 특징으로, 본 도구는 행을 비교할 때 자바스크립트의 Map 객체를 사용하여 정규화한 키(대소문자를 구분하는 경우 그대로, 구분하지 않는 경우 소문자로 변환한 문자열)별로 처음 등장한 표기를 기록합니다. 이를 통해 수천 행 규모의 목록도 빠르게 비교할 수 있으며, 출력되는 행은 원래의 표기(대소문자 포함)를 그대로 유지할 수 있습니다.