텍스트 Diff 비교/ 줄 단위 차이
두 텍스트의 줄 단위 차이를 하이라이트합니다. 코드와 일반 텍스트 지원, 컨텍스트 줄 수 조절 가능, 로컬 처리.
원본A
수정 후B
컨텍스트
Diff
위의 두 패널에 텍스트를 붙여넣으세요.
이 도구가 도움이 되었나요?
텍스트 Diff 도구란
텍스트 Diff 도구는 LCS(최장 공통 부분 수열) 알고리즘을 사용하여 두 텍스트를 줄 단위로 비교하고 추가, 삭제, 수정을 식별합니다.
Diff 도구의 일반적인 사용 사례
코드 리뷰: 변경 전후 코드를 비교하여 수정 위치 파악. 설정 관리: 서로 다른 환경 간 설정 차이 비교. 문서 공동 편집: 편집 기록 확인. 데이터 마이그레이션: 데이터 변환 정확성 검증.
코드 예제
JavaScript (jsdiff)
import { diffLines } from 'diff';
const a = 'foo\nbar\nbaz';
const b = 'foo\nqux\nbaz';
diffLines(a, b).forEach(part => {
const sign = part.added ? '+' :
part.removed ? '-' : ' ';
process.stdout.write(sign + part.value);
});Python
import difflib
a = ['foo\n', 'bar\n', 'baz\n']
b = ['foo\n', 'qux\n', 'baz\n']
# Unified diff (like git diff)
diff = difflib.unified_diff(
a, b,
fromfile='original',
tofile='modified',
n=3, # context lines
)
print(''.join(diff))Go
// github.com/sergi/go-diff
import (
dmp "github.com/sergi/go-diff/
diffmatchpatch"
)
d := dmp.New()
diffs := d.DiffMain(textA, textB, false)
patch := d.PatchMake(textA, diffs)
fmt.Println(d.PatchToText(patch))Shell / CLI
# Unified diff with 3 context lines diff -U 3 original.txt modified.txt # Git-style diff (no git repo needed) git diff --no-index \ original.txt modified.txt # Side-by-side view diff --side-by-side \ original.txt modified.txt
자주 묻는 질문
Diff 알고리즘은 어떻게 작동하나요?
LCS(최장 공통 부분 수열) 알고리즘을 사용하여 텍스트를 줄 단위로 비교하고, 최소의 추가/삭제 세트를 찾습니다. git diff에서 사용되는 알고리즘과 유사합니다.
컨텍스트 줄 수의 역할은?
각 변경 섹션 주변에 표시할 변경되지 않은 줄의 수를 제어합니다. 0으로 설정하면 변경된 줄만, 3으로 설정하면 변경 전후로 각각 3줄씩, '전체'로 설정하면 전체 텍스트를 표시합니다.
어떤 유형의 텍스트가 지원되나요?
코드(JavaScript, Python, Go 등), 설정 파일(JSON, YAML, TOML), Markdown 문서, 로그 파일 등 모든 일반 텍스트가 지원됩니다.
콘텐츠가 서버에 전송되나요?
아니요. 모든 처리가 브라우저에서 완전히 수행됩니다. 콘텐츠가 기기를 떠나지 않으므로 민감한 코드나 설정 비교에 안전합니다.
Diff 출력을 어떻게 복사하나요?
Diff 패널의 오른쪽 위에 있는 '복사' 버튼을 클릭하면 통일된 형식의 Diff 텍스트가 클립보드에 복사됩니다.
교체 버튼의 용도는?
교체 A↔B를 클릭하면 원본과 수정된 텍스트가 교환되어 반대 방향에서 차이를 확인할 수 있습니다.