Devin.KR

텍스트 비교 (Diff)

두 텍스트를 줄 단위로 비교해 추가·삭제·변경을 표시합니다.

브라우저에서만 처리

비교 결과

구분원본비교본내용
텍스트를 입력하고 비교하세요.

이 도구를 쓰는 법

원본과 비교본을 붙여넣고 비교를 누르세요. 초록색은 추가, 빨간색은 삭제, 노란색은 인접한 삭제·추가를 변경으로 묶은 결과입니다.

공백 무시는 모든 공백 문자의 차이를, 대소문자 무시는 영문 대소문자 차이를 비교 기준에서 제외합니다. 브라우저에서만 처리되며 입력값을 서버로 보내지 않습니다.

LCS 계산량을 제한하기 위해 각 입력은 최대 2,000줄, 두 입력 줄 수의 곱은 최대 1,000,000으로 제한합니다.

텍스트 비교(Diff) 사용 안내

두 텍스트의 추가, 삭제, 변경 줄을 줄 번호와 색으로 비교합니다. 공백과 대소문자 무시 옵션을 지원합니다.

원본과 변경된 텍스트를 각각 입력해 비교하세요. 표시된 추가·삭제 내용을 확인하고 공백이나 줄바꿈에 따른 차이도 검토하세요.

어떻게 구현했나

두 텍스트에서 순서를 지키며 가장 길게 겹치는 줄들(최장 공통 부분수열, LCS)을 찾고, 거기에 들지 못한 줄을 추가나 삭제로 표시합니다. 뒤에서부터 표를 채우는 동적 계획법으로 길이를 구한 다음, 앞에서부터 되짚으며 각 줄의 판정을 뽑아냅니다.

표는 (원본 줄 수 + 1) × (비교본 줄 수 + 1) 칸입니다. 1,000줄 대 1,000줄이면 칸이 100만 개가 되므로 일반 배열 대신 Uint32Array를 씁니다.

그래서 각 입력은 2,000줄까지, 두 줄 수의 곱은 1,000,000까지만 받습니다. LCS의 계산량과 메모리는 두 입력 길이의 곱에 비례해서, 제한이 없으면 큰 파일 두 개를 붙여넣는 순간 탭이 멈춥니다.

삭제 바로 뒤에 추가가 오면(또는 그 반대) 한 줄의 '변경'으로 묶습니다. LCS 자체에는 변경이라는 개념이 없어서, 사람이 읽기 좋도록 뒤에 덧붙인 처리입니다.

자주 묻는 질문

입력한 데이터는 어디에서 처리하나요?

이 도구의 입력 데이터는 브라우저에서 처리하며 도구 기능을 위해 서버로 업로드하지 않습니다. 결과를 공유하기 전 민감한 정보가 없는지 확인하세요.

결과가 예상과 다르면 어떻게 하나요?

입력 형식, 문자 인코딩과 선택한 옵션을 확인하세요. 각 도구가 안내하는 지원 범위와 제한을 확인하고, 원본 데이터를 보관한 상태에서 결과를 검토하세요.

함께 쓰면 좋은 도구

전체 도구 바로가기

문서 · 데이터 변환

개발 실무

한국 개발 특화

API · 네트워크

이미지 · 색상