텍스트 비교 (Diff)
두 텍스트의 차이점을 비교합니다. 추가, 삭제, 변경된 줄을 색상으로 구분하여 한눈에 확인할 수 있습니다.
텍스트 비교(Diff Checker) 가이드
텍스트 비교 도구란?
텍스트 비교(Diff) 도구는 두 개의 텍스트를 나란히 놓고 차이점을 줄 단위로 찾아 시각적으로 표시해주는 유틸리티입니다. 소프트웨어 개발에서는 코드 리뷰나 브랜치 병합 전 변경사항을 확인하는 데 필수적으로 쓰이고, 일반 업무에서도 계약서 수정본 대조, 원고 교정 확인, 설정 파일 버전 비교 등 다양한 상황에서 활용됩니다. 추가된 줄은 녹색, 삭제된 줄은 빨간색, 변경된 줄은 노란색으로 하이라이트되어, 수백 줄짜리 텍스트에서도 어디가 어떻게 바뀌었는지 한눈에 파악할 수 있습니다. 텍스트 비교 기술의 역사는 1970년대 유닉스의 diff 유틸리티까지 거슬러 올라갑니다. Hunt-McIlroy 알고리즘과 이후 Eugene Myers가 발표한 O(ND) 차이 알고리즘이 현대 대부분의 diff 도구의 기반이 되었습니다. Git, SVN 같은 버전 관리 시스템은 물론, GitHub의 Pull Request 리뷰 화면도 이 알고리즘을 활용합니다. 이 온라인 도구는 별도의 소프트웨어 설치 없이 브라우저에서 바로 텍스트를 비교할 수 있어, 개발 환경이 갖춰지지 않은 상황에서도 편리하게 사용할 수 있습니다.
어디에 쓰면 좋은가
코드 비교는 보통 Git이 해주므로, 이 도구가 빛나는 자리는 버전 관리 밖에 있는 텍스트입니다.
- 설정 파일 비교 — 개발 서버와 운영 서버의 설정이 어디서 갈라졌는지 찾을 때. 장애 원인이 여기서 드러나는 경우가 많습니다.
- 계약서와 문서 — 수정본을 받았는데 어디가 바뀌었는지 알려주지 않을 때 원본과 나란히 놓고 확인합니다.
- API 응답 비교 — 같은 요청의 어제 응답과 오늘 응답이 어떻게 다른지 볼 때.
- 번역 검수 — 원문 수정본과 이전 버전을 비교해 어느 문장을 다시 번역해야 하는지 추립니다.
차이가 없는데 다르다고 나올 때
눈으로는 같아 보이는데 다르다고 표시되는 경우가 있습니다. 원인은 대개 보이지 않는 문자입니다.
가장 흔한 것이 줄바꿈 형식입니다. 윈도우에서 만든 파일과 맥에서 만든 파일은 줄 끝 문자가 달라 모든 줄이 다르게 표시됩니다. 그다음이 줄 끝 공백과 탭 대 공백입니다. 에디터 설정이 다른 두 사람이 같은 파일을 만지면 이런 차이가 쌓입니다.
모든 줄이 변경으로 표시된다면 내용이 아니라 형식 문제일 가능성이 높습니다. 줄바꿈 변환 도구로 양쪽을 같은 형식으로 맞춘 뒤 다시 비교해 보세요.
결과를 읽는 요령
한 줄에서 한 글자만 바뀌어도 그 줄 전체가 삭제되고 새로 추가된 것으로 표시됩니다. 줄 단위로 비교하기 때문입니다. 긴 문단이 한 줄로 되어 있으면 어디가 바뀌었는지 알아보기 어렵습니다.
이럴 때는 비교 전에 문장 단위로 줄을 나눠 두면 결과가 훨씬 읽기 쉬워집니다. 마침표 뒤에 줄바꿈을 넣는 정도로도 충분합니다.
자주 묻는 질문
순서가 바뀐 것도 알아채나요?
단락을 통째로 옮긴 경우 이동으로 인식하지 못하고 한쪽에서 삭제되고 다른 쪽에서 추가된 것으로 표시합니다. 줄 단위 비교의 일반적인 한계입니다.
긴 텍스트도 되나요?
브라우저에서 처리하므로 아주 긴 텍스트는 느려질 수 있습니다. 수만 줄 단위라면 로컬 diff 도구가 적합합니다.
내용이 서버로 전송되나요?
전송되지 않습니다. 비교가 브라우저 안에서만 이루어져 계약서나 설정 파일을 붙여넣어도 외부로 나가지 않습니다.
작동 원리
텍스트 비교 도구는 내부적으로 최장 공통 부분 수열(LCS, Longest Common Subsequence) 알고리즘을 기반으로 동작합니다. 먼저 두 텍스트를 줄 단위로 분리한 뒤, 각 줄을 비교하여 동일한 줄, 추가된 줄, 삭제된 줄을 분류합니다. 예를 들어 원본이 "A, B, C"이고 수정본이 "A, D, C"인 경우, 알고리즘은 A와 C가 공통임을 파악하고 B가 삭제되고 D가 추가되었다고 판단합니다. 변경된 줄(양쪽 모두 존재하지만 내용이 다른 줄)은 추가로 문자 수준 비교를 수행하여 구체적으로 어떤 부분이 바뀌었는지 노란색으로 강조합니다. 공백 무시 옵션이 활성화되면, 비교 전에 각 줄의 선행/후행 공백을 제거하고 연속 공백을 정규화하여 실질적인 내용만 비교 대상으로 삼습니다.
이런 도구도 추천
- 글자수 세기 - 글자수, 단어수, 바이트수 계산
- 대소문자 변환 - camelCase, snake_case 등 변환
- 줄바꿈 변환 - CRLF, LF 줄바꿈 변환
- 텍스트 이스케이프 - 특수문자 이스케이프 처리