텍스트 비교 도구 (Diff Checker)

두 텍스트나 코드 조각을 줄 단위로 비교하세요. 추가, 삭제, 변경된 줄을 강조하고 달라진 단어까지 정확히 표시합니다.

브라우저에서 실행가입 불필요업로드 없음

두 입력란에 텍스트를 붙여넣으면 차이점이 표시됩니다.

텍스트 비교 도구 사용 방법

  1. 왼쪽에 원본 텍스트, 오른쪽에 변경된 텍스트를 붙여넣거나 파일 두 개를 엽니다.
  2. 입력하는 즉시 비교가 갱신됩니다. 나란히 또는 통합 보기를 고르세요.
  3. 다시 들여쓰기 같은 잡음을 숨기려면 공백 무시, 대소문자 무시, 빈 줄 무시를 체크합니다.
  4. 변경 없음 숨기기를 사용하면 각 변경 사항 주변 세 줄만 남기고 변경 부분에 집중할 수 있습니다.
  5. 패치로 복사 또는 .diff 다운로드를 클릭하면 git apply나 patch로 적용할 수 있는 표준 unified diff를 얻을 수 있습니다.

이 비교 도구의 동작 방식

이 도구는 두 입력을 줄 단위로 나눈 뒤 Myers 차분 알고리즘을 실행합니다. git diff와 GNU diff에서 쓰는 것과 같은 O(ND) 알고리즘입니다. 원본을 변경된 텍스트로 바꾸는 가장 짧은 삽입·삭제 순서를 찾으므로, 결과에는 가능한 한 적은 수의 변경 줄이 표시됩니다. 앞뒤의 동일한 줄은 먼저 건너뛰므로 수천 줄짜리 파일도 거의 즉시 비교됩니다.

삭제된 줄과 추가된 줄이 나란히 있으면 수정된 줄로 짝지어 단어 단위로 다시 비교합니다. 실제로 바뀐 단어는 더 진하게 강조되므로, 긴 줄 속에서 이름이 바뀐 변수나 수정된 숫자가 눈에 띕니다.

나란히 보기와 통합 보기

나란히 보기는 원본을 왼쪽, 새 버전을 오른쪽에 두고 양쪽에 줄 번호를 표시합니다. 일반 문서, 설정 파일, 짧은 코드 변경을 검토하기에 가장 편합니다. 통합 보기는 삭제된 줄(-)과 추가된 줄(+)을 한 열에 섞어 보여 주며, 코드 리뷰 도구와 패치 파일에서 쓰는 형식입니다.

Unified diff(패치) 형식

내보낸 패치는 diff -u 형식을 따릅니다. ---/+++ 헤더 다음에 @@ -l,s +l,s @@로 시작하는 헝크가 이어지며, l은 첫 줄 번호, s는 각 파일에서 헝크의 줄 수입니다. 각 헝크에는 변경되지 않은 문맥 세 줄이 포함되므로 주변 줄이 이동했더라도 patch -p0나 git apply로 적용할 수 있습니다.

무시 옵션을 쓰는 경우

  • 공백 무시는 공백이나 탭만 다른 줄을 같은 줄로 봅니다. 코드를 다시 들여쓰거나 탭을 공백으로 바꾼 뒤에 사용하세요.
  • 대소문자 무시는 대소문자가 중요하지 않은 SQL, HTML, 로그 파일에 유용합니다.
  • 빈 줄 무시는 간격용으로만 추가·삭제된 줄을 숨깁니다.

자주 묻는 질문

텍스트가 어딘가에 업로드되나요?
아니요. 비교는 전적으로 브라우저에서 JavaScript로 실행됩니다. 붙여넣은 내용은 서버로 전송되지 않으므로 비공개 코드, 계약서, 설정 파일도 안전하게 비교할 수 있습니다.
텍스트 크기에 제한이 있나요?
수만 줄짜리 파일도 일반 노트북에서 1초도 안 걸려 비교됩니다. 알고리즘 비용은 차이의 개수에 따라 커지므로, 완전히 다른 두 거대한 파일이 가장 오래 걸립니다.
붙여넣는 대신 파일 두 개를 비교할 수 있나요?
네. 각 입력란 위의 파일 열기 버튼으로 로컬 파일을 불러오세요. 파일은 브라우저가 읽으며 절대 업로드되지 않습니다.
줄이 수정이 아니라 삭제와 추가로 표시되는 이유는 무엇인가요?
삭제된 줄 묶음 바로 옆에 추가된 줄 묶음이 있을 때만 “수정”으로 짝짓습니다. 두 줄에 공통된 텍스트가 거의 없으면 단어 단위 강조가 오히려 산만하므로 생략하고 줄 전체를 변경으로 표시합니다.
JSON 객체는 어떻게 비교하나요?
JSON Diff 도구를 사용하세요. 파싱된 구조를 비교하므로 키 순서와 포맷 때문에 잘못된 차이가 생기지 않으며, 변경된 정확한 경로를 목록으로 보여 줍니다.

관련 도구