JSON Diff (JSON 비교)
왼쪽(A)과 오른쪽(B)에 JSON을 입력하면 추가/삭제/변경된 항목을 트리와 텍스트로 비교합니다. 서버로 전송하지 않고 브라우저 안에서만 처리됩니다.
🔗 링크 공유는 비교한 A/B JSON 원문을 링크 자체(주소창의 # 뒤)에 그대로 담습니다. 서버로 전송되지는 않지만, 링크를 받은 사람은 내용을 볼 수 있으니 민감한 데이터는 공유하지 마세요.
이 배너는 쿠팡 파트너스 활동의 일환으로 게재되며, 이에 따른 일정액의 수수료를 제공받습니다.
사용 방법
- 입력: 왼쪽 A(원본)와 오른쪽 B(변경본) 패널에 각각 JSON을 붙여넣거나 파일을 열거나 드래그하세요.
- 비교: "비교 (Diff)" 버튼을 누르거나, 입력이 바뀌면 자동으로 비교가 실행됩니다.
- 결과 확인: "트리 보기"에서는 추가(초록)/삭제(빨강)/변경(주황) 항목이 색으로 표시됩니다. "텍스트 보기"에서는 정렬된 JSON 텍스트를 줄 단위 +/- 로 비교합니다.
- 공유: "🔗 링크 공유"를 누르면 A/B 입력값이 압축되어 URL에 담기고, 그 링크가 클립보드로 복사됩니다. 링크를 열면 같은 비교 화면이 자동으로 재현됩니다.
- 내보내기: 비교 결과를 클립보드로 복사하거나 파일로 다운로드할 수 있습니다.
모든 처리는 브라우저 내부(JavaScript)에서만 이루어지며, 입력한 데이터는 서버로 전송되거나 저장되지 않습니다. 배열은 인덱스(순서) 기준으로 비교합니다.
JSON Diff는 언제 사용하나요?
API 응답 값이 배포 전후로 어떻게 바뀌었는지 확인하거나, 설정 파일(config)의 변경 사항을 검토하거나, 두 환경(운영/개발)의 JSON 데이터를 비교할 때 유용합니다. 텍스트 기반 diff 도구와 달리 키 순서나 들여쓰기 차이에 영향받지 않고 값 자체의 의미 있는 차이만 비교할 수 있습니다.
자주 묻는 질문
입력한 JSON 데이터가 외부로 전송되나요?
아니요. 모든 비교는 브라우저 안에서 JavaScript로만 처리되며 서버로 전송되지 않습니다.
키 순서가 달라도 같은 것으로 인식하나요?
네. 트리 보기는 객체의 키를 이름으로 매칭하므로 키 순서와 무관하게 값만 비교합니다. 단, 텍스트 보기(Unified Diff)는 정렬된 텍스트를 줄 단위로 비교하므로 순서가 다르면 차이로 표시될 수 있습니다.
배열은 어떻게 비교하나요?
배열은 같은 인덱스(순서)의 항목끼리 비교합니다. 배열 중간에 항목이 추가/삭제되어 뒤 항목들의 인덱스가 밀리면 실제로는 같은 값이라도 변경으로 표시될 수 있습니다.
아주 큰 JSON도 비교할 수 있나요?
브라우저 메모리 범위 내에서는 처리할 수 있지만, 매우 큰 JSON(수만 줄 이상)에서는 트리 렌더링과 텍스트 diff 계산이 느려질 수 있습니다.
이 도구와 git diff 같은 텍스트 diff는 뭐가 다른가요?
git diff 등 텍스트 기반 diff는 줄 단위로 비교하기 때문에 키 순서나 들여쓰기만 달라져도 차이로 표시됩니다. 이 도구의 트리 보기는 JSON의 실제 구조(키-값)를 이해하고 비교하므로, 형식적인 차이는 무시하고 값이 실제로 달라진 부분만 짚어줍니다.
JSON Patch(RFC 6902) 형식으로 결과를 받을 수 있나요?
현재는 지원하지 않습니다. 대신 복사/다운로드 기능으로 경로(path)와 변경 전/후 값을 담은 목록을 JSON으로 받을 수 있습니다.
링크 공유는 어떻게 동작하나요? 서버에 저장되나요?
아니요. "링크 공유"를 누르면 A/B에 입력한 JSON을 gzip으로 압축해 URL의 # 뒤(해시 프래그먼트)에 그대로 인코딩합니다. 해시 프래그먼트는 브라우저가 서버로 전송하지 않는 부분이라 어디에도 저장되지 않지만, 대신 링크 자체에 원문 데이터가 포함되므로 그 링크를 아는 사람은 누구나 내용을 볼 수 있습니다. 민감한 정보가 담긴 JSON은 공유하지 마세요.