본문으로 건너뛰기
SPCXTools

JSON 비교

상세한 경로별 비교를 통해 두 JSON 객체 간의 차이점을 빠르게 확인하세요.

로컬 실행 — 파일이 기기 외부로 전송되지 않습니다

도구 불러오는 중…

JSON 비교 사용 방법

  1. 1원본 JSON을 왼쪽 패널에, 수정된 JSON을 오른쪽 패널에 붙여넣으세요.
  2. 2도구가 즉시 데이터를 파싱하여 추가, 삭제, 변경된 필드의 요약을 표시합니다.
  3. 3순서와 관계없이 배열 내용을 비교하려면 "배열 순서 무시"를 체크하세요.
  4. 4정확한 JSON 경로와 이전/새 값을 보여주는 상세한 변경 내역을 확인하세요.
  5. 5복사 버튼을 클릭해 차이점 보고서를 일반 텍스트로 클립보드에 복사하세요.

빠르고 안전한 JSON 차이 비교기

복잡한 데이터 구조를 다룰 때, 수정된 값 하나나 누락된 키를 찾는 것은 매우 번거로운 일입니다. 이 JSON 비교 도구는 두 JSON 페이로드 간의 정확한 차이점을 즉시 분석하고 강조 표시합니다. 수천 줄의 코드를 일일이 읽을 필요 없이, 변경된 부분을 깔끔하게 구조화된 결과로 확인할 수 있습니다.

이 도구는 100% 웹 브라우저에서 실행되므로, 온라인에서 완벽하게 프라이버시가 보호되는 상태로 JSON diff를 수행할 수 있습니다. 사용자의 데이터는 절대 서버로 업로드되거나 데이터베이스에 저장되지 않습니다. 데이터 유출 위험이 없으므로 사내 API 응답, 고객 데이터 페이로드, 민감한 환경 설정 등을 안심하고 붙여넣을 수 있습니다.

JSON 심층 비교 작동 방식

두 JSON 파일을 비교할 때 일반적인 텍스트 Diff 체커를 사용하면 오탐지가 자주 발생합니다. 일반 텍스트 도구는 데이터를 줄 단위로 비교합니다. 수정된 JSON의 들여쓰기가 다르거나 객체의 키 순서만 달라도, 텍스트 비교 도구는 전체 블록이 변경된 것으로 표시합니다.

이 도구는 다르게 작동합니다. 텍스트를 실제 JavaScript 객체로 파싱하고 데이터 구조 자체를 재귀적으로 심층 비교합니다. 공백, 들여쓰기, 객체의 키 순서는 무시합니다. {"status": "ok", "code": 200}가 {"code": 200, "status": "ok"}로 변경되더라도 이 도구는 두 객체를 완전히 동일한 것으로 인식합니다.

차이점을 발견하면 표준 점 표기법과 대괄호 구문을 사용하여 변경된 위치의 정확한 경로를 생성합니다. 예를 들어 배열의 세 번째 태그가 변경된 경우, 방대한 파일에서 단순히 특정 줄을 강조하는 대신 tags[2]를 직접 가리켜 줍니다.

배열 처리: 엄격한 비교 vs 순서 무시

JSON 비교 도구에서 가장 까다로운 부분 중 하나는 배열 처리입니다. 배열 내 항목의 순서가 중요한 경우도 있지만, 단순히 순서 없는 목록이라서 내용이 일치하는지만 확인하면 되는 경우도 있습니다.

기본적으로 이 도구는 인덱스를 기준으로 배열을 엄격하게 비교합니다. 원본의 첫 번째 항목과 수정본의 첫 번째 항목이 일치하는지 순차적으로 확인하는 방식입니다.

배열 순서 무시 옵션을 선택하면 비교 방식이 달라집니다. 두 배열의 내용을 직렬화하고 알파벳순으로 정렬한 뒤 비교합니다. 즉, 원본 배열이 ["apple", "banana"]이고 수정본 배열이 ["banana", "apple"]이라면 변경 사항이 없는 것으로 처리합니다. 이 기능은 특정 정렬 순서를 보장하지 않는 데이터베이스의 API 응답을 비교할 때 매우 유용합니다.

주요 활용 사례

API 응답 디버깅. API 엔드포인트에 갑자기 오류가 발생했을 때, 정상 작동하던 기존 응답과 오류가 발생한 새 응답을 비교하는 것이 원인을 찾는 가장 빠른 방법입니다. 두 페이로드를 붙여넣어 키 이름이 변경되었는지, 데이터 타입이 문자열에서 정수로 바뀌었는지, 중첩된 객체가 삭제되었는지 즉시 확인해 보세요.

설정 파일 검토. 최신 애플리케이션은 package.json, tsconfig.json 또는 클라우드 배포 템플릿과 같은 JSON 설정 파일에 크게 의존합니다. 변경 사항을 커밋하기 전에 이 도구를 사용하여 어떤 의존성이 업데이트되었는지, 어떤 설정이 변경되었는지 정확히 확인하세요.

데이터베이스 레코드 감사. MongoDB와 같은 문서형 데이터베이스는 레코드를 JSON과 유사한 구조로 저장합니다. 특정 사용자 프로필이나 문서가 시간에 따라 어떻게 변경되었는지 확인해야 할 때, 기존에 내보낸 JSON 데이터와 현재 상태를 비교하면 추가, 삭제 및 수정된 필드의 변경 이력을 명확하게 파악할 수 있습니다.

결과 확인하기

양쪽 패널에 유효한 JSON을 붙여넣으면, 변경 사항 요약 및 상세 목록이 생성됩니다:

  • 추가됨 (+): 원본에는 없고 수정된 JSON에만 존재하는 키 또는 배열 항목입니다. 녹색으로 강조 표시됩니다.
  • 삭제됨 (−): 원본 JSON에는 있지만 수정된 버전에서는 삭제된 키 또는 배열 항목입니다. 빨간색으로 강조 표시됩니다.
  • 변경됨 (~): 양쪽 모두에 존재하지만 값이 다른 키입니다(예: 문자열 변경, 또는 불리언 값이 true에서 false로 변경됨). 노란색으로 강조 표시되며 이전 값과 새 값을 함께 보여줍니다.

비교 결과를 동료와 공유하거나 버그 리포트에 붙여넣으려면 복사 버튼을 사용하세요. 변경된 모든 경로와 해당 값이 깔끔한 일반 텍스트로 요약되어 복사됩니다.

추가적인 데이터 작업이 필요하다면, 먼저 JSON Formatter를 사용해 복잡한 데이터를 보기 좋게 정렬해 보세요. JSON 구조를 최종 확정했다면 JSON to TypeScript 변환기를 사용해 타입 정의를 생성할 수도 있습니다.

자주 묻는 질문 (FAQ)

JSON 비교 도구는 배열을 어떻게 처리하나요?
기본적으로 배열은 인덱스 순서에 따라 엄격하게 비교됩니다. "배열 순서 무시"를 선택하면 비교하기 전에 내용을 기준으로 배열을 정렬합니다. 이는 항목의 순서는 중요하지 않지만 데이터 자체는 동일해야 할 때 유용합니다.
내 JSON 데이터가 서버로 전송되나요?
아닙니다. 모든 파싱과 비교는 JavaScript를 사용하여 브라우저에서 로컬로 처리됩니다. 데이터가 절대 업로드되지 않으므로 민감한 API 응답, 데이터베이스 내보내기 또는 비공개 설정 파일에도 이 도구를 안전하게 사용할 수 있습니다.
JSON이 유효하지 않으면 어떻게 되나요?
텍스트 상자 아래에 파싱이 실패한 위치를 나타내는 오류 메시지가 표시됩니다. 비교를 실행하려면 양쪽 패널 모두에 유효한 JSON을 입력해야 합니다.
원본 JSON과 수정된 JSON을 바꿀 수 있나요?
네, 바꾸기 버튼을 클릭하면 좌우 패널이 즉시 전환됩니다. 이를 통해 "추가됨" 또는 "삭제됨"으로 간주되는 기준이 반전됩니다.
중첩된 객체는 어떻게 비교되나요?
이 도구는 중첩된 객체와 배열을 재귀적으로 탐색하여, 발견된 모든 차이점에 대해 정확한 경로("user.address.city" 또는 "items[2].id" 등)를 생성합니다.
일반 텍스트 비교 도구 대신 이 도구를 사용하는 이유는 무엇인가요?
일반 텍스트 비교 도구는 텍스트 줄 단위로 비교합니다. 동일한 JSON 객체라도 키 순서가 다르면 텍스트 비교 도구는 이를 엄청난 변경으로 표시합니다. 반면 JSON 비교 도구는 실제 데이터 구조를 파싱하므로, {"a":1, "b":2}와 {"b":2, "a":1}이 완전히 동일하다는 것을 인식합니다.