
터미널에서 diff 보는 게 고역이었던 분들에게
git diff를 터미널에서 치면 나오는 그 빨간색-초록색 화면, 솔직히 읽기 편하다고 느끼신 적 있나요? 변경된 줄이 몇 개일 때는 괜찮은데, 파일이 여러 개 걸쳐 있거나 변경량이 많아지면 스크롤 지옥이 시작되거든요. "어디가 바뀐 거지?" 하면서 위아래로 왔다 갔다 하다 보면 시간이 훌쩍 지나 있죠.
이 문제를 해결하기 위해 Delta라는 도구와 fzf(퍼지 파인더)를 조합하고, 여기에 약간의 셸 스크립트를 더해서 훨씬 쾌적한 diff 경험을 만드는 방법이 소개됐어요. 단순히 "예쁜 diff"가 아니라, 파일 단위로 탐색하고 원하는 변경사항만 골라 볼 수 있는 인터랙티브한 워크플로우를 구성하는 거예요.
Delta가 뭔가요?
Delta는 Git의 diff, blame, log 출력을 예쁘고 읽기 쉽게 바꿔주는 터미널 도구예요. 이게 뭐냐면, 기본 git diff 출력이 단순히 "+" "-" 기호로 줄 단위 변경을 보여주는 데 반해, Delta는 구문 강조(syntax highlighting)를 적용하고, 변경된 부분을 단어 단위로 하이라이트해 준다는 거예요. 코드 리뷰할 때 GitHub에서 diff를 보는 것과 비슷한 느낌을 터미널에서 받을 수 있어요.
설치도 간단해요. macOS라면 brew install git-delta, 우분투라면 .deb 패키지를 받아 설치하면 되고요. 설치 후 .gitconfig에 Delta를 pager로 등록해 주면 끝이에요. 이후부터는 git diff를 칠 때 자동으로 Delta가 적용돼요.
핵심적인 설정 옵션 몇 가지를 보면, side-by-side 모드를 켜면 변경 전후를 나란히 보여주고, line-numbers를 활성화하면 줄 번호까지 표시돼요. navigate 옵션을 켜면 n/N 키로 파일 간 이동도 가능하고요. 이 정도만 해도 기본 diff와는 차원이 다른 가독성을 얻을 수 있어요.
fzf를 더하면 진짜 마법이 시작돼요
fzf는 "fuzzy finder"의 약자로, 터미널에서 뭔가를 검색하고 선택할 수 있는 인터랙티브 필터 도구예요. 보통 파일 찾기나 명령어 히스토리 검색에 많이 쓰는데, 여기서는 변경된 파일 목록을 fzf로 띄우고, 선택한 파일의 diff만 미리보기 창에서 Delta로 보여주는 방식으로 활용해요.
이게 왜 좋냐면, 커밋 전에 "이번에 뭘 바꿨더라?" 하고 전체 diff를 쭉 스크롤하는 대신, 변경된 파일 목록에서 관심 있는 것만 골라서 하나씩 확인할 수 있거든요. 파일이 20개 바뀌었어도 원하는 파일만 콕콕 찍어서 볼 수 있으니까 효율이 엄청 올라가요.
셸 스크립트를 만들어서 이 과정을 하나의 명령어로 묶는 건데요, 대략적인 흐름은 이래요. git diff --name-only로 변경된 파일 목록을 뽑고, 이걸 fzf에 파이프로 넘겨요. fzf의 --preview 옵션에 git diff {파일} | delta를 걸어두면, 파일 목록에서 커서를 움직일 때마다 오른쪽 미리보기 창에 해당 파일의 Delta 적용 diff가 실시간으로 나타나요. 마치 IDE에서 변경사항 탭을 클릭하는 것처럼요.
기존 도구들과 비교하면?
사실 diff를 예쁘게 보여주는 도구는 Delta 말고도 여러 개 있어요. diff-so-fancy가 대표적인데, 이건 줄 단위 하이라이트까지만 지원하고 단어 단위 하이라이트는 안 돼요. difftastic은 구문 분석 기반 diff라서 정확도는 높지만 속도가 조금 느릴 수 있고요. Delta는 이 둘 사이에서 속도와 가독성의 균형을 잘 잡고 있어요.
IDE에 내장된 diff 도구(VS Code의 Source Control 탭이라든가)도 물론 훌륭하지만, 터미널 중심으로 작업하는 분들한테는 IDE를 왔다 갔다 하는 게 오히려 흐름이 끊기거든요. 특히 SSH로 원격 서버에 접속해서 작업할 때는 터미널 도구가 유일한 선택지이기도 하고요.
lazygit이나 tig 같은 터미널 Git UI 도구들도 비슷한 경험을 제공하는데, Delta + fzf 조합의 장점은 각 도구를 독립적으로 쓸 수도 있고 조합해서 쓸 수도 있다는 유연성이에요. 이미 fzf를 다른 용도로 쓰고 있다면 학습 비용이 거의 없죠.
한국 개발자에게 주는 시사점
이 조합은 당장 오늘부터 적용할 수 있어요. Delta와 fzf 둘 다 설치가 간단하고, .gitconfig 설정 몇 줄이면 기본적인 세팅이 끝나거든요. 특히 PR 리뷰를 로컬에서 먼저 훑어보는 습관이 있는 분이라면 체감 효과가 클 거예요.
또 하나 주목할 점은, 이 사례가 "작은 유닉스 도구들을 조합해서 큰 효과를 내는" 유닉스 철학의 전형적인 예라는 거예요. 하나의 거대한 도구에 의존하는 대신, 잘 만들어진 작은 도구들을 파이프로 연결하는 사고방식은 셸 스크립팅 실력을 기르는 데도 큰 도움이 돼요. dotfiles를 관리하고 자기만의 개발 환경을 가꾸는 것도 좋은 개발자 습관 중 하나니까요.
정리
터미널에서 Git diff를 볼 일이 많다면, Delta + fzf 조합은 가성비 최고의 생산성 업그레이드예요. 설정에 10분, 효과는 매일 누적. 여러분은 터미널 diff를 어떻게 보고 계신가요? 혹시 본인만의 꿀조합이 있다면 공유해 주세요!
🔗 출처: Hacker News
TTJ 코딩클래스 정규반
월급 외 수입,
코딩으로 만들 수 있습니다
17가지 수익 모델을 직접 실습하고, 1,300만원 상당의 자동화 도구와 소스코드를 받아가세요.
"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"
실제 수강생 후기- 비전공자도 6개월이면 첫 수익
- 20년 경력 개발자 직강
- 자동화 프로그램 + 소스코드 제공