텍스트 차이(Diff) 비교
두 텍스트 블록을 줄 단위로 비교하여 추가된 줄과 삭제된 줄을 색으로 구분해 보여주는 도구입니다. 설정 파일 변경 확인, 문서 교정, Git 없이 하는 코드 리뷰 등에 활용할 수 있습니다. 비교 계산은 모두 브라우저 안에서 처리되며 입력한 내용은 서버로 전송되지 않습니다.
팁
- 설정 파일(.env, YAML, JSON 등)의 변경 전후 내용을 붙여넣기만 하면 어떤 줄이 추가·삭제되었는지 한눈에 확인할 수 있습니다.
- Git이 설치되어 있지 않은 환경에서도 두 버전을 복사해 붙여넣기만 하면 간단한 코드 리뷰나 문서 교정이 가능합니다.
- 줄의 위치만 바뀐 경우는 "이동"이 아니라 삭제+추가로 감지됩니다. 같은 내용의 줄이 다른 위치로 옮겨졌을 뿐이어도 차이로 표시된다는 점에 유의하세요.
- 공백, 줄바꿈, 대소문자 차이까지 한 글자 단위로 엄격하게 비교되므로 들여쓰기만 바뀐 줄도 "변경됨"으로 감지됩니다.
- 긴 문장을 비교할 때는 문단마다 한 줄로 정리한 뒤 붙여넣으면 문단 단위로 차이를 한눈에 보기 쉬워집니다.
자주 묻는 질문
여담 ― LCS(최장 공통 부분열)로 차이를 구하는 원리
두 텍스트의 차이를 감지하는 알고리즘으로는 1970년대 IBM의 컴퓨터 과학자 유진 마이어스(Eugene Myers)가 발표한 "마이어스 차이 알고리즘"이 널리 알려져 있습니다. Git이나 SVN 같은 주요 버전 관리 시스템의 `diff` 명령어는 이 계열의 알고리즘을 채택하고 있으며, 줄 단위의 추가·삭제를 효율적으로 감지합니다. 이 도구도 같은 발상을 바탕으로 최장 공통 부분열(LCS)을 구해 변경 사항을 최소한으로 좁혀냅니다.
최장 공통 부분열(LCS)이란 두 수열(여기서는 줄의 나열) 양쪽에 순서대로 공통으로 나타나는 부분열 중 가장 긴 것을 말합니다. 두 텍스트의 차이는 이 LCS에 포함되지 않는 줄을 "삭제" 또는 "추가"로 간주해 구하며, LCS가 길수록 화면에 표시되는 변경 사항은 줄어듭니다. 동적 계획법(DP)이라는 알고리즘 기법을 사용하면 줄 수가 많은 텍스트라도 현실적인 시간 안에 계산할 수 있습니다.
diff 알고리즘에는 약점도 있습니다. 어떤 줄이 단순히 다른 위치로 이동했을 뿐인 경우, 대부분의 구현은 이를 "이동"으로 감지하지 않고 "삭제"와 "추가"의 조합으로 표시합니다. 줄 순서가 크게 뒤바뀐 텍스트를 비교하면 실제 변경량보다 차이가 더 많아 보이는 것은 이 때문입니다. 이런 특성을 알아두면 차이 결과를 읽을 때 오해가 줄어듭니다.