이 도구는 무엇인가요?
diff(차이 비교) 도구는 두 텍스트를 비교해서 하나를 다른 하나로 바꾸는 데 필요한 최소한의 변경 사항을 보여줍니다. Git 같은 버전 관리 시스템이 코드 변경 내역을 보여줄 때 쓰는 방식이며, 설정 파일이나 계약서, 기사 등 어떤 두 버전을 비교할 때도 똑같이 유용합니다.
이 도구는 고전적인 diff 유틸리티와 같은 계열의 알고리즘(최장 공통 부분열, LCS)을 사용해 줄 단위로 비교합니다. 그래서 결과물이 코드 리뷰에서 익숙하게 보던 형식 그대로 나옵니다 — 추가된 줄은 +, 삭제된 줄은 −.
왜 사용해야 할까요?
- 눈으로 대충 훑어보는 대신 실제로 무엇이 바뀌었는지 정확히 확인할 수 있습니다.
- 익숙한 git 스타일 출력: 초록색 추가, 빨간색 삭제, 그 사이의 맥락 줄.
- 추가/삭제된 줄 수를 한눈에 요약해서 보여줍니다.
- 코드, 설정 파일, 문서, 목록 등 어떤 텍스트든 사용할 수 있습니다.
- 안전합니다: 두 텍스트 모두 브라우저 안에만 남고 서버로 업로드되지 않습니다.
사용 방법
- 왼쪽 상자에 원본 텍스트를 붙여넣습니다.
- 오른쪽 상자에 수정된 버전을 붙여넣습니다.
- "비교하기" 버튼을 클릭합니다.
- 결과를 확인합니다: 초록색 줄은 추가된 부분, 빨간색 줄은 삭제된 부분, 나머지는 변경되지 않은 줄입니다.
예시
입력
원본:
line one
line two
line three
수정본:
line one
line 2
line three결과
line one
− line two
+ line 2
line three가운데 줄이 바뀌었는데, diff에서는 이를 기존 줄 삭제와 새 줄 추가로 나눠서 보여줍니다.
이럴 때 유용합니다
- AI가 다시 써준 문단 검토하기: 원본과 AI 결과물을 붙여넣으면 전체를 다시 읽지 않아도 정확히 어느 문장이 바뀌었는지 바로 확인됩니다.
- 계약서 초안 두 개 비교하기: 문서 서식이 버전 사이에 달라진 경우, 변경 내용 추적 기능보다 줄 단위 diff가 오히려 더 훑어보기 쉬울 때가 많습니다.
- 배포 후 설정 파일 확인하기: .env나 YAML 파일의 배포 전/후 내용을 붙여넣어 의도한 줄만 바뀌었는지 확인할 수 있습니다.
- 번역 수정본 비교하기: 번역가나 편집자가 초안 사이에서 실제로 어느 줄을 손봤는지 확인할 수 있습니다.
알아두면 좋은 한계점
이 도구는 줄 단위 diff이지 단어 단위 diff가 아닙니다 — 문서 맨 위에 있던 문단을 내용은 그대로 두고 맨 아래로 옮기기만 해도 "이동됨"으로 표시되는 게 아니라 완전한 삭제 + 완전한 추가로 나타납니다. 문장마다 몇 단어만 바뀌는 산문 위주의 글이라면 단어 단위 diff 도구가 강조되는 텍스트 양이 더 적겠지만, 코드나 설정 파일, 구조화된 문서에서는 줄 단위 비교가 표준이고 이 도구도 그에 초점을 맞추고 있습니다.
비교 알고리즘은 어떻게 동작하나요
이 도구는 두 텍스트 사이의 최장 공통 부분열(LCS)을 찾습니다 — 중간에 다른 줄이 삽입되거나 삭제되었더라도, 두 버전에서 같은 상대적 순서로 등장하는 줄들의 가장 큰 집합을 찾는 것입니다. 이 공통 부분열에 속한 내용은 변경되지 않은 맥락으로 표시되고, 나머지는 삭제(원본에만 있음) 또는 추가(새 버전에만 있음)로 분류됩니다. 이는 유닉스 diff 유틸리티와 Git의 줄 단위 비교를 뒷받침하는 것과 같은 핵심 알고리즘이라서, 풀 리퀘스트를 리뷰해본 적이 있다면 결과 형식이 곧바로 낯익게 느껴질 것입니다.
실무에서 알아두면 좋은 점 하나: 만약 같은 줄이 문서 안에 여러 번 반복된다면(완전히 똑같은 텍스트가 두 번 이상 등장한다면), 알고리즘은 전체 diff가 가장 작아지는 쪽으로 그 줄을 매칭합니다 — 그래서 가끔 직관과는 다르게 짝지어지는 경우가 있지만, 어느 쪽 중복 줄이 어디에 매칭되든 최종적으로 표시되는 추가/삭제 줄 개수 자체는 항상 정확합니다.
자주 묻는 질문
단어 단위로 비교되나요, 줄 단위로 비교되나요?
git diff처럼 줄 단위로 비교합니다. 한 줄이 바뀌면 삭제 한 줄과 추가 한 줄로 표시됩니다. 줄 단위 비교는 코드나 설정 파일에서 표준적으로 쓰이는 방식이고, 텍스트가 길어도 결과를 읽기 쉽습니다.
한 글자만 바뀌었는데 왜 줄 전체가 변경된 것처럼 나오나요?
비교 단위 자체가 줄이기 때문입니다. 그 줄 안에서 무엇이 바뀌었든 줄 전체가 변경된 것으로 표시됩니다. 더 세밀하게 보고 싶다면 긴 문단을 짧은 줄로 나눠서 붙여넣어 보세요.
공백도 차이로 인식하나요?
네. 줄이 정확히 일치해야 하므로 끝에 붙은 공백이나 들여쓰기 차이도 다른 줄로 취급됩니다. 이는 의도된 동작입니다 — 코드나 설정 파일에서는 공백 차이도 실제 차이니까요.
텍스트 길이에 제한이 있나요?
정해진 제한은 없지만, 수만 줄에 달하는 아주 긴 텍스트는 비교 연산이 로컬(사용자 기기)에서 실행되기 때문에 다소 시간이 걸릴 수 있습니다.
입력한 텍스트가 서버로 전송되나요?
아니요. diff 연산은 자바스크립트로 브라우저 안에서만 실행됩니다. 두 텍스트 모두 기기 밖으로 나가지 않으니 계약서, 사내 문서, 미공개 코드도 안심하고 사용할 수 있습니다.