중복 데이터 찾기와 대처법
CSV에서 중복 ID·중복 행이 왜 문제가 되는지, 어떻게 찾고 대처하는지 정리합니다.
중복이 문제가 되는 이유
CSV를 데이터베이스에 가져올 때 기본키나 유니크 키 열에 중복 값이 있으면 제약 위반 오류로 가져오기가 중단됩니다. 키로 두 CSV를 병합할 때 중복 키가 있으면 “어느 행이 맞는지”가 불명확해져, 오류가 발생하거나 잘못된 값이 올바른 값을 덮어씁니다. 가져오기나 병합 전에 중복을 찾아 해결하는 것이 이런 장애를 예방하는 가장 확실한 방법입니다.
중복이 생기는 원인
- 직접 데이터 입력 — 기존 항목 확인 없이 다른 사람이나 다른 시점에 같은 레코드를 두 번 입력
- 시스템 이전 — 두 시스템의 데이터를 중복 제거 없이 병합하면 각 출처의 ID가 겹침
- 파일 이어 붙이기 — 겹치는 기간이나 데이터셋의 두 내보내기를 이어 붙이면 양쪽에 있는 행이 중복됨
- 공백·보이지 않는 문자 — “U001”과 “U001 “은 다른 문자열이라 데이터베이스가 둘 다 허용해 화면에서 동일해 보이는 겉보기 중복이 생김
- 대소문자 구분 — “Alice@example.com”과 “alice@example.com”을 가져오기 도구가 별개로 처리하는 경우 같은 사용자를 두 행으로 취급
중복의 종류
- 완전 중복
- 행의 모든 필드가 동일합니다. 레코드가 두 번 입력되거나 가져와진 경우입니다. 한 행만 남기고 나머지를 삭제해도 안전합니다.
- 키는 같은데 내용이 다름
- 키 열(ID, 이메일, 코드)은 같지만 다른 필드가 다릅니다. 버전 관리 문제, 깨끗하게 적용되지 않은 데이터 업데이트, 또는 두 출처의 상충 항목일 수 있습니다. 어느 버전이 올바른지 판단해야 합니다.
- 겉보기 중복(공백·보이지 않는 문자 차이)
- 키 값이 동일해 보이지만 공백, 보이지 않는 문자 차이로 다릅니다. 거의 항상 오류이며 중복 감지 전에 단일 검사의 트림·보이지 않는 문자 제거로 정리해야 합니다.
- 허용되는 중복(비유일 키 테이블)
- 일부 테이블은 같은 키가 여러 번 나와도 됩니다 — 주문 항목, 거래 내역, 이벤트 히스토리. 이것은 오류가 아니므로 제거해서는 안 됩니다. 올바른 열을 확인하세요.
올바른 키 열 선택
키 열은 사용 목적에서 각 행을 고유하게 식별해야 하는 열입니다. 일반적인 선택:
- ID 열 — 사용자 ID, 상품 ID, 주문 ID: 명시적으로 유일하게 설계된 열
- 이메일 주소 — 사용자 데이터에서 이메일은 자연 유일 키로 자주 사용됨
- 상품 코드·SKU — 상품 카탈로그에서 유일해야 함
- 복합 키 — 유일성이 열 조합으로 정의되는 경우(예: 날짜 + 매장 ID). 복합 키는 합쳐서 하나의 열로 만든 뒤 검사하는 것이 편합니다.
어떤 열을 써야 할지 모르겠다면, 해당 테이블의 데이터베이스 기본키로 사용되는 열을 확인하세요.
단계별 중복 감지 방법
- 먼저 정제 — CSV 단일 검사를 실행하고 트림·보이지 않는 문자 제거를 먼저 적용합니다. 공백으로 인한 겉보기 중복이 이 단계에서 해결되어 중복 보고가 더 정확해집니다.
- 키 열 선택 — 단일 검사에서 유일해야 하는 열을 선택합니다.
- 중복 보고 검토 — 도구가 두 번 이상 나타나는 값과 각 발생 행 번호를 목록으로 표시합니다. 각 그룹을 검토해 중복이 생긴 이유를 파악합니다.
- 다운로드 후 편집 — CSV를 다운로드하고 업무 규칙에 따라 중복 행을 수동으로 제거하거나 병합합니다. 도구는 자동으로 행을 삭제하지 않습니다. 올바른 해결 방법이 상황에 따라 다르기 때문입니다.
- 재확인 — 편집된 파일을 단일 검사로 다시 실행해 중복이 없음을 확인합니다.
어느 행을 남길지 결정 방법
- 완전 중복 — 어느 한 행만 남기고 나머지를 삭제합니다.
- 키는 같은데 내용이 다름 — 타임스탬프 열이 있으면 최신 행을 남깁니다. 두 출처에서 온 경우 해당 레코드 유형에 대해 어느 출처가 정확한지 판단합니다.
- 판단 불가 — 자동 결정을 내리기 어렵다면 수동 검토를 위해 표시합니다. 잘못된 데이터를 가져오는 것보다 가져오기 오류가 낫습니다.
두 파일 비교에서 중복의 영향
두 파일 비교로 이전 버전과 새 버전 CSV를 비교할 때, 어느 쪽 파일에든 중복 키가 있으면 차이가 오해를 일으킵니다. 도구는 키 열 값으로 행을 정렬합니다. 같은 키가 여러 번 나타나면 정렬이 무너져 추가·삭제된 행이 “변경”으로 보이거나 실제로 변경된 행이 감지되지 않을 수 있습니다. 비교 전에 두 파일 모두에서 중복을 제거하세요.
예방 방법
- 중복 검사를 일회성 정리가 아닌 데이터 파이프라인의 가져오기 전 검증 단계로 추가하세요.
- 출처 시스템에서 내보낼 때
DISTINCT절 또는 동등한 옵션을 사용해 내보내기 단계에서 중복을 방지하세요. - 팀이 다루는 각 CSV 유형에 대해 어느 열이 유일 키인지 문서화하세요.
도구로 열기
- CSV 단일 검사 — 중복 ID 감지 및 목록
- 형식·기본 검사 — 가져오기 전 열 수·구조 확인
- 두 CSV 비교 — 중복 제거 후 버전 간 차이 확인
- CSV 정제 가이드 — 보이지 않는 문자·트림 포함 전체 정제 워크플로