텍스트 차이 비교기
두 텍스트를 행 단위로 비교하여 추가·삭제를 하이라이트로 표시합니다. LCS 알고리즘 채용. 무료, 브라우저에서 처리.
- 브라우저에서 처리
- 데이터가 브라우저 밖으로 나가지 않습니다
- 무료 · 회원가입 불필요
WeChat으로 스캔하여 공유
예시·자세한 설명·자주 묻는 질문 실제 출력이 있는 예시, 다른 도구와의 차이, 자주 묻는 질문.
텍스트 차이 비교에 대하여
차이 비교는 코드 리뷰, 문서 변경 추적, 설정 파일 비교 등에 유용합니다. git과 같은 버전 관리 시스템에서도 동일한 기능이 사용됩니다.
결과 읽는 법
‘통합 보기’는 두 텍스트의 모든 줄을 한 열에 나열합니다. 앞의 두 숫자 열은 원본과 수정본에서의 줄 번호입니다. -는 원본에만 있는 줄, +는 수정본에만 있는 줄이고, 표시가 없는 줄은 양쪽이 같습니다. 예를 들어
timeout = 30
retries = 3
와
timeout = 60
retries = 3
를 비교하면 - timeout = 30, + timeout = 60, 바뀌지 않은 retries = 3 순서로 나옵니다. ‘나란히 보기’는 연속된 변경 안에서 삭제된 줄과 추가된 줄을 순서대로 짝짓습니다(첫 번째 삭제와 첫 번째 추가, 두 번째끼리…, 남는 쪽은 빈칸). CR LF(Windows), LF, 단독 CR은 모두 줄바꿈으로 처리하므로 줄바꿈 문자만 다른 텍스트는 같다고 판정합니다. 브라우저 텍스트 상자도 붙여 넣은 CR LF를 LF로 바꿉니다(HTML 표준의 ‘줄바꿈 정규화’). 줄 끝 공백, 탭과 스페이스, 줄바꿈 없는 공백(U+00A0) 같은 보이지 않는 차이는 변경으로 셉니다.
제한 사항
- 줄 단위로만 비교합니다. 한 글자만 바뀌어도 줄 전체가 삭제와 추가로 표시되며, 단어나 문자 단위 강조는 없습니다.
- 무시 옵션이 없습니다. 공백과 대소문자 차이도 변경으로 봅니다.
- 앞뒤 문맥을 접지 않습니다. 바뀌지 않은 줄도 모두 표시되고
@@헝크 헤더가 없어서 패치 파일로는 쓸 수 없습니다. - 입력이 크면 시간이 걸리지만 페이지는 멈추지 않습니다. 비교는 Web Worker에서 실행되고 ‘취소’로 바로 중지됩니다. 모든 줄을 짝지은 표를 만들지 않고 점수를 몇 줄만 유지합니다. Node.js 22에서 10줄에 1줄을 바꾼 10,000줄짜리 파일 두 개를 비교하니 약 0.7초, 메모리 최고치는 약 31MB였습니다. 예전의 표 전체를 만드는 구현은 약 2.9초, 946MB였습니다. 브라우저에서는 백그라운드 스레드를 배정하는 방식에 따라 Worker 시간이 더 길어질 수 있습니다. 한 번에 100줄짜리 한 페이지만 그립니다.
큰 파일, 패치, 공백을 무시한 비교에는 명령줄을 쓰세요. diff -u a.txt b.txt는 unified 패치를 출력하고, diff -w는 공백을 무시하며, git diff --no-index a.txt b.txt는 저장소 밖의 파일도 비교하고, git diff --word-diff는 바뀐 단어를 강조합니다.
FAQ
어떤 알고리즘을 사용합니까?
LCS(최장 공통 부분 수열) 알고리즘을 사용합니다. 남는 행이 가장 많은 최소 변경점을 구합니다. git diff와 GNU diff는 기본으로 Myers 알고리즘을 써서 같은 종류의 최소 차이를 구하며, 두 텍스트가 비슷할수록 빨리 끝납니다. 길이가 같은 차이가 여러 개면 - 와 + 행의 순서가 git과 다를 수 있습니다.
코드 차이도 비교할 수 있습니까?
네. 일반 텍스트로 처리하므로 소스 코드·설정 파일·문서 등 임의의 텍스트를 비교할 수 있습니다.
데이터가 서버로 전송됩니까?
아니요. 모든 비교 처리는 브라우저 내에서 완전히 이루어집니다. 기밀 정보도 안전하게 처리할 수 있습니다.
큰 파일도 처리할 수 있습니까?
처리할 수 있습니다. 비교는 Web Worker에서 실행되어 페이지가 멈추지 않고, '취소'로 언제든 중지할 수 있습니다. 계산량이 O(n×m)이라 수만 줄끼리는 시간이 걸립니다. 결과는 한 페이지에 100줄씩 보여 줍니다.