텍스트 / JSON 비교 (Diff)

텍스트나 JSON을 나란히 비교하여 정확히 무엇이 바뀌었는지 확인해 보세요.

원본
수정본
차이점
준비되었습니다. 비교할 두 버전을 붙여넣으세요.

입력하신 텍스트와 JSON은 브라우저 내에서만 비교됩니다. BroBroGo 서버로 어떠한 데이터도 전송되지 않습니다.

자주 묻는 질문

텍스트 모드와 JSON 모드의 차이점은 무엇인가요?

텍스트 모드는 원본 콘텐츠를 줄 또는 단어 단위로 비교합니다. JSON 모드는 먼저 양쪽 데이터를 파싱하여 일관된 형식으로 정렬한 뒤, $.user.email과 같이 변경된 경로를 목록으로 보여줍니다.

매우 큰 입력값도 처리할 수 있나요?

비교 속도가 느려지면 2.5초 후에 중단됩니다. 실수로 매우 큰 텍스트를 붙여넣었을 때 페이지가 멈추지 않도록 최대 크기가 제한됩니다.

JSON 모드에서는 객체 키 순서가 무시되나요?

구조화된 변경 사항 목록은 객체 키를 이름 기준으로 비교하므로, 키 순서만 바뀌는 것은 의미론적 변경 사항으로 보고하지 않습니다. 배열은 위치(인덱스) 기준으로 비교됩니다.

텍스트 및 JSON 비교의 기본 개념

소프트웨어 개발, 데이터 분석, 문서 작성 등 다양한 작업 환경에서 두 버전의 데이터 간 차이점을 찾아내는 '비교(Diff)' 작업은 필수적입니다. 텍스트나 구조화된 데이터를 수작업으로 대조하는 것은 시간 소모가 크고 오류가 발생하기 쉽습니다.

"텍스트 / JSON 비교 (Diff)" 도구는 "원본"과 "수정본" 입력을 나란히 비교하여 추가, 삭제, 변경된 요소를 시각적으로 명확하게 보여줍니다. 이 도구는 텍스트의 단순한 줄 바꿈 차이부터 복잡한 JSON 객체의 구조적 변화까지 신속하게 감지하여 작업의 정확성을 높여줍니다.

텍스트 비교 모드의 작동 방식과 단위 설정

텍스트 모드에서는 텍스트 비교 단위를 "줄 단위" 또는 "단어 단위"로 설정하여 비교를 진행할 수 있습니다.

  • 줄 단위: 문장이나 코드의 행 전체를 기준으로 변경 사항을 대조합니다. 줄 바꿈이 빈번한 소스 코드나 단락 단위의 문서 비교에 적합합니다.
  • 단어 단위: 개별 단어 수준까지 세부적으로 대조하여 문장 내부에서 미세하게 수정된 단어나 철자 변경을 찾아냅니다.

비교 결과는 변경 성격에 따라 다음과 같이 분류되어 표시됩니다:

  • 추가됨: 수정본에 새롭게 삽입된 콘텐츠입니다.
  • 삭제됨: 원본에서 제거되어 수정본에는 존재하지 않는 콘텐츠입니다.
  • 변경됨: 동일한 위치에서 내용이 수정된 콘텐츠입니다.

JSON 구조 분석 및 의미론적 비교 규칙

JSON 모드는 단순한 텍스트 대조를 넘어, 데이터를 파싱하고 구조화된 경로를 분석하여 변경 사항을 추적합니다. API 응답 데이터나 설정 파일의 변경 사항을 추적할 때 유용하며, 다음과 같은 고유한 규칙에 따라 비교가 수행됩니다.

  • 객체 키 순서 무시: JSON 객체 내의 키(Key)들은 순서가 바뀌더라도 의미론적으로 동일한 데이터로 취급됩니다. 따라서 키의 정렬 순서만 변경된 경우에는 의미론적 변경 사항으로 보고하지 않습니다.
  • 배열 비교: 배열(Array)은 객체와 달리 순서가 중요하므로, 인덱스 위치를 기준으로 요소를 비교합니다.
  • 구조적 경로 표시: 변경 사항이 발생한 위치를 구체적인 데이터 경로로 나열하여, 복잡한 중첩 구조 내에서도 수정된 위치를 정확히 파악할 수 있게 합니다.

브라우저 내 로컬 처리와 데이터 보안

이 도구는 사용자의 개인정보와 데이터 보안을 위해 클라이언트 사이드 방식으로 동작합니다. 입력하신 텍스트와 JSON은 브라우저 내에서만 비교됩니다. BroBroGo 서버로 어떠한 데이터도 전송되지 않으므로, 외부 유출 걱정 없이 브라우저 내에서 즉시 비교 작업을 수행할 수 있습니다.

대용량 입력값 처리 및 예외 규칙

원활한 도구 사용과 브라우저의 반응성 유지를 위해 다음과 같은 제한 사항과 예외 처리 규칙이 적용됩니다.

  • 입력 크기 제한: 한 페이지당 입력할 수 있는 최대 글자 수는 단일 입력측 기준 300,000자로 제한됩니다. 입력값이 이 범위를 초과하면 "입력값이 이 도구로 처리하기에 너무 큽니다. 더 작은 크기로 비교해 주세요."라는 메시지가 표시됩니다.
  • 시간 제한 (타임아웃): 비교 연산이 너무 오래 걸리는 경우, 브라우저가 멈추는 현상을 방지하기 위해 2.5초 후에 비교 작업을 중단합니다. 이때 "비교 작업이 너무 오래 걸립니다. 더 작은 입력을 사용하거나 줄 단위 모드로 시도해 보세요."라는 안내가 나타납니다.
  • 결과 제한 표시: 데이터 크기가 매우 큰 경우, 페이지 성능 유지를 위해 "페이지가 원활하게 작동하도록 결과의 일부만 표시합니다."라는 경고와 함께 결과의 일부만 제한적으로 표시될 수 있습니다.
  • 구문 오류 감지: 입력된 JSON 데이터에 문법적 오류가 있을 경우, 비교를 진행하지 않고 "왼쪽 JSON이 올바르지 않습니다:" 또는 "오른쪽 JSON이 올바르지 않습니다:" 뒤에 구체적인 에러 내용을 표시합니다.

자주 묻는 질문 (FAQ)

Q1. 텍스트 모드와 JSON 모드의 차이점은 무엇인가요? A1. 텍스트 모드는 원본 콘텐츠를 줄 또는 단어 단위로 비교합니다. JSON 모드는 먼저 양쪽 데이터를 파싱하여 일관된 형식으로 정렬한 뒤, $.user.email과 같이 변경된 경로를 목록으로 보여줍니다.

Q2. 매우 큰 입력값도 처리할 수 있나요? A2. 비교 속도가 느려지면 2.5초 후에 중단됩니다. 실수로 매우 큰 텍스트를 붙여넣었을 때 페이지가 멈추지 않도록 최대 크기가 제한됩니다.

Q3. JSON 모드에서는 객체 키 순서가 무시되나요? A3. 구조화된 변경 사항 목록은 객체 키를 이름 기준으로 비교하므로, 키 순서만 바뀌는 것은 의미론적 변경 사항으로 보고하지 않습니다. 배열은 위치(인덱스) 기준으로 비교됩니다.

Q4. 입력한 데이터가 외부 서버로 전송되거나 저장되나요? A4. 아닙니다. 입력하신 텍스트와 JSON은 브라우저 내에서만 비교됩니다. BroBroGo 서버로 어떠한 데이터도 전송되지 않습니다.

Q5. 두 입력값에 아무런 차이가 없으면 어떻게 표시되나요? A5. 두 입력값이 완전히 일치하여 차이점이 발견되지 않았을 때는 화면에 "차이점이 발견되지 않았습니다" 또는 JSON 모드에서 "변경된 JSON 값이 없습니다"라는 메시지가 표시됩니다.