Tools mentioned in this article
Open the browser-based tool while you read and try the workflow immediately.
‘수정 전’과 ‘수정 후’를 비교해 바뀐 곳만 떠오르게 하는 것, 그것이 Diff(차이)입니다. Git의 코드 리뷰, 설정 파일 백업 비교, API 응답 대조 등 개발의 모든 장면에서 씁니다.

이 글에서는 Diff를 읽는 법의 기본과 행 단위·단어 단위의 차이, 현장에서 도움 되는 활용법을 구체적인 예제로 해설합니다.
Diff의 기본: + 와 - 의 의미
가장 일반적인 unified 형식의 Diff는 행 머리의 기호로 변경 내용을 나타냅니다.
function greet(name) {
- return "Hello " + name;
+ return `Hello ${name}`;
}
-(빨강)로 시작하는 행은 삭제된 행+(초록)로 시작하는 행은 추가된 행- 기호 없는 행은 변경되지 않은 행(맥락으로 표시)
즉 “어떤 행을 변경한” 경우, Diff에서는 “옛 행을 삭제하고 새 행을 추가했다”는 두 행으로 표현됩니다.
행 단위 vs 단어 단위
Diff에는 크게 두 가지 입도가 있습니다.
행 단위(line diff)
행마다 “같은지 다른지”를 판정합니다. 코드나 설정 파일 비교에 적합합니다. 다만 한 행 안의 한 글자만 바꿔도 “행 통째로 변경”으로 표시되어, 어느 단어가 바뀌었는지까지는 알 수 없습니다.
단어·문자 단위(word/char diff)
행 안의 어느 부분이 바뀌었는지까지 하이라이트합니다. 문장 교정이나 긴 한 행(압축된 JSON 등)의 비교에서 위력을 발휘합니다.
예를 들어 다음 변경을 봅시다.
변경 전: 가격은 부가세 별도 1000원입니다
변경 후: 가격은 부가세 포함 1100원입니다
행 단위라면 “이 행이 바뀌었다”까지만 알 수 있지만, 단어 단위라면 “별도→포함” “1000→1100”의 두 곳만 하이라이트되어 변경 부분이 한눈에 보입니다.
공백·줄바꿈 코드의 함정
Diff에서 “모든 행이 바뀌었다”고 표시되어 놀랄 때가 있습니다. 원인의 대부분은 보이지 않는 차이입니다.
- 줄바꿈 코드: Windows의
CRLF와 Unix의LF가 섞이면 모든 행이 차이로 취급됩니다. - 들여쓰기: 탭과 스페이스의 차이, 행 끝의 불필요한 스페이스.
- 전각·반각 스페이스: 보기에는 거의 같아도 다른 문자입니다.
의미 있는 변경만 보고 싶을 때는 Diff 도구의 ‘공백 무시’ 옵션을 켜면 본질적인 차이만 골라낼 수 있습니다. 반대로 설정 파일 등에서 공백 자체가 중요한 경우에는 끈 채로 둡니다.
실무에서의 사용법
- 코드 리뷰 전 셀프 체크: 커밋 전에 변경점을 다시 보고 지우지 못한 디버그 코드나 의도치 않은 변경을 발견.
- 설정 파일 비교: 동작하는 환경과 동작하지 않는 환경의
.env나 설정 파일을 나란히 두고 차이에서 원인을 분리. - API 응답 대조: 기대하는 JSON과 실제 응답을 비교해 빠진 필드를 찾기(한 줄 JSON은 포맷팅 후 비교하면 보기 쉬움).
- 문장 교정: 편집 전후의 원고를 단어 단위로 비교해 수정 부분을 확인.
기밀 데이터는 로컬에서 비교하기
설정 파일이나 로그에는 API 키나 개인정보가 포함될 수 있습니다. 이런 데이터를 외부 온라인 서비스에 붙여넣는 것은 피하는 게 좋습니다. 텍스트 차이 비교 도구는 브라우저 안에서 처리가 완결되며 입력 데이터를 서버로 보내지 않습니다. Network 탭을 연 상태로 비교해도 요청이 날아가지 않음을 확인할 수 있습니다.
자주 묻는 질문
한 줄만 바꿨는데 두 줄 분량의 차이가 나오는 이유는?
Diff는 “변경”을 “삭제+추가”로 표현하기 때문입니다. 원래 행이 -로, 새 행이 +로 표시되므로 한 줄 수정도 두 줄로 보입니다. 단어 단위 비교로 바꾸면 실제로 바뀐 부분만 하이라이트됩니다.
차이가 모든 행에 나옵니다
줄바꿈 코드(CRLF / LF)의 차이나 행 끝 공백, 들여쓰기의 탭·스페이스 혼재가 원인인 경우가 많습니다. ‘공백 무시’ 옵션을 시도하거나 사전에 줄바꿈 코드를 통일하세요.
큰 파일도 비교할 수 있나요?
브라우저 안에서 처리하는 도구는 극단적으로 큰 파일이면 동작이 무거워질 수 있습니다. 그럴 때는 비교하고 싶은 범위만 추출하거나, 명령줄의 diff나 git diff를 병행하면 쾌적합니다. 일상적인 코드나 설정 파일 비교라면 브라우저 도구로 충분히 실용적입니다.