텍스트 Diff 도구 (행 수준 비교, 색상 구분)
원본과 수정 버전 붙여넣어 사이드 바이 사이드 행 수준 diff 보기. 문서, 구성, 코드 리뷰, 산문 편집에 유용.
작동 방식
Diff 계산 방식
최장 공통 부분 수열(LCS) 알고리즘 사용해 두 버전 간 공유되는 행 찾기. 둘 다에 나타나는 행은 '변경 없음'. 원본에만 있는 행은 '제거'. 수정 버전에만 있는 행은 '추가'. 결과는 양쪽에 행 번호 보존된 명확한 주석 비교.
LCS는 git과 대부분 diff 도구가 사용하는 표준 접근. 가능한 가장 긴 일치 시퀀스 선택, 보통 사람이 '같은 단락'이라고 부를 것과 일치. 매우 큰 입력(10,000+ 행)에는 런타임 이차 성장; 큰 로그 비교 필요하면 스트리밍 diff 도구 사용.
이것이 좋은 곳
문서 수정: 초안 간 정확히 변경된 것 보기. 법적 계약, 서비스 약관, '무엇이 변경?'이 중요한 모든 텍스트에 유용.
구성 파일: 두 .env 또는 YAML 파일 비교해 잘못된 구성 발견. 또는 두 버전 배포 스크립트.
산문 편집: 작가가 컨텍스트의 편집자 수정 보기, 특히 몇 행만 변경되었을 때.
코드 리뷰(가벼운 사용): 작은 스니펫에. 실제 코드 리뷰는 구문 이해 도구 사용 — 시맨틱 플래그 있는 git diff나 전용 리뷰 도구가 더 좋은 결과.
한계
행 단위로 diff. 한 행에 'cat'을 'cats'로 변경하면 전체 행이 제거 후 추가로 표시; 삽입된 's' 강조 안 함. 단어 수준과 문자 수준 diff가 그것에 유용하지만 긴 행에서 읽기 어려움.
후행 공백 유의미 — 'foo'와 'foo '(후행 공백)는 다른 행으로 카운트. 공백 무관 비교 원하면 붙여넣기 전 텍스트 정규화.
순서 중요. 다른 위치의 두 단락은 둘 다 제거와 추가로 카운트. Diff는 '이동된' 블록 감지 시도 안 함.
자주 묻는 질문
›단어 수준 diff 지원?
아직 — 행 수준만. 짧은 비교에 문자나 단어 단위 나중에 추가 가능.
›텍스트 얼마나 클 수 있나?
측당 실용적으로 몇천 행까지. 이차 복잡도 의미는 매우 큰 입력은 잠시 브라우저 탭 멈출 수 있음.
›데이터가 전송되나요?
전송되지 않습니다. Diffing 완전히 로컬 실행.
›후행 공백 유의미?
네. 후행 공백만 다른 두 행은 다른 것으로 카운트. 공백 무관 일치 원하면 붙여넣기 전 공백 정규화.
›Diff 저장 가능?
저장 파일로 안 됨. 지금은 렌더링된 텍스트 복사 붙여넣기 또는 스크린샷.
›git diff와 같은 알고리즘?
개념적으로 네 — git의 옵션 중 하나인 LCS 사용. Git은 비슷하지만 더 정교한 알고리즘 기본(Myers diff에 Patience 옵트인). 짧은 입력 출력은 본질적으로 동일.
›왜 한 단어만 변경되었는데 전체 행 표시?
행 단위 작업하기 때문. 문자 수준 diff가 변경된 단어 강조하지만 긴 행에서 읽기 어려움.
›두 버전 이상 비교?
이 도구에서 안 됨. 다중 방향 병합은 전용 3-way diff 도구 사용.
관련 도구
최종 업데이트: