Reference 2026-04-18
Diff 알고리즘 설명: Myers, Patience, Histogram
git, IDE, 리뷰 도구가 매일 보는 차이점을 계산하는 방법.
모든 코드 리뷰와 머지는 diff 알고리즘에 의존합니다.
Myers Diff
git, vim 등 대부분 도구의 기본. O((N+M)D) 시간에 최단 편집 스크립트 찾기.
강점: 증명 가능한 최소 편집.
약점: 함수 이동이나 빈 줄에서 혼란스러운 레이아웃.
Patience Diff
git diff --diff-algorithm=patience
두 파일 모두에서 한 번씩 나타나는 고유 라인에 앵커. 함수 이동과 리팩터링이 훨씬 깔끔.
Histogram Diff
patience의 개선. 반복 라인을 더 잘 처리. 많은 git 구성의 기본.
git config --global diff.algorithm histogram
단어/문자 diff
git diff --word-diff
문서에 유용, 코드에 산만.
3-way 머지
git merge는 diff 위에 재귀적 3-way 머지 사용.
구조화된 데이터
- jd (JSON)
- yq diff (YAML)
- difft (Difftastic) - AST 기반 다언어