문서·데이터 라이브러리Document & data libraries

csv-table-diff-by-key

표를 위치가 아니라 키 열로 비교합니다. 타입을 구분한 셀 변경과 행·열의 추가와 삭제를 알려 줍니다.

GitHub에서 보기View on GitHub

어떤 문제를 푸나The problem

내보낸 파일은 행과 열의 순서가 바뀌곤 합니다. 위치 기준 비교는 전부 달라졌다고 말하지만 키 기준 비교는 실제로 바뀐 것만 말합니다. 키의 타입도 구분해서(1과 '1'은 다른 행) 숫자가 텍스트로 바뀐 실수를 숨기지 않고, 열이 추가되거나 사라진 구조 변화도 셀 변경과 따로 보고합니다.

이런 분께 맞습니다Who it is for

두 시점의 데이터 내보내기를 비교하는 개발자.

무엇을 하나What it does

  • diffTables(before, after, keyColumn)이 변경 목록을 돌려줍니다.
  • 행·열·셀 단위로 added, removed, modified를 구분합니다.
  • 키가 비었거나 중복되면, 행 길이가 다르거나 스칼라가 아닌 셀이 있으면 오류입니다.

직접 돌려 본 출력Real output

저장소의 examples 폴더를 실행한 결과입니다.

$ node examples/quickstart.mjs
{"kind":"column","column":"price","type":"removed"}
{"kind":"column","column":"note","type":"added"}
{"kind":"cell","key":"a","column":"price","type":"removed","before":10}
{"kind":"cell","key":"a","column":"note","type":"added","after":"new"}
{"kind":"cell","key":"b","column":"price","type":"removed","before":20}
{"kind":"cell","key":"b","column":"stock","type":"modified","before":0,"after":3}
{"kind":"cell","key":"b","column":"note","type":"added","after":""}
--- keys are typed: 1 and "1" are different rows
row:removed cell:removed cell:removed row:added cell:added cell:added

알아둘 한계Limits

  • 이미 파싱된 배열을 받습니다. CSV나 XLSX 파싱, 수식 계산, 서식 비교는 하지 않습니다.

받아서 쓰기Get it

# 저장소를 받습니다
git clone https://github.com/Kein-chronicle/csv-table-diff-by-key.git

# Claude Code 스킬로 쓰려면 이 폴더 이름으로 받습니다
git clone https://github.com/Kein-chronicle/csv-table-diff-by-key.git ~/.claude/skills/keyed-table-diff

정보Info

분류Category
문서·데이터 라이브러리Document & data libraries
형태Type
라이브러리Library
라이선스License
MIT
필요한 것Requires
Node.js 22 이상
저장소Repository
csv-table-diff-by-key
토픽Topics
diff table csv spreadsheet data-comparison javascript esm zero-dependencies

2026-10-18 기준: 저장소의 테스트를 로컬에서 실행해 통과했고, 예제 출력은 저장소의 examples 폴더를 실제로 실행한 결과입니다.

공유하기Share

문자Message 네이버 블로그Naver Blog X Facebook