리스트 비교 도구 (공통 행·차이 행 추출)
두 개의 텍스트 리스트(한 줄에 하나씩)를 비교하여 집합 연산으로 양쪽 모두에 있는 행, A에만 있는 행, B에만 있는 행을 자동으로 추출합니다. 메일 목록 대조나 재고 목록 중복 확인에 유용합니다. 모든 처리는 브라우저 내에서 완료되며 입력 내용은 서버로 전송되지 않습니다.
팁
- 메일링 리스트와 수신 거부 목록을 비교하면 다음 발송에서 제외해야 할 주소를 한 번에 추출할 수 있습니다.
- 재고 목록과 발주 목록을 비교하여 아직 발주하지 않은 상품만 빠르게 찾아내는 용도로도 사용할 수 있습니다.
- 각 행의 앞뒤 공백은 자동으로 제거된 후 비교되므로 복사·붙여넣기 과정에서 섞인 여분의 공백을 신경 쓸 필요가 없습니다.
- 같은 행이 여러 번 등장하더라도 결과에는 중복이 제거된 고유한 행만 한 번씩 표시되어 지저분한 목록을 정리하는 데도 도움이 됩니다.
- "대소문자 구분" 체크를 해제하면 Example.com과 example.com처럼 표기가 다른 경우도 같은 행으로 처리할 수 있습니다.
자주 묻는 질문
여담 ― "집합 연산"으로 목록을 비교한다는 발상
두 목록의 "차이"를 구하는 방법은 하나가 아닙니다. 텍스트 차이(Diff) 도구처럼 행 단위로 작동하는 diff 알고리즘은 행의 순서를 유지한 채 대응 관계를 찾기 때문에 소스 코드나 설정 파일의 변경 이력을 추적하는 데 적합합니다. 반면 이메일 주소나 재고 코드처럼 애초에 순서에 의미가 없는 목록을 비교할 때는 수학의 집합 연산(교집합·차집합)으로 생각하는 편이 훨씬 직관적입니다. 본 도구는 후자의 방식을 채택하고 있습니다.
집합 연산에서 "교집합(intersection)"은 두 집합 모두에 공통으로 포함된 원소를, "차집합(difference)"은 한쪽 집합에만 포함된 원소를 가리킵니다. 본 도구의 "공통 행"은 교집합(A∩B)에, "A에만 있는 행"과 "B에만 있는 행"은 각각 차집합(A−B, B−A)에 해당합니다. 수학적으로는 단순한 연산이지만 실무에서는 고객 목록 정리, 발송 대상 좁히기 등 다양한 상황에서 활용됩니다.
구현상의 특징으로, 본 도구는 행을 비교할 때 자바스크립트의 Map 객체를 사용하여 정규화한 키(대소문자를 구분하는 경우 그대로, 구분하지 않는 경우 소문자로 변환한 문자열)별로 처음 등장한 표기를 기록합니다. 이를 통해 수천 행 규모의 목록도 빠르게 비교할 수 있으며, 출력되는 행은 원래의 표기(대소문자 포함)를 그대로 유지할 수 있습니다.