utilduck
Home · 개발자 · 텍스트 비교 도구

텍스트 비교 도구

아래에 텍스트 두 버전을 붙여넣으면 추가·삭제된 줄이 강조 표시됩니다.

추가됨0
삭제됨0

이 diff 도구 안내

이 도구는 최장 공통 부분열(LCS) 알고리즘으로 두 텍스트를 줄 단위로 비교합니다. 버전 관리 diff 도구가 쓰는 것과 같은 원리로, 텍스트 A를 텍스트 B로 바꾸는 데 필요한 최소한의 추가·삭제 줄 집합을 찾습니다.

텍스트 B에만 있는 줄은 추가로, 텍스트 A에만 있는 줄은 삭제로 표시되며, 양쪽에 완전히 일치하는 줄은 표시되지 않습니다. 이 도구는 줄 전체를 비교하며 줄 안의 개별 글자는 비교하지 않습니다.

줄 단위 텍스트 diff는 어떻게 동작하나요?

이 도구는 두 텍스트를 줄 단위로 나눈 뒤, 두 텍스트에 공통으로 존재하는 줄의 최장 공통 부분열(LCS) — 두 텍스트 모두에 같은 순서로 나타나는 가장 긴 줄 시퀀스 — 을 찾습니다. 이 공통 시퀀스에 속하지 않는 텍스트 A의 줄은 삭제로, 텍스트 B의 줄은 추가로 표시됩니다. 예: 문장 안 단어 하나만 바꿔도 해당 줄 전체가 삭제 한 줄·추가 한 줄로 표시됩니다.

두 텍스트 비교 단계

  1. 텍스트 A 칸에 원본 텍스트를 붙여넣거나 입력합니다.
  2. 텍스트 B 칸에 수정된 텍스트를 붙여넣거나 입력합니다.
  3. 입력하는 즉시 두 텍스트가 줄 단위로 나뉘어 자동으로 비교됩니다.
  4. 텍스트 B에만 있는 줄은 추가로 강조 표시되고, 텍스트 A에만 있는 줄은 삭제로 강조 표시됩니다.
  5. 순서를 반대로 붙여넣었다면 바꾸기 버튼으로 어느 쪽을 원본으로 볼지 뒤집을 수 있습니다.

LCS diff 알고리즘이 변경 사항을 판단하는 방식

공통 줄 = 최장 공통 부분열(텍스트 A 줄, 텍스트 B 줄) · 삭제 = 공통 시퀀스에 없는 A의 줄 · 추가 = 공통 시퀀스에 없는 B의 줄
  • 최장 공통 부분열(LCS) = 두 텍스트 모두에 상대적으로 같은 순서로 나타나는(연속일 필요는 없는) 가장 긴 줄 시퀀스
  • 줄 단위 diff = 줄 전체 단위로 비교하는 방식. 긴 줄 안에서 글자 하나만 바뀌어도 그 줄 전체가 변경으로 표시됩니다

줄 비교 예시

텍스트 A 줄텍스트 B 줄결과
빠른 갈색 여우가빠른 갈색 여우가변경 없음
게으른 개를 뛰어넘는다.졸린 개를 뛰어넘는다.삭제 1줄 + 추가 1줄
(없음)새 줄이 여기 삽입됐습니다.추가 1줄
이 줄은 삭제됐습니다.(없음)삭제 1줄

자주 묻는 질문

단어 하나만 바꿨는데 왜 줄 전체가 변경으로 표시되나요?

이 도구는 글자 단위가 아니라 줄 단위로 비교합니다. 두 줄 사이에 글자 하나라도 다르면 서로 다른 줄로 취급해, 바뀐 단어만 강조하는 대신 이전 버전은 삭제로, 새 버전은 추가로 표시합니다.

줄 순서만 바뀌었는데 왜 추가·삭제로 동시에 표시되나요?

줄이 주변 줄과의 상대적 위치를 벗어나 다른 곳으로 옮겨지면, 새 위치에서는 최장 공통 부분열에 포함되지 않을 수 있습니다. 그러면 텍스트 내용 자체는 그대로여도 예전 위치에서는 삭제 줄로, 새 위치에서는 추가 줄로 나타날 수 있습니다.

공백이나 대소문자 차이는 무시하나요?

아니요. 줄은 정확히 일치하는지로 비교하므로 앞뒤 공백이나 대소문자 차이만 있어도 겉보기에 같아 보이는 두 줄이 서로 다른 줄로 처리됩니다.

비교를 위해 제 텍스트가 어딘가로 업로드되나요?

아니요. 두 텍스트 칸의 비교는 모두 브라우저에서 실행되는 자바스크립트로 처리되며 서버로 전송되지 않습니다.

이 도구는 줄 단위 diff만 수행하며 변경된 줄 안에서 구체적으로 어떤 글자·단어가 바뀌었는지는 강조하지 않습니다. 수천 줄에 이르는 매우 긴 텍스트는 알고리즘 특성상 비교 속도가 느려질 수 있습니다.