양쪽 창에 JSON을 붙여넣어 비교하세요.
도구 설명
JSON 비교 도구 정보
JSON diff 도구는 두 문서를 텍스트가 아니라 구조 기준으로 비교하므로, 서식이 아니라 데이터에서 무엇이 달라졌는지를 확인할 수 있습니다.
한쪽에 원본 JSON을, 다른 쪽에 수정된 JSON을 붙여 넣으면 비교 결과가 즉시 갱신되어 추가, 삭제, 변경된 값과 각각의 경로가 표로 정리됩니다.
JSON Diff 도구 사용법
- 첫 번째 입력란에 원본 문서를, 두 번째 입력란에 변경된 문서를 붙여 넣습니다.
- 상단에 +N -N ~N 형태로 표시되는 요약 카운터로 변경 규모를 파악합니다.
- 결과 표를 훑어봅니다. 변경 유형, 경로, 변경 전 값, 변경 후 값 순서입니다.
- a.b[2] 같은 경로를 따라 원본 파일로 돌아갑니다. 키는 점으로 이어지고 배열은 인덱스로 표기됩니다.
이럴 때 사용합니다
- 스테이징 JSON 설정과 프로덕션 설정처럼, 두 환경의 구성을 비교할 때.
- 새 응답 구조에 의존하기 전에, 서비스 두 버전 사이에서 API 응답이 어떻게 달라졌는지 검토할 때.
- package-lock.json이나 그 밖에 자동 생성된 의존성 매니페스트 안에서 실제로 무엇이 움직였는지 조사할 때.
- 어떤 도구가 인프라 코드 파일이나 Kubernetes 매니페스트를 다시 직렬화한 뒤 무엇을 바꿨는지 확인할 때.
경로와 변경 유형을 표기하는 방식
모든 행은 문서 안의 한 위치를 가리키며, 코드에서 값을 읽을 때와 같은 방식으로 표기하므로 원본 파일에서 찾기 쉽습니다.
- 추가: 해당 경로가 변경된 문서에만 존재하며, 변경 후 값 열에 새 값이 표시됩니다.
- 삭제: 해당 경로가 원본에만 존재하며, 변경 전 값 열에 원래 있던 값이 표시됩니다.
- 변경: 해당 경로가 양쪽에 있으나 값이 다르므로 두 열이 모두 채워집니다.
- a.b[2] 같은 경로는 객체 a 안의 키 b, 그리고 그 배열의 인덱스 2번 요소를 뜻합니다.
JSON 비교 자주 묻는 질문
- 파일 서식만 바꿨는데 왜 차이가 하나도 나오지 않나요?
- 양쪽을 먼저 구문 분석하기 때문입니다. 들여쓰기, 키 순서, 줄바꿈 문자는 분석된 구조의 일부가 아니므로 차이로 표시되지 않습니다.
- 배열에 요소 하나를 넣었을 뿐인데 왜 그 뒤가 전부 변경으로 표시되나요?
- 배열은 인덱스로 비교합니다. 요소를 삽입하면 뒤따르는 모든 요소가 새 위치로 밀리므로, 밀린 위치마다 변경으로 보고됩니다. 결함이 아니라 위치 기반 비교의 본질적인 특성입니다.
- 한쪽이 유효한 JSON이 아니면 어떻게 되나요?
- 두 입력 모두 구문 분석에 성공해야 합니다. 어느 한쪽이라도 형식이 잘못되면 비교 대신 구문 분석 오류가 표시됩니다.
- 두 문서가 같을 때는 무엇이 표시되나요?
- 실패처럼 보일 수 있는 빈 결과를 남기는 대신, 구조적 차이가 없다는 사실을 명시적으로 알려 줍니다.
- 제 데이터가 어딘가로 업로드되나요?
- 아닙니다. 구문 분석과 비교는 microdiff 라이브러리를 사용해 브라우저 안에서 로컬로 실행되므로, 붙여 넣은 내용이 wetool.site나 다른 어떤 서버로도 전송되지 않습니다.
JSON diff와 일반 텍스트 diff
텍스트 diff는 문자 단위의 줄을 비교하므로, 키 순서가 바뀌거나 들여쓰기가 2칸에서 4칸으로 바뀌거나 줄바꿈 문자가 달라지기만 해도 데이터가 동일한데 차이로 잡히고, 실제 수정 사항은 그 잡음에 묻힙니다. JSON diff는 두 문서를 먼저 구문 분석한 뒤 의미상의 차이만 보고하므로 키 순서와 서식은 무시됩니다. 바이트가 정확히 중요할 때는 텍스트 diff를, 데이터만 중요할 때는 이 도구를 사용하십시오.
결과를 오해 없이 읽기
구조 비교는 좁은 질문에 정확하게 답합니다. 그래서 이 표가 무엇을 알려 주고 무엇을 알려 주지 않는지 알아 두면 도움이 됩니다.
- 한 배열에 변경이 길게 몰려 있다면, 대개 독립적인 수정이 여러 건 있었다기보다 삽입 한 번 또는 순서 변경 한 번을 뜻합니다.
- 타입도 구분됩니다. 문자열 1과 숫자 1은 서로 다른 값이므로 변경으로 보고됩니다.