logo
GeekFormat

JSON Diff

Compare 1
이전 값Original JSON
1{
2 "name": "GeekFormat",
3~ "description": "面向开发者的免费在线工具集",
4~ "version": "1.0.0",
5 "features": [
6 "formatting",
7 "validation",
8~ "diff"
 
9 ],
10 "author": {
11 "name": "GeekFormat",
12 "url": "https://geekformat.com"
13 },
14 "stats": {
15~ "tools": 80,
16~ "languages": 18
17 },
18~ "active": true
19}
+1~6

무료 온라인 JSON Diff 도구. 두 개의 JSON 객체를 좌우로 비교하여 추가, 삭제, 수정된 필드를 하이라이트 표시합니다. 비교 전 자동 포맷팅 후 줄 단위, 문자 단위로 비교하고 추가/삭제/수정 개수를 실시간 집계하며, 텍스트 뷰와 시맨틱 뷰 두 가지 보기를 제공하여 API 연동, 설정 파일 버전 비교, 자동화 테스트 데이터 트러블슈팅에 적합합니다.

관련 추천

사용 사례

  • API 연동 시 실제 응답 데이터와 예상 Mock 데이터의 차이 비교
  • 서로 다른 환경(개발/테스트/운영)의 JSON 설정 파일 버전 변경 비교 필요
  • 자동화 테스트에서 응답 데이터와 어설션 기준의 불일치를 빠르게 트러블슈팅
  • 서드파티 API 업그레이드 후 신구 버전 응답 구조 변경 비교
  • 코드 리뷰 시 동일한 설정 또는 데이터 모델의 변경 전후 차이 비교
  • 운영 환경 이슈 트러블슈팅 시 정상 요청과 비정상 요청 두 번의 응답 JSON 비교
  • 데이터 동기화 시 원본 데이터와 대상 데이터가 일치하는지 확인

주요 기능

  • 심층 차이 비교: 자동 포맷팅 후 줄 단위, 문자 단위로 재귀적 비교하여 추가, 삭제, 수정을 정확하게 식별
  • 시각적 하이라이트: 빨강/초록/노랑 세 가지 색상으로 삭제, 추가, 수정을 명확하게 표시하고 좌우 동기 스크롤로 확인
  • 문자 단위 하이라이트: 수정된 줄 내에서 변경된 구체적인 문자를 추가로 하이라이트하여 더 정밀하게 위치 파악
  • 자동 포맷팅: 비교 전에 양쪽 JSON을 통일적으로 정리하여 들여쓰기와 공백 차이로 인한 노이즈 자동 제거
  • 텍스트/시맨틱 듀얼 뷰: 줄 단위 텍스트 비교 또는 구조적 시맨틱 비교를 필요에 따라 원클릭 전환
  • 차이 집계: 하단에 추가/삭제/수정 개수를 실시간으로 표시하고 완전히 일치 시 '완전히 동일함' 표시
  • 다중 탭 비교: 여러 JSON 쌍을 동시에 비교하고 서로 간섭하지 않음
  • 공유 및 교환: 원클릭 공유 링크 생성, 좌우 내용 원클릭 교체, 어느 한쪽 원클릭 복사
  • 프라이버시 보안: 모든 과정이 브라우저 로컬에서 실행되어 데이터가 전혀 업로드되지 않으므로 키가 포함된 응답도 안심하고 처리 가능

이용 방법

  1. 두 JSON 내용을 좌우 입력 상자에 각각 붙여넣기 (도구가 자동으로 포맷팅합니다)
  2. 텍스트 뷰 또는 시맨틱 뷰를 선택하고 빨강, 초록, 노랑으로 하이라이트된 차이 확인
  3. 하단의 추가/삭제/수정 집계와 함께 변경 규모 확인
  4. 원클릭으로 내용 복사 또는 공유 링크를 생성하여 다른 사람과 공동 트러블슈팅

자주 묻는 질문

두 JSON 파일 간의 차이를 빠르게 찾는 방법은 무엇인가요?

두 JSON 텍스트를 좌우 입력 상자에 각각 붙여넣으면, 도구가 자동으로 포맷팅한 후 줄 단위, 문자 단위로 상세 비교합니다. 추가된 내용은 녹색으로, 삭제된 내용은 빨간색으로 하이라이트되며, 수정된 줄은 이전 값과 새 값을 동시에 표시하고 변경된 문자를 하이라이트하여 데이터 차이를 순식간에 파악할 수 있습니다.

비교하기 전에 수동으로 JSON을 포맷팅해야 하나요?

아니요, 필요 없습니다. 도구는 비교 전에 좌우 양쪽의 JSON을 자동으로 파싱하여 통일된 포맷(2칸 공백 들여쓰기)으로 정리합니다. 따라서 두 JSON의 들여쓰기, 공백, 줄바꿈이 완전히 달라도 데이터 내용이 일치하면 무의미한 차이가 발생하지 않습니다. 이를 통해 공백 문자로 인한 노이즈가 자동으로 제외됩니다.

텍스트 뷰와 시맨틱 뷰의 차이는 무엇인가요?

텍스트 뷰는 포맷팅 후의 줄을 단위로 비교하여 각 줄의 추가/삭제/수정을 시각적으로 표시하므로 전체 변경 사항을 빠르게 훑어보는 데 적합합니다. 시맨틱 뷰는 JSON의 구조와 필드에 초점을 맞춰 비교하여 어떤 필드가 변경되었는지 데이터 의미 수준에서 이해하는 데 도움을 줍니다. 두 가지 뷰는 원클릭으로 언제든지 전환할 수 있습니다.

배열의 요소 순서가 다르면 차이로 판단되나요?

네. 도구는 포맷팅 후 내용의 순서대로 비교하므로 배열 요소의 순서가 다르면 차이로 표시됩니다. 내용이 일치하는지 여부만 확인하고 순서는 상관하지 않는 경우, JSON 포맷 도구의 '키 이름 정렬' 기능을 사용하거나 배열을 정렬한 후 비교하면 순서로 인한 노이즈를 피할 수 있습니다.

이 도구는 어떤 개발/테스트 시나리오에 적합한가요?

다음 시나리오에 매우 적합합니다: 1) **API 연동**: 실제 API 응답과 예상 Mock 데이터의 차이를 비교; 2) **설정 관리**: 서로 다른 환경(개발/운영)의 설정 파일 차이를 비교; 3) **자동화 테스트**: 테스트 어설션 보조 도구로 데이터 불일치를 빠르게 트러블슈팅; 4) **버전 업그레이드**: 서드파티 API 업그레이드 전후의 응답 구조 변경을 비교.

JSON Diff와 JSON 포맷의 차이는 무엇인가요?

JSON 포맷은 읽기 어려운 JSON을 읽기 쉬운 계층 구조로 정리하는 것이고, JSON Diff는 두 JSON 간의 차이를 비교하는 것입니다. 둘은 자주 함께 사용됩니다: 본 도구에는 실제로 포맷팅 기능이 내장되어 있어 비교 전에 양쪽 내용을 자동으로 정리하므로 차이 자체에 집중할 수 있습니다.

비교 결과를 공유하거나 복사할 수 있나요?

네. 도구는 현재 좌우 양쪽의 내용을 URL에 압축 인코딩하여 공유 가능한 링크를 생성하는 기능을 지원합니다. 상대방이 링크를 열면 동일한 비교 시나리오가 표시되며 서버에 업로드할 필요가 없습니다. 또한 코드 리뷰나 이슈 추적을 위해 어느 한쪽의 내용을 원클릭으로 복사할 수도 있습니다.

여러 그룹의 비교를 동시에 할 수 있나요?

네. 도구는 다중 탭 비교를 지원하여 서로 다른 탭에 각각 다른 JSON 쌍을 붙여넣고 비교할 수 있습니다. 탭 간에는 서로 간섭하지 않으므로 여러 API나 여러 설정의 차이를 동시에 트러블슈팅하기 편리합니다.

비교 시 몇 군데가 변경되었는지 집계되나요?

네. 하단 상태 표시줄에 추가, 삭제, 수정 세 종류의 차이 개수가 실시간으로 표시되어 변경 규모를 한눈에 파악할 수 있습니다. 두 JSON이 완전히 일치하면 '완전히 동일함'이라는 메시지가 표시됩니다.

비교하는 데이터가 서버에 업로드되나요?

아니요. 모든 포맷팅과 차이 비교는 완전히 브라우저 로컬에서 실행되며 데이터가 어떤 서버에도 업로드되지 않습니다. 키, 토큰, 사용자 개인정보가 포함된 API 응답을 비교해도 안전하며, 페이지를 닫으면 데이터가 즉시 삭제됩니다.

JSON Diff(JSON 비교)에 대해

JSON Diff란 두 JSON 데이터의 차이를 비교하여 그 사이에 추가, 삭제, 수정된 필드를 찾는 것입니다. 일상 개발에서 우리는 두 JSON이 '도대체 어디가 다른지' 알아야 할 때가 많습니다: API 업그레이드 전후 응답 구조가 무엇으로 바뀌었는지, 두 환경의 설정이 어디서 다른지, 자동화 테스트의 실제 결과와 예상 기준이 어떤 필드에서 벗어났는지. 수동으로 줄 단위 확인하는 것은 느리고 놓치기 쉽기 때문에 JSON Diff 도구가 차이를 자동으로 하이라이트합니다.

JSON 차이 비교에는 보통 두 가지 접근 방식이 있습니다. 하나는 '텍스트 차이'(textual diff): JSON을 표준적인 여러 줄 텍스트로 포맷팅한 후 Git diff와 유사한 줄 단위 비교를 수행하여 각 줄의 추가/삭제/수정을 시각적으로 표시합니다. 다른 하나는 '시맨틱/구조 차이'(structural diff): JSON을 트리 구조로 파싱하여 필드 경로(user.address.city 등)를 따라 값과 타입을 일일이 비교하며 필드 작성 순서, 들여쓰기 등 레이아웃 요인의 영향을 받지 않습니다. 본 도구는 텍스트 뷰와 시맨틱 뷰를 모두 제공하여 필요에 따라 전환할 수 있습니다.

왜 비교 전에 포맷팅할까요? 동일한 데이터라도 레이아웃이 완전히 다를 수 있기 때문에(한 줄 vs 여러 줄, 2칸 공백 vs 4칸 공백), 원본 텍스트 그대로 직접 비교하면 레이아웃 차이로 인한 '가짜 차이'가 대량 발생합니다. 본 도구는 비교 전에 양쪽 JSON을 자동으로 파싱하여 통일 포맷함으로써 공백 문자의 노이즈를 제거하고 진정으로 의미 있는 데이터 변경만 보여줍니다.

주의할 점은 JSON에서 객체의 키 순서는 의미상 중요하지 않지만({"a":1,"b":2}와 {"b":2,"a":1}은 동등), 배열의 요소 순서는 의미가 있다는 것입니다([1,2]와 [2,1]은 다릅니다). 따라서 배열 내용이 일치하는지 여부만 확인하고 순서는 상관하지 않을 때는 배열을 정렬하거나 키 이름을 정렬한 후 비교하여 순서 변경이 잘못 차이로 판단되는 것을 피하세요.

본 도구의 모든 포맷팅과 비교는 브라우저 로컬에서 완료되며 데이터가 서버에 업로드되지 않습니다. 또한 문자 단위 하이라이트, 추가/삭제/수정 개수 집계, 다중 탭 동시 비교, URL을 통한 비교 시나리오 공유를 지원하여 API 연동, 설정 비교, 테스트 어설션, 코드 리뷰 등의 시나리오에 적합합니다.

JSON 차이 유형 속참표

두 JSON을 비교할 때 차이는 보통 다음과 같은 범주로 분류됩니다. 이들을 이해하면 변경 성격을 빠르게 판단하는 데 도움이 됩니다.

차이 유형표시설명
추가 (Added)+ 녹색새 버전에는 있지만 이전 버전에는 없는 필드 또는 배열 요소.
삭제 (Removed)− 빨간색이전 버전에는 있었지만 새 버전에서 제거된 필드 또는 배열 요소.
수정 (Modified)~ 노란색필드는 여전히 존재하지만 값이 변경된 경우로, 이전 값과 새 값을 동시에 표시하고 변경된 문자를 하이라이트합니다.
타입 변경~ 노란색필드 값의 타입이 변경된 경우(숫자→문자열, 객체→배열 등)로 수정의 한 종류입니다.
변경 없음일반양쪽에서 완전히 일치하는 줄로 특별한 표시를 하지 않습니다.

비교 전 권장되는 전처리

깔끔하고 의미 있는 비교 결과를 얻기 위해 상황에 따라 다음 전처리를 미리 수행하여 가짜 차이를 피하세요.

시나리오권장 작업
키 순서가 다름키 이름으로 정렬한 후 비교 (또는 시맨틱 뷰를 사용하여 필드 수준에서 비교).
배열 순서가 상관없음배열을 내용으로 정렬한 후 비교하여 순서 변경이 차이로 판단되지 않도록 함.
들여쓰기/공백이 다름처리 불필요. 본 도구가 자동으로 포맷팅하여 레이아웃을 통일함.
큰 정수 ID 포함양쪽 모두 큰 정수를 문자열로 전송하는지 확인하여 정밀도 손실로 인한 불일치 방지.
한쪽이 무효JSON 검증/수리 도구로 유효한 JSON으로 처리한 후 비교.

Privacy & Security

본 도구의 모든 JSON 포맷팅과 차이 비교는 완전히 사용자의 브라우저 로컬에서 실행되며, 데이터가 어떤 서버에도 업로드되지 않고 원격에 기록되거나 캐시되지도 않습니다. 키, 토큰, 사용자 정보가 포함된 API 응답을 비교해도 안전하며, 페이지를 닫거나 새로고침하면 데이터가 즉시 삭제됩니다.

Authoritative References

Troubleshooting

데이터가 분명히 같은데 차이가 있다고 표시됩니다

가장 흔한 원인은 배열 요소의 순서가 다르거나 문자열 내에 육안으로 구분하기 어려운 차이가 있는 것입니다(전각/반각 공백, 대소문자, 끝 공백, 줄바꿈 \r\n과 \n 등). 배열 또는 키 이름을 정렬한 후 비교해 보세요. 본 도구는 자동 포맷팅되므로 일반적으로 들여쓰기와 일반 공백으로 인한 가짜 차이는 제외할 수 있습니다.

비교 한쪽에서 파싱 오류가 납니다 / 비교할 수 없습니다

해당 쪽 내용이 유효한 JSON이 아님을 의미합니다(따옴표 누락, 여분의 끝 쉼표, 주석 포함, 괄호 닫히지 않음 등). JSON 검증/수리 도구로 유효한 JSON으로 처리한 후 다시 비교해 주세요.

차이가 너무 많아 거의 모든 줄이 빨강/초록으로 표시됩니다

대부분 두 데이터의 키 순서 또는 배열 순서가 전체적으로 달라 줄 단위로 어긋난 경우입니다. 객체 키 이름 정렬, 배열 내용 정렬로 통일한 후 비교하거나 시맨틱 뷰로 전환하여 필드 수준에서 실제로 변경된 필드를 확인하는 것을 권장합니다.

큰 숫자가 일치하지 않습니다(ID 끝자리가 다르거나 지수 표기법으로 바뀝니다)

JSON 숫자는 IEEE 754 배정밀도로 파싱되므로 2^53을 초과하는 큰 정수(스노우플레이크 ID, 주문번호)는 정밀도가 손실되어 양쪽이 보기엔 같아도 실제로는 다른 값으로 파싱될 수 있습니다. 큰 정수를 전송할 때는 "id": "9007199254740993"과 같이 문자열로 감싸 주세요.

한글이 \uXXXX로 표시되어 보기상 일치하지 않습니다

한쪽은 이스케이프 표기(\u4e2d\u6587)이고 다른 한쪽은 평문 한글일 때 포맷팅 후 다르게 보일 수 있습니다. 둘은 의미상 같지만 텍스트가 다르므로 차이로 표시됩니다. 생성 측에서 이스케이프 여부를 통일하세요(Python의 ensure_ascii=False 등).