줄 단위로 비교한다는 뜻
이 도구는 두 텍스트를 줄로 쪼갠 뒤, 양쪽에 공통으로 남길 수 있는 가장 긴 줄 순서(최장 공통 부분 수열, LCS)를 찾고 거기에 끼지 못한 줄을 삭제(A에만 있음) 또는 추가(B에만 있음)로 표시합니다. git diff, 문서 비교 도구의 기본 원리와 같습니다. 한 줄 안에서 글자 한 개가 바뀌어도 그 줄 전체가 "삭제 + 추가" 한 쌍으로 표시되며, 글자 단위 하이라이트는 하지 않습니다. 비교는 브라우저 안에서만 이루어집니다.
LCS 방식의 한계
LCS는 "최소 변경"을 보장하지만 그 최소 해가 여러 개일 때 어느 것을 고를지는 알고리즘이 정합니다. 같은 줄이 반복되는 텍스트(빈 줄, 닫는 괄호만 있는 줄 등)에서는 사람이 보기에 어색한 짝이 맞춰질 수 있습니다. 예를 들어 함수 하나를 통째로 옮기면 "삭제 + 추가"로 나오지 "이동"으로 나오지 않습니다. 줄 순서를 바꾼 경우도 마찬가지입니다. 또한 메모리 때문에 두 텍스트의 줄 수 곱이 약 600만(예: 2,400줄 × 2,500줄)을 넘으면 비교하지 않습니다. 긴 문서는 장 단위로 나눠 넣는 편이 빠르고 결과도 읽기 쉽습니다.
무시 옵션을 언제 켜는가
공백 무시는 들여쓰기만 바뀐 코드, 탭과 공백이 섞인 설정 파일, 워드에서 복사하며 공백이 달라진 문서에 유용합니다. 줄 앞뒤 공백을 제거하고 연속 공백을 하나로 합친 뒤 비교하지만 화면에는 원래 줄을 그대로 보여줍니다. 단, 공백만 있는 줄과 빈 줄은 같은 줄로 취급됩니다. 대소문자 무시는 영문에만 의미가 있고 한글에는 영향이 없습니다.
줄바꿈 형식
Windows(CRLF)와 macOS·Linux(LF) 줄바꿈은 자동으로 통일해 비교하므로 줄 끝 문자 차이만으로 전체가 달라 보이는 일은 없습니다. 다만 전각 공백(U+3000)이나 줄바꿈 없는 공백(U+00A0)은 일반 공백과 다른 글자로 취급되어 공백 무시 옵션으로도 같아지지 않습니다.
자주 묻는 질문
글자 단위로 어디가 바뀌었는지도 볼 수 있나요?
현재는 줄 단위만 지원합니다. 한 줄 안의 변화는 그 줄이 삭제·추가 쌍으로 표시되므로 두 줄을 나란히 보고 찾아야 합니다.
같은 내용인데 차이가 있다고 나와요.
줄 끝 공백, 탭과 공백의 차이, 보이지 않는 유니코드 문자가 원인인 경우가 대부분입니다. 공백 차이 무시를 켜고 다시 비교해 보세요.
단락이 한 줄로 길게 이어진 문서는요?
줄바꿈이 없으면 단락 전체가 한 줄이라 작은 수정도 단락 전체가 바뀐 것으로 나옵니다. 문장마다 줄을 나눈 뒤 비교하면 훨씬 정밀하게 볼 수 있습니다.