DT

온라인 텍스트 · 코드 비교(Diff) 도구

두 텍스트의 추가·삭제 부분을 색으로 표시해 차이를 한눈에.

이 도구는 100% 브라우저에서 실행됩니다. 입력한 데이터는 서버로 전송되지 않습니다.

두 버전의 문서 중 무엇이 바뀌었는지 확인하는 일은 코드 리뷰뿐 아니라 계약서 검토, 번역 검수, 설정 파일 대조에서도 매일 일어납니다. 눈으로 훑으면 공백 하나, 숫자 한 자리 차이를 놓치기 쉽습니다.

이 도구는 두 텍스트를 문자·단어·줄 단위로 비교해 추가된 부분은 녹색, 삭제된 부분은 빨간색으로 표시합니다. 좌우 분할 뷰와 통합 뷰를 오갈 수 있고, 공백이나 대소문자 차이를 무시하는 옵션도 제공합니다. 비교 결과는 표준 unified diff 형식(.patch)으로 내려받을 수 있어 그대로 코드 리뷰 도구에 첨부할 수 있습니다.

사용 방법

  1. 두 텍스트 붙여넣기왼쪽에 원본, 오른쪽에 변경본을 넣습니다. 순서를 잘못 넣었다면 좌우 교체 버튼으로 바꿀 수 있습니다.
  2. 비교 단위 선택 단위는 코드나 설정 파일에, 단어 단위는 문서나 번역 검수에, 문자 단위는 짧은 문자열이나 숫자 대조에 적합합니다. 단위를 바꾸면 결과가 즉시 다시 계산됩니다.
  3. 노이즈 걸러내기들여쓰기만 바뀐 경우처럼 실질적 변경이 아닌 차이가 많다면 공백 무시를 켭니다. 대소문자 표기만 바꾼 경우에는 대소문자 무시를 켜면 실제 내용 변화만 남습니다.
  4. 결과 저장하단 통계에서 추가·삭제·유지된 양을 확인하고, 필요하면 patch 파일로 내려받습니다. unified diff 형식이므로 git apply 로 적용하거나 리뷰 시스템에 첨부할 수 있습니다.

자주 묻는 질문

붙여넣은 코드가 외부로 전송되나요?

전송되지 않습니다. 비교 알고리즘이 브라우저 안에서 실행되며 네트워크 요청이 발생하지 않습니다.

사내 소스 코드나 계약서 초안처럼 외부에 노출되면 안 되는 문서를 다루는 경우가 많은 도구라, 처음부터 서버를 두지 않는 구조로 만들었습니다. 개발자 도구의 네트워크 탭을 켜 두고 사용해 보면 확인할 수 있습니다.

줄 단위와 단어 단위 중 무엇을 써야 하나요?

바뀐 내용의 성격에 따라 다릅니다.

코드는 줄 단위가 기본입니다. 한 줄 안에서 변수명만 바뀌어도 그 줄 전체가 삭제·추가로 표시되지만, 이것이 git이나 코드 리뷰 도구가 보여 주는 방식과 같아 익숙합니다. 산문은 줄바꿈 위치가 자주 바뀌므로 줄 단위로 보면 문단 전체가 변경으로 표시되어 쓸모가 없습니다. 이때는 단어 단위가 실제 수정 지점을 정확히 짚어 줍니다.

긴 파일을 넣으면 느려집니다.

diff 계산은 두 입력의 길이에 대해 제곱에 가까운 비용이 들 수 있습니다. 특히 문자 단위 비교는 입력이 길어질수록 급격히 무거워집니다.

수천 줄짜리 파일을 비교해야 한다면 먼저 줄 단위로 전환하고, 그래도 느리면 관심 있는 구간만 잘라서 넣으세요. 파일 전체를 정기적으로 비교해야 하는 작업이라면 git diffdiff -u 같은 명령줄 도구가 훨씬 효율적입니다.

알아두면 좋은 개념

diff 알고리즘의 기본 아이디어

대부분의 diff 도구는 두 시퀀스의 최장 공통 부분수열(LCS)을 찾는 방식으로 동작합니다. 공통 부분을 최대한 길게 잡으면 나머지가 자연스럽게 삭제·추가로 남기 때문입니다.

실무에서 많이 쓰이는 Myers 알고리즘은 이 문제를 그래프 최단 경로로 바꿔 풀어 실용적인 속도를 냅니다. 다만 '가장 짧은 편집 스크립트'가 항상 사람이 보기에 자연스러운 결과는 아니어서, git의 --histogram 이나 --patience 처럼 사람에게 읽기 좋은 결과를 우선하는 변형 알고리즘도 있습니다.

unified diff 형식 읽기

.patch 파일에서 @@ -12,7 +12,9 @@ 는 헝크(hunk) 헤더로, 원본의 12번째 줄부터 7줄이 변경본의 12번째 줄부터 9줄로 바뀐다는 뜻입니다. 이어지는 줄에서 - 는 삭제, + 는 추가, 공백으로 시작하면 변경 없이 문맥으로 포함된 줄입니다.

문맥 줄이 기본 3줄 포함되는 이유는 패치를 적용할 위치를 찾기 위해서입니다. 덕분에 원본이 조금 달라져도 패치가 적용될 수 있습니다.

공백 차이가 만드는 diff 노이즈

탭과 스페이스가 섞이거나 에디터가 자동으로 줄 끝 공백을 제거하면, 실제 로직은 그대로인데도 파일 전체가 변경으로 표시됩니다. 리뷰어가 진짜 변경을 찾지 못하는 대표적 원인입니다.

예방책은 프로젝트에 .editorconfig 와 포매터(Prettier·Black 등)를 두고 CI에서 검사하는 것입니다. 윈도우와 유닉스의 줄바꿈 차이(CRLF vs LF)도 같은 문제를 만드는데, git의 core.autocrlf 설정이나 .gitattributes 로 통일할 수 있습니다.

함께 쓰면 좋은 도구

최종 업데이트: 2026-08-12