🧰도구상자

🔀 텍스트 비교 (diff)

두 텍스트의 추가·삭제된 줄을 한눈에 비교합니다.

+2 추가 · 1 삭제

사과
바나나
+딸기
포도
+수박

텍스트 비교(diff) 도구는 두 개의 텍스트를 나란히 넣으면 어떤 줄이 새로 추가됐고 어떤 줄이 지워졌는지를 색으로 구분해 보여 주는 도구입니다. 원본과 수정본을 왼쪽·오른쪽 칸에 붙여넣기만 하면, 두 글의 달라진 지점을 눈으로 하나하나 대조하지 않아도 즉시 파악할 수 있습니다.

이 도구는 줄(line) 단위로 텍스트를 비교합니다. 두 텍스트를 줄바꿈 기준으로 나눈 뒤, 두 문서에 공통으로 남아 있는 가장 긴 줄 배열(LCS, 최장 공통 부분수열)을 찾아 그대로 둔 줄은 그대로 두고, 원본에만 있는 줄은 삭제(−), 비교본에만 있는 줄은 추가(+)로 표시합니다. 문서 버전 관리 시스템(Git 등)이 변경 내역을 보여 주는 방식과 같은 원리입니다.

코드 리뷰에서 두 커밋의 차이를 확인하거나, 계약서·기획서·번역 초안의 개정 전후를 대조하거나, 긴 로그·설정 파일에서 바뀐 줄만 골라낼 때 유용합니다. 아래에서는 diff가 정확히 무엇인지, 줄 단위 비교와 문자 단위 비교의 차이, 추가·삭제·변경이 어떻게 표시되는지, 그리고 실무에서 어떻게 활용하는지 정리했습니다.

사용 방법

  1. 왼쪽 '원본' 칸에 기준이 되는 텍스트(수정 전 버전)를 붙여넣습니다.
  2. 오른쪽 '비교본' 칸에 비교할 텍스트(수정 후 버전)를 붙여넣습니다.
  3. 입력 즉시 두 텍스트가 줄 단위로 비교되어, 추가된 줄은 초록색(+), 삭제된 줄은 빨간색(−), 그대로인 줄은 회색으로 표시됩니다.
  4. 결과 위의 '+n 추가 · −n 삭제' 요약으로 전체 변경 규모를 먼저 확인한 뒤, 색으로 강조된 줄을 훑어 구체적으로 어디가 달라졌는지 확인합니다.

diff란 무엇인가요

diff는 'difference(차이)'의 줄임말로, 두 텍스트를 비교해 서로 다른 부분만 추려 보여 주는 기법을 말합니다. 사람이 두 문서를 처음부터 끝까지 눈으로 대조하는 것은 느리고 실수가 잦지만, diff는 어느 줄이 그대로이고 어느 줄이 바뀌었는지를 알고리즘으로 계산해 즉시 강조해 줍니다.

이 도구는 두 텍스트에서 '순서를 유지한 채 공통으로 등장하는 가장 긴 줄들의 배열'을 찾는 최장 공통 부분수열(LCS) 알고리즘을 씁니다. 이 공통 배열에 포함된 줄은 변경 없이 유지된 것으로 보고, 원본에서 빠진 줄은 삭제, 비교본에서 새로 등장한 줄은 추가로 판정합니다. 덕분에 중간에 몇 줄을 끼워 넣거나 지워도 나머지 줄이 통째로 어긋나 보이지 않고, 실제로 바뀐 줄만 정확히 짚어 냅니다.

왜 단순 비교보다 나은가요

두 텍스트를 위에서부터 한 줄씩 맞대어 비교하면, 앞부분에 한 줄만 추가돼도 그 아래 모든 줄이 밀려 전부 '다름'으로 표시됩니다. LCS 기반 diff는 공통으로 남은 줄을 먼저 찾아 정렬하기 때문에, 실제로 추가·삭제된 줄만 골라내 훨씬 정확한 결과를 줍니다.

줄 단위 비교 vs 문자 단위 비교

텍스트 diff는 무엇을 최소 비교 단위로 삼느냐에 따라 종류가 나뉩니다. 이 도구는 줄(line) 단위 비교를 사용합니다. 즉 한 줄 안에서 글자 하나만 달라져도 그 줄 전체를 '바뀐 줄'로 취급합니다. 각 방식의 특징은 다음과 같습니다.

diff 비교 단위별 특징
비교 단위판정 기준적합한 용도
줄 단위줄 전체가 같은지 다른지코드·설정 파일·로그처럼 줄 단위로 의미가 나뉘는 텍스트
단어 단위공백으로 나눈 단어 단위문장 안에서 단어 몇 개만 고친 산문
문자 단위글자 하나하나짧은 문자열, 오타 한 글자 차이 대조

이 도구는 줄 단위입니다

이 도구는 줄 단위로 비교하므로, 한 줄에서 마침표 하나만 고쳐도 그 줄은 '삭제된 원본 줄'과 '추가된 새 줄'로 함께 표시됩니다. 문장 안에서 정확히 어느 글자가 바뀌었는지 글자 단위로 강조해 주지는 않습니다. 대신 코드·목록·설정처럼 줄 하나가 의미 단위인 텍스트에서는 이 방식이 가장 깔끔하게 읽힙니다.

추가·삭제·변경은 어떻게 표시되나요

비교 결과의 각 줄은 아래 세 가지 상태 중 하나로 표시됩니다. '변경'은 별도 색이 아니라, 원본 줄의 삭제와 새 줄의 추가가 짝을 이뤄 나타납니다.

  • 한 줄을 통째로 새로 넣으면 초록색 추가(+) 한 줄로 표시됩니다.
  • 한 줄을 완전히 지우면 빨간색 삭제(−) 한 줄로 표시됩니다.
  • 기존 줄의 내용을 고치면 '옛 줄 삭제(−) + 새 줄 추가(+)' 두 줄로 나타납니다. 이것이 사실상 '변경'입니다.
  • 결과 상단의 '+n 추가 · −n 삭제' 요약은 전체 변경 규모를 한눈에 보여 줍니다.
표시기호의미
초록색 줄+비교본에만 있는 줄 (새로 추가됨)
빨간색 줄원본에만 있는 줄 (삭제됨)
회색 줄(없음)두 텍스트에 똑같이 있는 줄 (변경 없음)

이럴 때 활용하세요

줄 단위 diff는 개발과 문서 작업 양쪽에서 두루 쓰입니다. 대표적인 활용 상황은 다음과 같습니다.

  • 코드 리뷰: 함수 수정 전후 코드를 붙여넣어 바뀐 줄만 확인하거나, 동료가 보낸 코드 조각과 내 버전을 대조합니다.
  • 문서 버전 비교: 계약서·기획서·이력서 초안의 개정 전후를 대조해 어느 문장이 추가·삭제됐는지 확인합니다.
  • 번역·교정 대조: 원문과 수정본, 또는 번역 초안과 감수본을 나란히 넣어 손본 줄을 찾습니다.
  • 설정 파일 점검: .env·config·JSON 등에서 예시 설정과 실제 설정을 비교해 빠지거나 잘못 들어간 줄을 잡아냅니다.
  • 로그 분석: 정상 실행 로그와 오류 로그를 비교해 어느 줄부터 출력이 달라졌는지 추적합니다.

민감한 텍스트도 안전합니다

이 도구의 비교는 브라우저 안에서만 이뤄지며, 입력한 텍스트가 서버로 전송되거나 저장되지 않습니다. 코드나 설정처럼 외부에 노출되면 안 되는 내용도 안심하고 붙여넣어 비교할 수 있습니다.

자주 묻는 질문

이 도구는 줄 단위인가요, 문자 단위인가요?
줄(line) 단위로 비교합니다. 두 텍스트를 줄바꿈 기준으로 나눈 뒤 줄 전체가 같은지 다른지를 판정하므로, 한 줄 안에서 글자 하나만 달라져도 그 줄 전체가 삭제(−)와 추가(+) 한 쌍으로 표시됩니다. 문장 안에서 정확히 어느 글자가 바뀌었는지 글자 단위로 강조하지는 않습니다.
'변경된 줄'은 왜 초록색과 빨간색으로 따로 나오나요?
이 도구는 추가(+)와 삭제(−) 두 가지만 표시하고, '변경'이라는 별도 상태는 없습니다. 그래서 기존 줄을 고치면 옛 줄이 빨간색 삭제로, 새 줄이 초록색 추가로 나란히 나타납니다. 이 삭제+추가 한 쌍이 곧 '그 줄이 바뀌었다'는 뜻입니다. Git을 비롯한 대부분의 diff 도구가 같은 방식을 씁니다.
줄 순서를 바꾸면 어떻게 표시되나요?
줄의 위치가 달라지면, 알고리즘은 공통으로 유지할 수 있는 가장 긴 줄 배열을 기준으로 정렬합니다. 그 결과 옮겨진 줄은 원래 자리에서 삭제되고 새 자리에서 추가된 것으로 표시될 수 있습니다. 순수한 '이동'을 별도로 인식하지는 않고, 삭제와 추가의 조합으로 나타납니다.
대소문자나 공백 차이도 다른 줄로 보나요?
네. 줄을 문자 그대로 비교하므로 대소문자, 앞뒤 공백, 탭과 스페이스, 마침표 하나까지 다르면 서로 다른 줄로 판정합니다. 의미상 같아 보여도 공백이 하나 더 있으면 변경으로 잡히니, 불필요한 차이를 줄이려면 비교 전에 양쪽 서식을 맞춰 주는 것이 좋습니다.
입력한 텍스트가 서버에 저장되나요?
저장되지 않습니다. 모든 비교는 브라우저 안에서 실행되며 입력 내용이 외부로 전송되지 않습니다. 코드, 계약서, 설정 파일처럼 민감한 텍스트도 안심하고 붙여넣을 수 있습니다.
아주 긴 텍스트도 비교할 수 있나요?
짧은 문서부터 수백 줄 규모까지는 즉시 비교됩니다. 다만 줄 단위 diff는 두 텍스트의 줄 수를 곱한 만큼 계산량이 늘어나므로, 수천 줄이 넘는 매우 큰 파일을 한꺼번에 넣으면 브라우저에서 다소 느려질 수 있습니다. 이럴 때는 관심 있는 부분만 잘라 비교하는 것이 빠릅니다.

관련 도구