CSV 차이 비교
두 개의 CSV 파일을 비교하여 추가된 행, 삭제된 행, 변경된 셀을 한눈에 확인할 수 있습니다. 원하는 열을 행 식별 키로 지정해 행을 매칭하고 변경 전후 값을 나란히 표시하며, 열 구성이 다른 CSV끼리도 비교할 수 있습니다. 모든 처리는 브라우저 내에서 이루어집니다.
CSV 차이 비교란
CSV 차이 비교는 두 개의 CSV(또는 TSV) 데이터를 열 단위·행 단위로 대조하여 "추가된 행", "삭제된 행", "값이 바뀐 셀"을 자동으로 찾아내는 도구입니다. 텍스트 편집기의 줄 비교(Git의 diff 등)는 한 줄 전체의 추가·삭제만 판단할 수 있지만, 이 도구는 행을 식별 키(ID나 기본키에 해당하는 열)로 먼저 대응시킨 뒤 셀 단위까지 비교하기 때문에, 같은 행 안에서 "어느 열의 값만 바뀌었는지"까지 정확히 짚어낼 수 있습니다.
입력한 CSV는 브라우저 내 자바스크립트만으로 처리되며 서버로는 전혀 전송되지 않습니다. 회원 데이터나 매출 데이터처럼 외부에 유출하고 싶지 않은 정보가 포함된 CSV도 안심하고 비교할 수 있습니다. 열의 순서나 개수가 서로 다른 두 CSV라도 헤더 이름을 기준으로 자동으로 대응시켜 비교하는 것도 이 도구의 특징입니다.
CSV 차이 비교 사용법
- 비교 원본(A)과 비교 대상(B) CSV를 준비합니다 왼쪽 입력란에 변경 전 CSV, 오른쪽 입력란에 변경 후 CSV를 직접 붙여넣거나, "파일 선택"에서 CSV/TSV 파일을 업로드합니다.
- 구분자를 선택합니다 쉼표로 구분된 CSV인지 탭으로 구분된 TSV인지에 따라 "구분자"를 쉼표 또는 탭으로 설정합니다.
- 헤더 행 유무를 지정합니다 첫 줄이 열 이름을 나타내는 헤더라면 "첫 줄을 헤더로 처리"에 체크합니다. 헤더가 없는 경우 체크를 해제하면 col1, col2… 형태의 연번 열 이름이 자동으로 부여됩니다.
- 키 열을 선택합니다 행을 식별하는 열(ID나 기본키에 해당하는 열)을 드롭다운에서 선택합니다. 이 열의 값을 기준으로 A와 B의 행이 서로 대응됩니다.
- 차이 결과를 확인합니다 "삭제된 행", "추가된 행", "변경된 행"이 자동으로 목록에 표시됩니다. 변경된 행은 셀마다 변경 전·변경 후 값이 나란히 나열됩니다.
더 잘 활용하기 위한 팁
- 행 식별 키 열은 기본적으로 1열이 선택되지만, ID나 기본키에 해당하는 열이 있다면 그 열을 선택하는 것이 좋습니다. 행의 순서나 개수가 바뀌어도 올바르게 대응하는 행을 매칭할 수 있습니다.
- 두 CSV 모두 헤더 행이 없다면 "첫 줄을 헤더로 처리" 체크를 해제하세요. col1, col2… 와 같은 자동 생성된 열 이름으로 비교됩니다.
- "변경된 행" 섹션에서는 키가 일치하는 행끼리 열 단위로 값을 비교하여, 값이 다른 열만 "변경 전 → 변경 후" 형태로 나열합니다.
- TSV(탭 구분) 파일도 구분자를 "탭"으로 전환하기만 하면 그대로 비교할 수 있습니다.
- 파일을 업로드하는 대신 Excel이나 스프레드시트에서 복사한 범위를 그대로 붙여넣어도 동일하게 비교할 수 있습니다.
CSV 차이 비교 활용 사례
마스터 데이터 업데이트 전후 확인
상품 마스터나 고객 마스터를 CSV로 내보낸 뒤 업데이트 작업 전후 내용을 비교하면, 의도하지 않은 변경이 섞여 있지 않은지 확인할 수 있습니다.
시스템 이관 시 데이터 대사
기존 시스템과 신규 시스템에서 각각 출력한 CSV를 비교하여, 이관 과정에서 데이터가 누락되거나 중복되지 않았는지 확인하는 "데이터 대사" 작업에 사용할 수 있습니다.
배치 처리 결과 검증
일별·월별 배치 실행 전후로 테이블을 CSV로 출력해, 의도한 행만 정확히 추가·수정되었는지 검증하는 용도에 적합합니다.
스프레드시트 변경 이력 점검
Excel이나 스프레드시트에서 복사한 표를 붙여넣어 비교하면, 공동 편집 과정에서 누군가 변경한 부분을 빠르게 찾아낼 수 있습니다.
API·스크레이핑 결과의 차이 모니터링
API로 주기적으로 수집한 데이터를 CSV로 변환해 매일 비교하면, 가격이나 재고 수량 같은 특정 값이 언제 바뀌었는지 추적할 수 있습니다.
CSV 차이 비교 용어집
- 키 열
- 행을 고유하게 식별하기 위해 사용하는 열을 말합니다. ID나 기본키에 해당하는 열을 지정하면, 행의 순서가 바뀌어도 서로 대응하는 행끼리 정확하게 대조할 수 있습니다.
- 헤더 행
- CSV의 첫 줄에 위치하며 각 열의 이름을 나타내는 행입니다. "첫 줄을 헤더로 처리"를 활성화하면 이 행은 차이 비교 대상에서 제외되고 열 이름으로 취급됩니다.
- 구분자
- CSV에서 각 셀의 값을 구분하기 위해 사용하는 기호입니다. 표준은 쉼표이지만, 탭으로 구분된 TSV도 동일한 방식으로 비교할 수 있습니다.
- 합성 열 목록
- 비교 원본(A)과 비교 대상(B)의 헤더를 합쳐 만든 열 이름 목록입니다. A의 열 순서를 기준으로 B에만 있는 열을 뒤에 추가하여 만들어집니다. 한쪽에만 존재하는 열은 다른 쪽 값을 빈 문자열로 간주해 비교합니다.
- 변경 셀
- 같은 키를 가진 행끼리 열별로 값을 비교했을 때 값이 서로 달랐던 셀을 말합니다. 변경 전(A)과 변경 후(B)의 값이 나란히 표시됩니다.
- 변경 없음 행
- 비교 원본과 비교 대상 양쪽에 모두 존재하고, 모든 열의 값이 완전히 일치하는 행입니다. 차이 목록에는 표시되지 않고 건수만 요약에 나타납니다.
자주 묻는 질문
여담 ― 텍스트 diff만으로는 CSV 비교가 충분하지 않은 이유
두 CSV 파일의 차이를 확인하는 작업은 전통적으로 Excel에서 두 시트를 나란히 놓고 육안으로 비교하거나, Git 같은 도구로 줄 단위 텍스트 diff를 보는 방식이 일반적이었습니다. 하지만 CSV는 한 줄 안에 여러 값이 쉼표로 나열되는 구조이기 때문에, 줄 단위 diff로는 "그 줄이 바뀌었다"는 것만 알 수 있을 뿐 구체적으로 어느 열이 바뀌었는지는 한눈에 알 수 없습니다. 이 도구가 셀 단위로 변경 지점을 특정하는 것은 바로 이 약점을 보완하기 위해서입니다.
업무 시스템 세계에서는 데이터베이스 테이블을 CSV로 내보내 비교하는 "데이터 대사" 작업이 자주 발생합니다. 이관 전후 데이터가 완전히 일치하는지, 월간 배치 처리 결과가 예상대로인지 확인할 때는 대상 행 수가 수천에서 수만 건에 이르는 경우도 드물지 않습니다. 이런 규모에서는 키 열을 지정해 기계적으로 대조하는 방식이 필수가 됩니다.
Git과 같은 버전 관리 시스템의 diff 알고리즘(Myers diff 알고리즘 등)은 줄 단위의 추가·삭제를 감지하는 데는 뛰어나지만, CSV처럼 "같은 줄이라도 일부 열의 값만 바뀌는" 데이터에는 반드시 최적이라고 할 수 없습니다. 키로 행을 먼저 대응시킨 뒤 셀 단위로 비교하는 이 도구의 방식은 표 형식 데이터의 차이 검출에 특화된 접근법이라 할 수 있습니다.