텍스트 비교
원본과 수정본을 줄 단위로 비교해 추가·삭제·변경 부분을 색으로 표시해요.
이럴 때 쓰세요
이렇게 사용하세요
결과가 예상과 다를 때
결과가 잘려 보여요
전체 결과는 복사 버튼으로 받을 수 있어요.
입력한 내용이 사라졌어요
이 기기에 자동 저장돼요. 브라우저 저장소를 지우면 함께 사라져요.
자주 하는 실수
- 줄 끝 공백이나 탭과 스페이스 차이만 있어도 변경으로 잡힙니다. 계약서나 코드 비교에서는 공백을 무시하는 옵션을 켜야 실제 조항 변경만 보입니다.
- 줄 순서가 바뀌면 같은 내용도 서로 다른 줄로 짝지어집니다. 문서를 편집하며 문단을 옮긴 경우에는 위치 기준으로만 보면 전부 변경으로 보입니다.
- 윈도우에서 저장한 파일은 줄바꿈이 캐리지 리턴과 줄바꿈 두 글자입니다. 리눅스 파일과 비교하면 모든 줄이 변경으로 잡히므로 줄바꿈 형식을 먼저 맞춥니다.
- 마지막 줄에 줄바꿈이 없을 때만 제거 표시가 하나 붙습니다. 내용은 같은데 한 줄이 사라진 것처럼 보여 오해를 사니 줄 끝 개행을 맞추고 비교하세요.
계산 근거
비교 알고리즘의 출발점은 Myers의 차이 알고리즘(1986년 ACM PODS 발표)으로, 두 문서에서 공통 부분 수열을 찾아 삭제와 추가로 쪼갭니다. 시간 복잡도는 문서 줄 수 N과 변경 줄 수 D에 대해 O(ND)입니다. 실제 구현은 줄을 해시로 묶어 같은 줄을 빠르게 대응시키고, 줄 안에서는 다시 글자 단위 차이를 계산해 굵게 표시합니다.
실제로 계산해 보면
100줄 문서에서 3줄을 고치고 2줄을 추가했다면 결과는?
변경 3줄, 추가 2줄로 나옵니다. 수정과 삭제가 서로 짝을 이루지 않으면 수정·삭제·추가가 따로 세어지므로, 실제로 다섯 줄이 손봤더라도 표시 숫자는 더 커질 수 있습니다.
두 문서가 완전히 같으면 얼마나 빨리 끝나나요?
변경 줄 수 D가 0이므로 O(ND)는 0에 수렴하고, 해시 비교만 하는 선형 검사로 끝납니다. 수천 줄짜리 파일도 거의 즉시 결과가 나옵니다.
공백만 다른 두 줄은 어떻게 판단하나요?
글자 위치를 맞춰 비교하되 공백을 건너뛰면 '가 나 다'와 '가나다'가 같은 줄로 묶입니다. 다만 공백이 의미를 갖는 코드 본문에서는 이 옵션이 오히려 오탐을 줄입니다.
더 궁금한 것
파일 전체가 변경으로 표시되는데 왜 그런가요?
줄바꿈 형식이나 인코딩이 달라 바이트 단위로 전부 다르게 읽힌 경우입니다. 첫 줄과 마지막 줄만 따로 비교해도 현상이 드러나니, 인코딩을 UTF-8로 맞춰 저장한 뒤 다시 비교하세요.
한 줄로 쭉 이어진 문서는 어떻게 나누나요?
문단 구분이나 문장 종결부호를 기준으로 줄을 나눈 사본을 만들어 비교하는 편이 읽기 좋습니다. 결과는 원문 기준으로 다시 합치고, 줄바꿈을 지운 채 붙여 넣으면 의미가 달라질 수 있으니 주의하세요.
수정과 추가를 한 묶음으로 보여줄 수 있나요?
양쪽 줄의 변경된 단어 수가 비슷하면 서로 대응시켜 수정으로 묶을 수 있습니다. 순서가 완전히 뒤바뀐 문장끼리는 묶이지 않고 따로 표시되는 것이 자연스러운 동작입니다.
알아둘 경계값
- 같은 줄 번호끼리만 대조해요. 순서가 바뀌면 내용이 같아도 삭제·추가로 나와 이동·수정을 구분할 수 없어요.
- 공백 무시 옵션은 모든 공백을 지우고 비교해요. 들여쓰기 차이까지 사라져 코드 변경이 가려질 수 있어요.
- 한쪽에만 있는 줄은 전부 변경으로 세어져요. 고친 줄과 늘어난 줄이 따로 잡혀 크게 나와요.
- 줄바꿈 방식이 다르면 모든 줄이 달라 보여요. 캐리지 리턴 포함 파일은 전체가 변경으로 나와요.
- 빈 줄도 한 줄로 세어요. 끝 빈 줄 하나 차이로 변경 수가 1 늘어나니 개행을 먼저 맞추세요.
- 줄 안의 바뀐 글자는 표시되지 않아요. 줄 단위 배경색만 바뀌니 긴 줄은 바뀐 위치를 직접 찾아야 해요.
결과를 믿기 전 확인 목록
- 두 텍스트의 줄바꿈 방식을 통일하세요. 메모장과 리눅스 파일을 섞으면 전체가 변경으로 나와요.
- 문단 이동이 있으면 이동 전후를 별도로 비교하세요. 순서가 바뀌면 진짜 수정까지 묻혀요.
- 코드 비교라면 공백 무시 옵션을 끄세요. 켜면 들여쓰기 변경이 사라져 리뷰를 놓칠 수 있어요.
- 맨 끝 줄 개행 유무를 양쪽 동일하게 맞추세요. 개행 하나 차이로 마지막 줄이 변경으로 잡혀요.
- 긴 한 줄 문서는 문장 단위로 나눈 사본으로 비교하세요. 한 줄 전체가 변경으로 나와 위치를 몰라요.
- 변경 수가 예상보다 크면 빈 줄·공백 줄을 먼저 지우세요. 내용 없는 줄이 수를 부풀려요.
- 탭·공백 섞인 줄은 공백 무시 옵션으로 한 번 더 보세요. 들여쓰기 차이만으로 잡힐 수 있어요.
- 대소문자만 다른 줄도 변경으로 잡혀요. 표기 통일이 목적이 아니면 미리 소문자로 맞추세요.
- 결과 저장은 화면을 복사해 두세요. 새로고침하면 입력·결과가 함께 사라져 다시 붙여야 해요.
자주 묻는 질문
줄 단위로만 비교되나요?
MVP는 줄 단위 비교이며, 변경된 줄 내 글자 차이도 굵게 표시합니다.
단어 단위로도 비교되나요?
줄 단위로 비교하며, 같은 줄 안에서 글자가 달라지면 그 줄 전체를 변경으로 표시해요. 공백 차이만 무시하려면 옵션을 켜세요.