텍스트 비교 (Diff)
두 텍스트의 차이점을 비교합니다. 추가, 삭제, 변경된 줄을 색상으로 구분하여 한눈에 확인할 수 있습니다.
텍스트 비교(Diff Checker) 가이드
텍스트 비교 도구란?
텍스트 비교(Diff) 도구는 두 개의 텍스트를 나란히 놓고 차이점을 줄 단위로 찾아 시각적으로 표시해주는 유틸리티입니다. 소프트웨어 개발에서는 코드 리뷰나 브랜치 병합 전 변경사항을 확인하는 데 필수적으로 쓰이고, 일반 업무에서도 계약서 수정본 대조, 원고 교정 확인, 설정 파일 버전 비교 등 다양한 상황에서 활용됩니다. 추가된 줄은 녹색, 삭제된 줄은 빨간색, 변경된 줄은 노란색으로 하이라이트되어, 수백 줄짜리 텍스트에서도 어디가 어떻게 바뀌었는지 한눈에 파악할 수 있습니다. 텍스트 비교 기술의 역사는 1970년대 유닉스의 diff 유틸리티까지 거슬러 올라갑니다. Hunt-McIlroy 알고리즘과 이후 Eugene Myers가 발표한 O(ND) 차이 알고리즘이 현대 대부분의 diff 도구의 기반이 되었습니다. Git, SVN 같은 버전 관리 시스템은 물론, GitHub의 Pull Request 리뷰 화면도 이 알고리즘을 활용합니다. 이 온라인 도구는 별도의 소프트웨어 설치 없이 브라우저에서 바로 텍스트를 비교할 수 있어, 개발 환경이 갖춰지지 않은 상황에서도 편리하게 사용할 수 있습니다.
작동 원리
텍스트 비교 도구는 내부적으로 최장 공통 부분 수열(LCS, Longest Common Subsequence) 알고리즘을 기반으로 동작합니다. 먼저 두 텍스트를 줄 단위로 분리한 뒤, 각 줄을 비교하여 동일한 줄, 추가된 줄, 삭제된 줄을 분류합니다. 예를 들어 원본이 "A, B, C"이고 수정본이 "A, D, C"인 경우, 알고리즘은 A와 C가 공통임을 파악하고 B가 삭제되고 D가 추가되었다고 판단합니다. 변경된 줄(양쪽 모두 존재하지만 내용이 다른 줄)은 추가로 문자 수준 비교를 수행하여 구체적으로 어떤 부분이 바뀌었는지 노란색으로 강조합니다. 공백 무시 옵션이 활성화되면, 비교 전에 각 줄의 선행/후행 공백을 제거하고 연속 공백을 정규화하여 실질적인 내용만 비교 대상으로 삼습니다.
주요 기능
- 줄 단위 비교: 두 텍스트의 차이를 줄별로 정밀하게 분석합니다.
- 색상 하이라이트: 추가(녹색), 삭제(빨간색), 변경(노란색)을 직관적으로 구분합니다.
- 공백 무시: 들여쓰기나 줄 끝 공백 차이를 제외하고 실제 내용만 비교할 수 있습니다.
- 대소문자 무시: 영문 대소문자 차이를 무시하고 비교합니다.
- 좌우 바꾸기: 원본과 수정본의 위치를 한 번에 전환합니다.
- 변경 통계: 추가, 삭제, 변경된 줄 수를 요약해서 보여줍니다.
사용 방법
- 왼쪽 입력창에 원본 텍스트를 붙여넣거나 직접 입력합니다.
- 오른쪽 입력창에 수정된 텍스트를 붙여넣거나 직접 입력합니다.
- '비교하기' 버튼을 클릭하면 두 텍스트의 차이가 하단에 표시됩니다.
- 코드 비교 시 들여쓰기 차이가 신경 쓰이면 '공백 무시' 옵션을 활성화합니다.
- 영문 텍스트의 대소문자 차이를 무시하고 싶다면 '대소문자 무시' 옵션을 켭니다.
- '좌우 바꾸기' 버튼으로 원본과 수정본 위치를 전환할 수 있습니다.
- 결과 영역에서 색상별로 변경 내용을 확인합니다.
활용 사례
- 코드 리뷰: Pull Request 전에 변경된 코드를 확인하여 실수나 누락을 사전에 발견합니다.
- 문서 버전 관리: 계약서나 기획서의 이전 버전과 현재 버전을 비교하여 수정된 항목을 정확히 파악합니다.
- 설정 파일 비교: 서버 환경별(개발/스테이징/프로덕션) 설정 파일의 차이를 확인합니다.
- 번역 검수: 원문과 번역본을 나란히 놓고 빠진 부분이나 추가된 내용을 체크합니다.
팁과 주의사항
- 서로 다른 OS에서 작성된 파일은 줄바꿈 문자(LF vs CRLF)가 달라 불필요한 차이가 표시될 수 있습니다. 공백 무시 옵션을 활용하세요.
- 대용량 텍스트(수만 줄)도 비교 가능하지만, 분량이 많을수록 처리 시간이 다소 걸릴 수 있습니다.
- JSON이나 XML처럼 구조화된 데이터를 비교할 때는 먼저 포맷팅(정렬)을 통일한 뒤 비교하면 더 정확한 결과를 얻을 수 있습니다.
- 비교 결과를 스크린샷으로 저장해두면 코드 리뷰 기록이나 변경 이력 문서로 활용할 수 있습니다.
자주 묻는 질문
Q: 각 색상은 무엇을 의미하나요?
녹색 배경은 오른쪽(수정본)에만 있는 새로 추가된 줄, 빨간색 배경은 왼쪽(원본)에만 있는 삭제된 줄, 노란색 배경은 양쪽 모두에 있지만 내용이 달라진 변경된 줄을 나타냅니다.
Q: 대용량 텍스트도 비교할 수 있나요?
네, 제한 없이 비교할 수 있습니다. 다만 수만 줄이 넘는 텍스트는 브라우저 메모리를 많이 사용하므로 처리 시간이 길어질 수 있습니다. 모든 연산은 로컬에서 수행됩니다.
Q: 공백 무시 옵션은 언제 쓰면 좋나요?
서로 다른 편집기에서 작성된 코드를 비교할 때 유용합니다. 탭/스페이스 혼용이나 줄 끝 공백 차이로 인한 불필요한 diff를 걸러내고 실제 코드 변경만 볼 수 있습니다.
Q: 바이너리 파일도 비교할 수 있나요?
이 도구는 텍스트 기반 비교 전용입니다. 이미지, PDF 등 바이너리 파일은 지원하지 않습니다. 소스코드, 설정 파일, 문서 등 텍스트 콘텐츠에 사용하세요.
Q: 줄바꿈 방식(LF/CRLF) 차이도 감지하나요?
기본적으로 줄바꿈 방식 차이는 감지됩니다. Windows(CRLF)와 Linux(LF)에서 작성된 파일을 비교할 때 불필요한 차이가 나타나면 공백 무시 옵션을 사용하세요.
Q: 비교 결과를 저장하거나 공유할 수 있나요?
현재는 내보내기 기능이 없지만, 브라우저의 스크린샷 기능이나 페이지 인쇄 기능을 활용하여 결과를 저장할 수 있습니다.
Q: Git diff와 어떻게 다른가요?
Git diff는 버전 관리 시스템 내에서 커밋 간 차이를 보여주는 반면, 이 도구는 아무 텍스트나 직접 붙여넣어서 비교할 수 있습니다. Git 환경이 아닌 곳에서 간편하게 사용하기 좋습니다.
Q: 데이터가 서버로 전송되나요?
아닙니다. 모든 비교 처리는 브라우저에서 로컬로 수행됩니다. 입력한 텍스트가 외부로 전송되거나 저장되는 일은 없으므로, 기밀 문서나 내부 코드도 안전하게 비교할 수 있습니다.
Q: 여러 파일을 동시에 비교할 수 있나요?
이 도구는 한 번에 두 개의 텍스트를 비교하는 방식입니다. 여러 파일을 비교해야 한다면 순차적으로 각 쌍을 비교하면 됩니다.
Q: 단어 단위 비교도 지원하나요?
현재는 줄 단위 비교를 기본으로 제공합니다. 변경된 줄 내에서 어떤 단어가 바뀌었는지는 노란색 하이라이트를 통해 대략적으로 확인할 수 있습니다.