about.md

TextDiff 텍스트 비교기 소개

TextDiff 는 두 텍스트의 차이를 찾아 주는 무료 온라인 diff 도구입니다. 문서 초안과 수정안, 계약서의 발송본과 회신본, 코드의 이전 버전과 새 버전처럼 비슷하지만 조금 다른 두 글을 나란히 놓고, 어느 줄이 추가·삭제·수정됐는지와 줄 안에서 정확히 어느 단어나 글자가 바뀌었는지를 색으로 표시합니다.

비교는 모두 브라우저 안에서 이루어집니다. 입력한 텍스트와 불러온 파일은 서버로 전송되지 않으므로 사내 문서나 계약서처럼 외부에 보내기 어려운 내용도 비교할 수 있습니다. 계산은 Web Worker 에서 돌아가기 때문에 수만 줄짜리 입력을 넣어도 화면이 멈추지 않습니다.

텍스트 비교하러 가기

주요 기능

줄 + 줄 안 하이라이트

바뀐 줄을 찾은 뒤 그 줄 안에서 단어·어절·글자 단위로 바뀐 부분만 한 번 더 강조합니다.

분할·통합 보기

좌우 분할(side-by-side) 보기와 git 처럼 위아래로 읽는 통합(unified) 보기를 전환합니다.

무시 옵션

줄 끝 공백, 공백의 양, 모든 공백, 대소문자, 빈 줄을 무시하고 비교할 수 있습니다.

줄 끝 정규화

Windows(CRLF)와 macOS·Linux(LF)의 줄바꿈 차이, 마지막 줄바꿈 유무를 같은 것으로 봅니다.

JSON 키 정렬 비교

두 JSON 을 파싱해 객체 키를 정렬하고 들여쓰기를 맞춘 다음 비교합니다. 키 순서만 다른 경우는 차이로 잡지 않습니다.

변경 통계와 탐색

추가·삭제·수정 줄 수와 유사도(%)를 보여 주고, 이전/다음 변경으로 바로 이동합니다.

변경만 보기

바뀌지 않은 긴 구간을 접고 변경 주변 3줄만 남깁니다. 접힌 구간은 눌러서 펼칠 수 있습니다.

파일 드래그

.txt, .md, .json, .csv 와 여러 코드 파일을 칸에 끌어다 놓거나 두 파일을 한 번에 놓아 바로 비교합니다.

patch·HTML 내보내기

결과를 unified diff(patch) 텍스트로 복사·저장하거나, 색이 입혀진 HTML 표로 복사해 메일·문서에 붙여 넣습니다.

사용법

  1. 왼쪽 칸(원본)에 기준이 되는 텍스트를, 오른쪽 칸(변경본)에 비교할 텍스트를 붙여 넣습니다. 파일을 칸에 끌어다 놓거나 칸 위의 열기 버튼을 써도 됩니다.
  2. '입력 즉시 비교'가 켜져 있으면 입력을 멈추는 순간 결과가 나옵니다. 꺼져 있으면 [비교하기] 또는 Ctrl+Enter 를 누릅니다.
  3. 필요하면 공백·대소문자·빈 줄 무시, 줄 안 비교 단위(단어/어절/글자), JSON 키 정렬을 고릅니다. 옵션을 바꾸면 바로 다시 비교합니다.
  4. 결과 막대에서 분할/통합 보기를 고르고, 위·아래 화살표 버튼(또는 Alt+↑/↓)으로 변경 사이를 이동합니다.
  5. 공유가 필요하면 patch 를 복사·저장하거나 HTML 로 복사합니다.

비교 옵션 설명

공백: 그대로 비교공백과 탭을 글자와 똑같이 취급합니다. 들여쓰기 하나만 달라도 다른 줄입니다.
공백: 줄 끝 공백 무시줄 끝에 남은 공백·탭만 무시합니다. 편집기가 자동으로 지우거나 남긴 공백 때문에 생기는 차이를 걸러 냅니다. (GNU diff 의 -Z 와 비슷)
공백: 공백 양 무시공백이 한 칸이든 여러 칸이든 같은 것으로 봅니다. 단, 공백이 있는 곳과 없는 곳은 여전히 다릅니다. 'a b' 와 'a b' 는 같고 'a b' 와 'ab' 는 다릅니다. (diff -b)
공백: 모든 공백 무시공백을 전부 지우고 비교합니다. 'a b' 와 'ab' 도 같은 줄로 봅니다. (diff -w)
줄 안 비교: 단어글자·숫자 묶음과 기호를 단위로 바뀐 부분을 표시합니다. 코드와 영문에 알맞습니다.
줄 안 비교: 어절띄어쓰기로 나뉜 덩어리를 단위로 표시합니다. 조사가 붙는 한국어 문장을 읽기 좋습니다.
줄 안 비교: 글자한 글자씩 비교합니다. 금액·날짜·조항 번호처럼 한두 글자만 바뀐 곳을 정확히 짚을 때 씁니다.
대소문자 무시영문 대문자와 소문자를 같은 글자로 봅니다.
빈 줄 무시비어 있거나 공백만 있는 줄을 비교에서 뺍니다. 빈 줄은 흐린 색으로 표시되고 변경 수에 들어가지 않습니다. (diff -B 와 비슷)
줄 끝 정규화CRLF·CR·LF 를 모두 같은 줄바꿈으로 보고 파일 끝 줄바꿈 유무도 무시합니다. 끄면 줄 끝의 CR 은 ␍ 로, 마지막 줄바꿈이 없는 줄은 ∅ 로 표시됩니다.
JSON 키 정렬양쪽을 JSON 으로 파싱해 객체 키를 사전순으로 정렬하고 2칸 들여쓰기로 다시 쓴 뒤 비교합니다. 배열 순서는 바꾸지 않습니다. 파싱에 실패하면 오류 위치를 알려 줍니다.

줄 끝 문자(CRLF 등)의 차이는 파일로 불러온 텍스트에서만 정확히 비교됩니다. 입력 칸에 붙여 넣은 텍스트는 브라우저가 줄바꿈을 LF 로 바꾸므로 CR 차이가 드러나지 않습니다.

단축키

Ctrl+Enter / ⌘+Enter지금 비교하기
Alt+↓ / Alt+↑다음 / 이전 변경으로 이동
n / p (입력 칸 밖에서)다음 / 이전 변경으로 이동
Tab (입력 칸 안에서)탭 문자 입력

입력 내용은 어디로도 전송되지 않습니다

비교 엔진은 이 페이지와 함께 내려받은 자바스크립트(diff-core.js)이며, 텍스트와 파일은 브라우저 메모리에서만 처리됩니다. 입력 내용은 저장하지 않고, 브라우저에는 테마와 옵션 선택만 기억합니다. 페이지를 닫으면 입력 내용은 사라집니다.

자주 묻는 질문

비교할 텍스트가 서버에 저장되나요?

아니요. 비교는 브라우저 안의 자바스크립트로만 이루어지고 입력 내용은 어떤 서버로도 전송되지 않습니다. 네트워크를 끊은 상태에서도 이미 열린 페이지에서는 비교가 됩니다.

얼마나 큰 텍스트까지 비교할 수 있나요?

파일 하나는 30MB 까지 불러올 수 있고, 수만 줄 규모의 비교도 별도 스레드(Web Worker)에서 처리해 화면이 멈추지 않습니다. 차이가 아주 많으면 속도를 위해 최소가 아닌 근사 결과를 낼 수 있습니다. 결과가 4,000줄을 넘으면 변경된 부분만 먼저 보여 줍니다.

어떤 알고리즘을 쓰나요?

줄 단위 비교에 Myers(1986)의 O(ND) 차분 알고리즘을 선형 공간 방식으로 구현해 씁니다. 비용이 지나치게 커지면 GNU diff 처럼 근사 분할로 전환합니다. 바뀐 줄 안에서는 같은 알고리즘으로 단어·어절·글자를 다시 비교합니다.

'수정'과 '추가·삭제'는 어떻게 구분하나요?

변경된 구간 안에서 삭제된 줄과 추가된 줄의 내용이 충분히 비슷하면 한 줄이 고쳐진 것으로 짝지어 '수정'으로 셉니다. 짝이 맞지 않는 줄은 '추가' 또는 '삭제'로 셉니다.

유사도(%)는 어떻게 계산하나요?

양쪽 전체 글자 수(줄바꿈 포함) 가운데 변하지 않은 글자의 비율입니다. 같은 줄은 전부, 수정된 줄은 줄 안에서 같게 남은 부분만 같은 글자로 셉니다.

공백 양 무시와 모든 공백 무시는 무엇이 다른가요?

공백 양 무시는 공백이 몇 칸인지만 무시하므로 'a b' 와 'ab' 를 다르게 봅니다. 모든 공백 무시는 공백을 전부 지우고 비교하므로 둘을 같게 봅니다. 파이썬처럼 들여쓰기가 의미 있는 코드에서는 모든 공백 무시를 조심해서 쓰세요.

무시 옵션을 켜고 만든 patch 를 적용할 수 있나요?

patch 는 화면에 보이는 차이를 기준으로 만들어지고 문맥 줄은 원본에서 가져옵니다. 무시 옵션을 켜면 무시된 차이는 patch 에 들어가지 않으므로, 파일을 정확히 똑같이 만들려면 옵션을 모두 끄고 patch 를 만드세요.

Word, 한글(HWP), PDF 문서도 비교할 수 있나요?

파일 그대로는 읽지 못합니다. 문서에서 텍스트를 복사해 붙여 넣으면 비교할 수 있습니다. 이때 표·각주·서식은 빠질 수 있습니다. 자세한 요령은 문서 비교 가이드를 참고하세요.

휴대폰에서도 쓸 수 있나요?

네. 좁은 화면에서는 입력 칸이 위아래로 쌓이고 결과는 통합 보기로 시작합니다. 분할 보기로 바꿀 수도 있습니다.

가이드