첫 번째 문서 붙여넣거나 .json 파일을 놓으세요
두 번째 문서 확인하고 싶은 쪽
매달 하는 일인가요? TableDI 2에서 한 번 하고 작업으로 저장하면, 다음 달에는 다시 실행만 하면 됩니다. TableDI 2 무료 다운로드
업로드하지 않습니다. 파일은 이 탭의 JavaScript가 읽을 뿐 컴퓨터 밖으로 나가지 않습니다 — 어떤 서버도 보지 못하며, 탭을 닫으면 사라집니다.
JSON 두 개를 비교하는 방법
- 두 문서 넣기. 각 상자에 붙여넣거나 .json 파일을 끌어다 놓습니다. 해석은 이 탭 안에서만 일어납니다.
- 경로별 차이 읽기. 한 줄이 차이 하나입니다. 위치(경로), 추가·삭제·변경 여부, 양쪽 값이 나옵니다.
- 형식 차이는 신경 쓰지 않기. 키 순서와 들여쓰기만 다르면 줄이 하나도 생기지 않습니다.
- 목록 가져가기. 「differences.csv」로 내려받거나 복사해서 이슈나 리뷰에 붙여넣습니다.
키 순서와 들여쓰기는 차이가 아닙니다
{"b":1,"a":2}와 {"a":2,"b":1}는 같은 객체입니다. JSON 라이브러리는 다시 저장할 때
키 순서를 마음대로 바꿔도 되고, 실제로 많이들 바꿉니다. 그래서 같은 레코드를 두 번 내보낸 파일을 줄 단위
텍스트 비교에 넣으면 화면 전체가 빨갛게 나오곤 합니다.
이 페이지는 양쪽을 먼저 해석하고 해석된 값을 비교합니다. 키 순서, 들여쓰기, 파일 끝 줄바꿈은 결과에 아무 줄도 만들지 않습니다. 남는 것은 그 JSON을 읽는 프로그램의 동작을 실제로 바꾸는 차이뿐입니다.
\uXXXX로 저장된 한글과 그냥 한글은 같은 값입니다
서버마다 JSON에 한글을 쓰는 방식이 다릅니다. 어떤 쪽은 "가나상사"로 그대로 쓰고, 어떤 쪽은
"\uAC00\uB098\uC0C1\uC0AC"처럼 이스케이프해서 씁니다. 텍스트 비교 도구에서는 이 두 파일이
완전히 다른 문서로 보이지만, 해석하면 같은 문자열입니다.
여기서는 해석한 뒤에 비교하므로 이스케이프 방식만 다른 값은 차이로 나오지 않습니다. 개발 서버와 운영 서버의 응답을 견줄 때 가장 먼저 걸러지는 잡음이 바로 이것입니다.
객체는 키로, 배열은 순서로
JSON에서 객체의 키는 집합이라 순서에 뜻이 없고, 배열의 항목은 순서 자체가 뜻입니다.
그래서 [1,2,3]과 [3,2,1]은 두 자리가 바뀐 것으로 나오고, 위의 두 객체는 같다고 나옵니다.
배열 끝에 항목이 하나 붙으면 그 뒤가 전부 바뀐 것이 아니라 경로[2]에 추가 하나로 나옵니다.
결과는 주소가 붙은 목록입니다
두 화면을 나란히 놓고 눈으로 훑는 방식이 아닙니다. 차이마다 경로가 붙어 있어서
billing/regions[2]를 그대로 이슈에 붙이거나 원본 파일에서 찾아갈 수 있습니다.
큰 덩어리는 펼쳐 보이지 않고 {4 fields}, [9 items]처럼 모양만 요약합니다.
미리보기는 처음 300건이고, CSV로 받으면 전부 들어 있습니다.
타입이 다르면 다르다고 나옵니다
5와 "5", false와 0, null과 키가 아예 없는 것은 서로 다른 값으로 봅니다.
API가 버전을 올리면서 조용히 바꾸는 게 대개 이런 것들입니다. 다만 5와 "5"는 표에서
둘 다 5로 보이니, 값이 같아 보이는데 「변경」으로 나온 줄은 따옴표 유무를 의심하세요.
이 도구가 하지 않는 일
- 병합. 차이를 알려 줄 뿐, 세 번째 문서를 만들지 않습니다.
- 배열 안의 레코드를 id로 짝짓기. 배열은 자리 순서로 비교합니다. 같은 레코드가 순서만 다르게 들어 있다면 먼저 정렬하세요. 표 형태의 데이터라면 엑셀 파일 비교가 키 열로 행을 짝짓습니다.
- 유니코드 정규화. macOS에서 만든 문자열처럼 한글이 자모로 풀린 형태(NFD)와 완성형(NFC)은 화면에서 똑같아 보여도 다른 값으로 나옵니다. 정규화는 하지 않습니다.
- JSON5, 주석, 끝 쉼표, JSON Lines. 표준 JSON만 읽습니다. 그 밖의 것은 해석 오류와 그 위치로 알려 줍니다.
- CP949로 저장된 .json. 파일은 UTF-8로 읽습니다. JSON 표준이 UTF-8이니 대개 문제 되지 않지만, 옛 시스템에서 나온 파일이라면 글자가 깨져 보일 수 있습니다.
- 16자리를 넘는 정수. 숫자는 자바스크립트 숫자로 해석되므로
12345678901234567같은 긴 정수는 정밀도가 깎입니다. 긴 id는 문자열로 저장된 경우에만 정확히 비교됩니다.
API 응답과 설정 파일은 밖으로 보내지 않는 편이 낫습니다
비교 사이트에 붙여넣는 JSON은 대개 API 응답, 설정 파일, 내보내기 파일입니다. 키, 토큰, 고객 정보가 들어 있기 쉽습니다. 여기서는 두 문서를 내 컴퓨터의 자바스크립트가 해석하고 비교합니다. 문서 내용이 요청에 실리는 일은 없습니다.
같은 비교를 매달 반복하고 있다면 그건 더 이상 일회성 확인이 아닙니다. TableDI 2는 매 기간 다시 해야 하는 파일 작업을 위한 데스크톱 앱입니다. 원본·규칙·전달 방식을 하나의 작업으로 저장해 두므로, 다음 달에는 새 파일을 넣고 다시 실행하기만 하면 됩니다. 모든 처리는 내 컴퓨터 안에서 이루어집니다.
자주 묻는 질문
JSON 키 순서가 다르면 다르다고 나오나요?
아니요. 객체의 키 순서와 들여쓰기는 문법일 뿐 내용이 아니므로 차이로 세지 않습니다. 글자 하나하나를 비교하고 싶다면 그건 텍스트 비교가 할 일이고, JSON 비교 도구는 맞지 않습니다.
한글이 \uXXXX로 이스케이프된 파일과 비교해도 되나요?
됩니다. 해석한 뒤에 비교하므로 "\uAC00"와 "가"는 같은 값입니다. 이스케이프 방식만 다르면 차이가 0건으로 나옵니다.
배열 안의 객체 순서가 다르면 어떻게 되나요?
자리마다 바뀐 것으로 나옵니다. 배열이 가진 순서는 그 자리 순서뿐이기 때문입니다. 같은 레코드가 순서만 다르다면 양쪽을 id로 정렬한 뒤 비교하세요.
JSON 비교 사이트에 회사 데이터를 올려도 괜찮을까요?
이 페이지에는 올리는 곳 자체가 없습니다. 두 문서는 이 탭의 자바스크립트가 읽고, 페이지가 불러오는 것은 방문 수를 세는
static.cloudflareinsights.com와 이 사이트의 /_vercel/insights뿐입니다. 네트워크 탭에서 확인할 수 있습니다.
주석이나 끝 쉼표가 있는 JSON도 되나요?
되지 않습니다. 표준 JSON만 읽고, 주석이나 끝 쉼표가 있으면 해석 오류와 그 위치를 보여 줍니다. 위치가 나오니 고칠 곳은 바로 찾을 수 있습니다.
관련 페이지
매달 하는 일인가요?
TableDI 2에서 한 번 해 보고 작업으로 저장합니다. 다음 달에는 새 파일을 넣고 다시 실행하면 됩니다.
macOS(Apple 실리콘·Intel). Windows 버전은 준비 중입니다(그동안 할 수 있는 일). 무료 버전은 체험판이 아닙니다 — 계정도 카드도 필요 없습니다.
2026-09-11 TableDI 팀이 마지막으로 확인했습니다. 이 페이지에 잘못된 내용이 있나요? 알려주세요 — 받은편지함은 하나이고, TableDI를 만드는 사람이 읽습니다.