Toolify

텍스트 Diff 도구 (행 수준 비교, 색상 구분)

원본과 수정 버전 붙여넣어 사이드 바이 사이드 행 수준 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 도구 사용.

관련 도구

최종 업데이트: