Diff Checker|텍스트 차이점 찾기
두 텍스트를 나란히 비교하여 추가, 삭제, 변경 없는 줄을 색상으로 즉시 강조 표시합니다. 문자 수준의 정확한 차이 감지 기능을 제공하며, 브라우저 내에서 처리되어 데이터가 전송되지 않습니다.
Diff Checker란?
Diff Checker는 두 텍스트 블록을 비교하여 모든 차이점을 강조 표시하는 무료 온라인 도구입니다. 원본 텍스트를 왼쪽에, 수정된 버전을 오른쪽에 붙여넣으면 추가된 내용, 삭제된 내용, 변경 없는 내용을 문자 수준까지 즉시 보여줍니다.
이 도구는 개발자, 작가, 변경 사항을 검토해야 하는 모든 사람이 직면하는 공통 문제를 해결합니다. 두 개의 유사한 텍스트를 수동으로 읽어 차이점을 찾는 것은 느리고 오류가 발생하기 쉽습니다. Diff Checker는 전문 코드 리뷰 시스템에서 사용하는 것과 동일한 기술인 diff-match-patch 알고리즘을 사용하여 그 작업을 자동화합니다. 처리는 브라우저에서 완전히 이루어지며 텍스트는 서버로 전송되지 않으므로 기밀 문서, 소스 코드, 독점 데이터에 안전합니다.
주요 기능
- 나란히 텍스트 비교 — 기본 뷰는 Original을 왼쪽에, Modified를 오른쪽에 배치하여 어디서 줄이 갈라졌는지 시각적으로 추적할 수 있습니다. 두 패널 모두 스크롤 가능하며 독립적으로 크기 조절이 가능합니다.
- 줄별 diff 강조 표시 — 각 줄은 색상 코딩됩니다: 삽입은 초록 배경, 삭제는 빨간 배경, 변경 없는 내용은 배경 없음. 행 번호는 두 패널의 모든 줄 옆에 표시됩니다.
- 문자 수준 diff 감지 — 기반
diff-match-patch라이브러리는 원시 diff를 계산한 후 시맨틱 정리 단계(diff_cleanupSemantic)를 사용합니다. 이는 도구가 단어를 임의로 분할하지 않고 관련 변경 사항을 가장 읽기 쉬운 단위로 그룹화한다는 것을 의미합니다. - 인라인 뷰 토글 — 뷰 전환 버튼을 클릭하여 2열 레이아웃에서 문서 순서로 삭제와 삽입이 교차되어 표시되는 단일 연속 스트림으로 전환합니다. 나란히 정렬보다 순서가 더 중요할 때 유용합니다.
- 텍스트 교환 — 클릭 한 번으로 두 패널의 내용을 교환하여 어느 버전을 원본으로 취급할지 반전할 수 있습니다.
- Diff 결과 복사 — unified-diff 형식(줄 앞에
+,-, 또는 공백 두 개 접두사)으로 diff를 복사하여 티켓, 이메일 또는 commit 메시지에 붙여넣을 준비가 됩니다. - 실시간 문자 통계 — 상태 표시줄에 추가, 삭제, 변경 없는 문자의 총 수가 실시간으로 업데이트되어 표시됩니다.
Diff Checker 사용 방법
1단계: 원본 텍스트 붙여넣기
"Text A" 레이블이 있는 왼쪽 textarea를 클릭하고 비교할 기준이 되는 버전을 붙여넣거나 입력합니다. textarea는 일반 텍스트, 코드, 설정 파일, JSON 또는 기타 문자 기반 콘텐츠를 허용합니다.
2단계: 수정된 텍스트 붙여넣기
"Text B" 레이블이 있는 오른쪽 textarea를 클릭하고 최신 버전이나 변경된 버전을 붙여넣습니다. 두 필드에 콘텐츠가 있는 즉시 도구가 diff 계산을 시작합니다. 제출 버튼을 누를 필요가 없습니다.
3단계: Diff 출력 읽기
액션 바 아래 "Differences" 패널로 스크롤합니다. 나란히 모드에서는 다음을 볼 수 있습니다:
- 왼쪽 Original 패널 — 삭제된 줄이 빨간색으로 표시
- 오른쪽 Modified 패널 — 추가된 줄이 초록색으로 표시
- 두 버전에 모두 있는 줄은 배경색 없이 표시
각 줄은 왼쪽 가장자리에 행 번호가 있습니다. 번호는 패널별로 독립적입니다. 원본에서 세 줄이 삭제된 경우, 그 지점에서 Modified 패널의 번호가 Original 패널보다 낮아집니다.
예시: JSON 설정 두 버전 비교:
Text A (original):
{
"timeout": 30,
"retries": 3,
"endpoint": "https://api.example.com/v1"
}
Text B (modified):
{
"timeout": 60,
"retries": 5,
"endpoint": "https://api.example.com/v2",
"auth": "bearer"
}
Diff 출력에서 30 → 60, 3 → 5, v1 → v2, 새로 삽입된 "auth" 줄이 초록색으로 강조됩니다.
4단계: 필요 시 인라인 뷰로 전환
액션 바의 뷰 전환 버튼을 클릭합니다. 나란히 모드에서는 "Inline"이라고 표시되고(클릭하면 인라인으로 전환), 인라인 모드에서는 "Side by Side"라고 표시됩니다. 인라인 뷰에서는 모든 줄이 문서 순서로 표시됩니다: 빨간색 삭제된 줄 바로 다음에 초록색 교체 줄이 이어집니다.
5단계: 복사 또는 지우기
"Copy Diff"를 클릭하면 unified diff 형식으로 결과가 복사됩니다. 삭제된 각 세그먼트는 - 접두사가 붙고, 삽입된 각 세그먼트는 + 접두사가 붙어 출력이 patch 도구 및 문서와 호환됩니다. "Clear"를 클릭하면 두 텍스트 영역이 비워지고 새 비교를 시작할 수 있습니다. 비교 방향을 반전하려면 "Swap"을 사용합니다.
실용적인 예시
배포 전 설정 변경 사항 검토
DevOps 엔지니어가 Kubernetes ConfigMap의 두 버전을 가지고 있으며, 프로덕션에 배포하기 전에 리소스 제한만 변경되었는지 확인해야 합니다. 현재 YAML을 Text A에, 제안된 YAML을 Text B에 붙여넣습니다. diff는 수십 개의 변경 없는 줄과 대비하여 변경된 두 줄(cpu: "250m" → cpu: "500m" 및 memory: "256Mi" → memory: "512Mi")을 강조하여 몇 초 안에 변경 범위를 확인합니다.
계약서 개정 감사
법률 보조원이 개정된 서비스 계약서를 받고 서명된 원본에서 모든 변경 사항을 식별해야 합니다. 두 버전을 diff checker에 붙여넣으면 변경된 모든 구절이 빨간색과 초록색으로 강조됩니다. 인라인 뷰로 전환하면 문서를 순서대로 읽으면서 중요한 조항이 조용히 다시 표현되었는지 확인하기 쉬워집니다.
예상치 못한 테스트 실패 디버그
동료가 feature 브랜치를 merge한 후 개발자의 test suite가 실패하기 시작했습니다. 테스트 fixture에서 예상 출력 문자열을 Text A에, test runner에서 실제 출력을 Text B에 복사합니다. 문자 수준 diff에서 일반 텍스트 편집기에서는 보이지 않는 후행 개행 차이가 드러납니다. 수동으로는 훨씬 더 오래 걸렸을 빠른 수정입니다.
팁 및 모범 사례
문자 통계를 사용하여 변경 범위를 파악하세요. 액션 바 오른쪽의 초록 +N added와 빨간 -N removed 카운터는 줄이 아닌 문자를 측정합니다. 삽입에 비해 삭제 수가 많다면 콘텐츠가 추가된 것이 아니라 다시 작성되었음을 의미하는 경우가 많습니다. 전체 diff를 읽기 전의 빠른 신호가 됩니다.
인라인 뷰는 서술 텍스트에 더 적합합니다. 산문, 문서 또는 법적 텍스트를 비교할 때 인라인 뷰는 읽기 흐름을 유지합니다. 나란히 뷰는 줄 정렬이 중요한 코드에 더 적합합니다.
공백 문자도 중요합니다. diff 엔진은 공백과 탭을 의미 있는 문자로 처리합니다. 코드에서 예상치 못한 차이가 나타나면 편집기가 후행 공백을 추가했거나 들여쓰기를 탭에서 공백으로 변경했는지 확인하세요.
역방향 patch 생성을 위해 Swap을 사용하세요. 변경 사항을 되돌리려면 Swap을 클릭하여 Text A와 Text B를 반전시킵니다. 결과 diff는 "원본으로 돌아가려면 무엇을 변경해야 하는가"로 읽을 수 있습니다.
textarea 크기를 조절하세요. 두 입력 패널의 오른쪽 하단에 resize-y 핸들이 있습니다. 긴 문서의 스크롤을 줄이기 위해 아래로 드래그합니다.
일반적인 문제 및 문제 해결
"Diff 출력에서 모든 줄이 변경된 것으로 표시됩니다." 이는 보통 두 텍스트가 다른 줄 끝(CRLF vs LF)을 사용한다는 것을 의미합니다. Windows 애플리케이션은 종종 \r\n을 생성하고 Unix 도구는 \n을 생성합니다. 비교 전에 줄 끝을 정규화하는 일반 텍스트 편집기를 통해 텍스트를 붙여넣으세요.
"'Copy Diff' 버튼이 비활성화되어 있습니다." 버튼은 diffResult가 null이 아닐 때만 활성화됩니다. 즉, 두 텍스트 필드 중 적어도 하나에 콘텐츠가 있어야 합니다. 두 필드 모두에 텍스트를 붙여넣었는지 확인하세요.
"패널 간에 행 번호가 맞지 않는 것 같습니다." 이것은 예상되는 동작이며 버그가 아닙니다. 원본에서 줄이 삭제되거나 수정된 버전에 줄이 삽입되면 각 패널의 번호 매기기는 독립적으로 계산됩니다. 번호는 해당 버전의 문서 내 실제 줄 위치를 반영합니다.
"긴 줄이 출력 패널을 넘어섭니다." 출력은 매우 긴 줄을 처리하기 위해 whitespace-pre-wrap과 break-all을 사용합니다. 단일 줄이 여전히 보이는 영역을 넘어서는 것처럼 보이면 출력 패널 내에서 수평 스크롤을 사용하거나 인라인 뷰로 전환하세요.
"Diff가 예상치 못한 곳에서 단어를 분할하고 있습니다." diff_cleanupSemantic 단계는 사람이 읽기 쉬운 경계를 생성하기 위해 변경 사항을 그룹화하지만, 매우 짧은 단어나 반복되는 문자는 여전히 세분화된 분할을 생성할 수 있습니다. 이것은 diff 알고리즘의 특성이지 오류가 아닙니다.
개인 정보 보호 및 보안
모든 비교 처리는 diff-match-patch JavaScript 라이브러리를 사용하여 브라우저에서 로컬로 실행됩니다. Text A와 Text B 모두 어떤 시점에도 어떤 서버에도 전송되지 않습니다. 페이지가 로드되면 인터넷 연결 없이 작동합니다. 이는 소스 코드, 자격 증명 파일, 법적 문서, 의료 기록 또는 장치를 떠나서는 안 되는 기타 민감한 콘텐츠와 함께 사용하기에 안전합니다.
자주 묻는 질문
Diff Checker는 무료인가요? 네, 사용 제한 없이 완전 무료입니다. 도구의 어떤 부분을 사용하는 데도 계정, 구독 또는 결제가 필요하지 않습니다.
오프라인으로 작동하나요? 페이지가 로드되면 비교 엔진은 네트워크 요청 없이 브라우저에서 완전히 실행됩니다. 인터넷에서 연결을 끊고 중단 없이 텍스트 비교를 계속할 수 있습니다.
데이터가 안전한가요? 텍스트가 브라우저를 절대 떠나지 않습니다. diff는 JavaScript를 사용하여 브라우저 내에서 계산되므로 어떤 콘텐츠도 Glyph Widgets 서버나 제3자에게 전송되지 않습니다. 기밀 소스 코드, 계약서, 민감한 설정 파일에 안전합니다.
처리할 수 있는 최대 텍스트 크기는? 도구에 의해 적용되는 엄격한 제한은 없습니다. 브라우저 메모리가 실용적인 제약입니다. 수 메가바이트까지의 텍스트는 빠르게 비교됩니다. 매우 큰 파일(수십 메가바이트)은 장치에 따라 페이지가 느려질 수 있습니다.
코드 파일을 비교할 수 있나요? 네. 도구는 JavaScript, Python, SQL, HTML, CSS, JSON, YAML, Markdown 및 설정 파일을 포함한 모든 일반 텍스트 콘텐츠를 처리합니다. 언어별 파싱을 적용하지 않으며 모든 입력을 일반 텍스트로 처리합니다. 이는 모든 파일 유형에 걸쳐 문자 단위로 정확한 diff를 의미합니다.
나란히 뷰와 인라인 뷰의 차이는? 나란히 뷰는 Original을 왼쪽에, Modified를 오른쪽에 동시에 표시하여 해당 섹션을 한눈에 비교할 수 있습니다. 인라인 뷰는 변경 지점에서 삭제 및 삽입 세그먼트가 순차적으로 나타나는 단일 텍스트 스트림을 표시합니다. 인라인 뷰는 산문에 더 읽기 쉽고, 나란히 뷰는 코드에 더 쉽습니다.
"Copy Diff"는 어떤 형식을 생성하나요? 복사된 텍스트는 단순화된 unified diff 형식을 사용합니다: - 접두사 줄은 삭제, + 접두사 줄은 삽입, 변경 없는 줄은 공백 두 개로 시작합니다. 이 형식은 diff 뷰어, 문서 도구 및 patch 유틸리티와 광범위하게 호환됩니다.
다시 입력하지 않고 두 텍스트를 교환할 수 있나요? 액션 바의 "Swap" 버튼을 클릭하세요. Text A와 Text B의 콘텐츠를 즉시 교환합니다. Diff는 즉시 반전된 방향을 반영하도록 재계산됩니다.
이동된 블록을 감지하나요, 아니면 추가와 삭제만 감지하나요? diff-match-patch 알고리즘은 이동된 블록을 원래 위치에서의 삭제와 새 위치에서의 삽입으로 처리합니다. 전용 "이동" 감지 모드가 없습니다.
비교를 나중을 위해 저장할 수 있나요? 도구는 기본적으로 세션 간에 비교를 유지하지 않습니다. 프리미엄 서포터는 History 패널을 사용하여 이전 비교 입력을 자동으로 복원할 수 있습니다.
관련 도구
JSON Formatter — Diff Checker로 두 버전을 비교하기 전에 JSON을 형식화하고 검증합니다.
Text Diff — 산문 문서 및 작성된 콘텐츠 비교에 적합한 텍스트 중심 변형입니다.
JSON Formatter — 결과에서 공백 노이즈를 피하기 위해 diff 전에 JSON 서식을 정규화합니다.
지금 Diff Checker 사용해보기: Diff Checker