JSON Diff 비교기 작동 원리
JSON Diff는 두 텍스트를 줄 단위로 대조하는 대신 먼저 표준 JSON 문법으로 해석한 뒤 객체의 키와 배열 인덱스를 따라 재귀적으로 이동합니다. 한쪽에만 존재하는 키는 추가 또는 삭제, 양쪽에 있지만 값이나 자료형이 다른 항목은 변경으로 표시합니다. 경로는 루트를 뜻하는 $에서 시작하고 객체 키는 점, 배열 위치는 대괄호로 표현하므로 API 응답의 어느 위치가 달라졌는지 찾기 쉽습니다. 객체 키 순서나 공백·줄바꿈은 데이터 의미가 아니므로 차이로 계산하지 않습니다.
이 페이지의 계산과 변환은 모두 현재 브라우저에서 실행됩니다. 원문과 결과를 ReadyTools 서버에 전송하거나 데이터베이스에 저장하지 않으며, 입력 내용은 localStorage에도 기록하지 않습니다. 다만 운영체제나 브라우저의 클립보드 기록, 확장 프로그램, 화면 공유 기능은 사이트 밖의 영역이므로 민감한 데이터는 테스트용으로 바꾸어 사용하는 편이 안전합니다.
JSON Diff 비교기 사용 방법
입력 형식 확인
페이지에 표시된 입력 예시와 형식을 확인하고 분석하거나 변환할 데이터를 붙여 넣습니다. 오류 안내가 나오면 강조된 항목의 문법과 범위를 먼저 확인하세요.
브라우저에서 실행
실행 버튼을 누르면 외부 API 호출 없이 현재 탭에서 처리됩니다. 모바일에서는 완료 후 결과 카드로 자동 이동하며 키보드만으로도 모든 항목을 조작할 수 있습니다.
결과 검토·복사
결과의 구조와 주의사항을 확인한 뒤 복사 버튼을 사용합니다. 실제 프로젝트에 반영하기 전에는 대상 언어, 서비스와 데이터 규칙에 맞는지 다시 테스트하세요.
구체적인 상황으로 이해하는 활용 예시
다음 세 상황은 도구의 처리 과정과 결과 해석을 설명하기 위한 가상 예시입니다. 입력 조건을 바꾸면 결과도 달라지므로 자신의 조건과 비교해 확인하세요.
1. 숫자 하나가 바뀐 응답 비교
기준 {"count":1}과 비교 {"count":2}를 넣으면 $.count 경로의 변경 1건입니다. 값 1과 2를 비교하는 것이므로 들여쓰기나 줄바꿈을 다르게 써도 변경 수가 늘지 않습니다. 이 결과는 문법상 값의 차이를 보여 주며 API의 계약상 허용되는 변경인지는 별도 판단해야 합니다.
2. 속성이 하나 추가된 경우
기준 {"id":1}과 비교 {"id":1,"active":true}에서는 $.active의 추가 1건을 기대할 수 있습니다. 두 객체의 id는 같으므로 변경에 포함되지 않습니다. 반대로 입력 위치를 바꾸면 같은 차이가 삭제로 표시되므로 기준 버전과 비교 버전이 어느 쪽인지 먼저 확인하세요.
3. 배열 순서만 바뀐 경우
기준 [1,2]와 비교 [2,1]은 원소 종류가 같아도 인덱스 0과 1에서 각각 값이 달라 2건의 변경으로 표시됩니다. 이 도구는 배열을 집합처럼 정렬해서 비교하지 않습니다. 순서가 의미 없는 목록이라면 비교 전에 같은 정렬 기준으로 맞춰야 의미 없는 차이를 줄일 수 있습니다.
배포 전후 API 응답을 비교하거나 설정 파일 두 버전의 차이를 검토할 때 유용합니다. 배열은 순서가 의미 있는 데이터로 취급하므로 같은 객체가 다른 인덱스로 이동하면 여러 변경으로 보일 수 있습니다. 결과가 많으면 먼저 상위 경로를 확인하고, 예상하지 못한 자료형 변경이나 삭제 항목을 우선 검토하세요. JSON Schema 검증이나 의미 기반 배열 매칭은 제공하지 않으므로 계약 검증이 필요할 때는 별도의 테스트와 함께 사용해야 합니다.
주의사항
비밀키, 액세스 토큰과 개인정보가 포함된 JSON은 공동 화면이나 클립보드에 남기지 마세요. 중복 키가 있는 JSON은 파싱 과정에서 마지막 값만 남을 수 있고, 배열 항목의 위치 이동은 단순 값 변경처럼 보일 수 있습니다. 결과는 검토 보조 자료이며 데이터 마이그레이션 명령을 자동으로 만들거나 적용하지 않습니다.