초보자를 위한 Git Diff 사용법: AI가 변경한 코드만 검토하기

AI가 코드를 수정한 뒤 바로 적용하면 위험한 이유

바이브 코딩 도구에 기능을 요청하면 여러 파일이 한꺼번에 변경될 수 있다. 사용자는 로그인 버튼 하나만 수정해 달라고 요청했지만 AI는 관련 컴포넌트, 환경설정, 패키지와 데이터베이스 코드까지 수정할 수 있다.

변경된 코드를 확인하지 않으면 정상적으로 작동하던 기능이 사라지거나 보안 설정이 바뀌어도 발견하기 어렵다. 특히 AI가 오류를 해결하기 위해 타입 검사를 끄거나 기존 코드를 삭제했을 때 화면만 확인해서는 문제를 알아차리지 못할 수 있다.

이럴 때 사용할 수 있는 도구가 Git Diff다. Git Diff를 사용하면 프로젝트 전체 코드를 처음부터 읽지 않아도 AI가 추가하거나 삭제한 부분만 모아서 확인할 수 있다.

Git Diff란 무엇일까?

Git Diff는 파일의 이전 상태와 현재 상태를 비교해 달라진 부분을 보여주는 기능이다. Git 공식 문서에서는 작업 폴더, 스테이징 영역과 커밋 사이의 변경사항을 확인하는 명령으로 설명한다. Git Diff 공식 문서

AI가 코드를 수정하기 전 상태를 Git에 기록해 두면 수정 후 어떤 파일과 줄이 변경됐는지 비교할 수 있다. 삭제된 줄과 새롭게 추가된 줄이 구분돼 표시되므로 AI가 예상한 범위 안에서 작업했는지 판단하기 좋다.

Git Diff는 프로젝트를 자동으로 수정하지 않는다. 변경 내용을 읽기만 하는 명령이므로 초보자도 비교적 안전하게 사용할 수 있다.

Git Diff를 사용하기 전에 필요한 조건

Git Diff를 제대로 활용하려면 AI가 코드를 수정하기 전 상태가 Git에 기록돼 있어야 한다. 기존 상태가 없으면 무엇을 기준으로 변경사항을 비교해야 하는지 알 수 없기 때문이다.

프로젝트 폴더에서 git status를 실행하면 현재 변경된 파일과 Git이 추적하지 않는 파일을 확인할 수 있다. Git 공식 문서에 따르면 이 명령은 최근 커밋, 스테이징 영역과 작업 폴더 사이에서 달라진 파일을 표시한다. Git Status 공식 문서

AI에게 새로운 작업을 요청하기 전에는 현재 기능이 정상적으로 작동하는지 확인하고 기존 변경사항을 정리하는 것이 좋다. 중요한 작업이라면 별도의 브랜치를 만들어 진행하면 기존 버전을 보호하기 쉽다.

가장 기본적인 Git Diff 명령

프로젝트 폴더에서 다음 명령을 실행한다.

git diff

이 명령은 현재 작업 폴더에서 수정됐지만 아직 스테이징하지 않은 변경사항을 보여준다. 쉽게 말해 AI가 파일을 수정한 후 아직 git add로 선택하지 않은 내용을 확인하는 명령이다.

아무 결과도 표시되지 않는다면 변경사항이 없거나 이미 모든 변경을 스테이징했을 가능성이 있다. 이때는 git status를 먼저 실행해 현재 상태를 확인해야 한다.

변경된 파일 이름만 빠르게 확인하기

AI가 많은 파일을 수정했다면 모든 코드를 바로 읽기보다 변경된 파일 목록부터 확인하는 것이 좋다.

git diff --name-only

이 명령은 구체적인 코드 대신 변경된 파일 이름만 보여준다. 사용자가 요청하지 않은 설정 파일이나 인증 관련 파일이 목록에 나타난다면 해당 파일을 우선적으로 확인해야 한다.

변경 규모를 함께 확인하려면 다음 명령을 사용할 수 있다.

git diff --stat

파일별로 추가된 줄과 삭제된 줄의 개략적인 수를 보여준다. 작은 버튼 수정 작업을 요청했는데 수백 줄이 변경됐다면 작업 범위가 불필요하게 커졌을 가능성이 있다.

특정 파일의 변경사항만 확인하기

변경된 파일이 많을 때는 한 파일씩 나누어 검토하는 것이 편하다.

git diff -- 파일경로

예를 들어 src/app/login/page.tsx 파일만 확인하려면 다음과 같이 실행한다.

git diff -- src/app/login/page.tsx

파일 경로 앞에 있는 --는 이후 값이 브랜치나 커밋이 아니라 파일 경로라는 사실을 명확하게 구분해 준다.

로그인, 권한, 결제, 환경변수와 관련된 파일은 다른 화면 파일보다 먼저 확인하는 것이 좋다. 이 파일들은 작은 변경으로도 서비스 보안과 데이터에 큰 영향을 줄 수 있다.

Git Diff 화면을 읽는 방법

처음 Git Diff 결과를 보면 기호와 숫자가 많아 어렵게 느껴질 수 있다. 초보자는 모든 정보를 이해하려고 하기보다 파일 이름과 추가·삭제된 줄부터 확인하면 된다.

diff --git으로 시작하는 줄은 비교 중인 파일을 나타낸다. 그 아래의 ---는 변경 전 파일을, +++는 변경 후 파일을 의미한다.

줄 앞에 -가 있으면 기존 코드에서 삭제된 내용이다. 줄 앞에 +가 있으면 새롭게 추가된 내용이다. 아무 기호가 없는 줄은 변경 위치를 이해하는 데 필요한 주변 코드다.

@@로 시작하는 부분은 변경된 코드가 파일의 어느 위치에 있는지 알려준다. 처음에는 숫자를 완벽하게 해석하지 않아도 된다. 해당 표시 아래에 나오는 추가·삭제 코드를 중심으로 읽으면 된다.

삭제된 코드를 먼저 확인해야 하는 이유

AI 변경사항을 검토할 때는 추가된 코드뿐만 아니라 삭제된 코드를 주의해서 봐야 한다. AI가 새로운 기능을 구현하는 과정에서 기존 검증 로직이나 오류 처리를 삭제할 수 있기 때문이다.

다음과 같은 코드가 삭제됐는지 확인한다.

  • 사용자 로그인 여부를 확인하는 코드
  • 관리자 권한을 검사하는 코드
  • 입력값을 검증하는 코드
  • API 오류를 처리하는 코드
  • 데이터베이스 작업 실패 시 복구하는 코드
  • 타입과 보안 검사를 실행하는 설정

AI가 “중복 코드”라고 판단해 삭제했더라도 실제로는 특정 예외 상황을 처리하는 중요한 코드일 수 있다. 삭제 이유를 이해할 수 없다면 해당 부분을 바로 적용하지 말고 AI에게 삭제한 목적과 영향을 설명하도록 요청해야 한다.

추가된 코드에서 확인해야 할 항목

새롭게 추가된 줄에서는 요청한 기능과 관계없는 코드가 들어왔는지 확인한다. 특히 새로운 패키지, 외부 API 호출, 데이터베이스 쿼리와 환경변수가 추가됐다면 세부 내용을 살펴봐야 한다.

API 키나 비밀번호가 코드에 직접 작성되지 않았는지 확인하고, 사용자 입력값이 서버에서 검증되는지도 확인한다. 관리자 기능이라면 화면에서 메뉴를 숨기는 데 그치지 않고 서버에서도 권한을 검사해야 한다.

console.log와 같은 임시 디버그 코드에 개인정보나 인증 토큰이 출력되지 않는지도 살펴본다.

스테이징한 변경사항을 확인하는 방법

git add로 변경사항을 스테이징한 다음에는 일반적인 git diff 결과가 비어 있을 수 있다. 기본 Git Diff는 아직 스테이징하지 않은 변경을 보여주기 때문이다.

스테이징한 변경사항은 다음 명령으로 확인한다.

git diff --staged

다음 명령도 같은 용도로 사용할 수 있다.

git diff --cached

Git 공식 문서에서는 --staged--cached와 같은 의미라고 설명한다. 이 명령은 다음 커밋에 실제로 포함될 내용을 최근 커밋과 비교한다.

커밋 직전에 git diff --staged를 실행하면 실수로 포함한 파일이나 빠진 변경사항을 발견할 수 있다.

스테이징 여부와 관계없이 전체 변경을 확인하기

스테이징한 코드와 아직 스테이징하지 않은 코드를 모두 최근 커밋과 비교하려면 다음 명령을 사용할 수 있다.

git diff HEAD

이 명령은 최근 커밋 이후 현재 작업 폴더에서 발생한 전체 변경사항을 확인할 때 유용하다.

다만 새로 만들어진 파일 중 아직 Git이 추적하지 않는 파일은 Diff 결과에 나타나지 않을 수 있다. 따라서 git diff HEAD만 사용하지 말고 git status로 추적되지 않는 파일도 함께 확인해야 한다.

필요한 코드만 선택하는 Git Add 사용법

AI가 한 파일에서 여러 부분을 수정했지만 일부 변경만 적용하고 싶을 수 있다. 파일 전체를 스테이징하려면 다음 명령을 사용한다.

git add 파일경로

변경된 코드 조각을 나누어 선택하려면 다음 명령을 사용할 수 있다.

git add -p

이 명령은 변경사항을 작은 단위로 보여주고 각 부분을 스테이징할지 선택하게 한다. 초보자에게는 처음에 복잡하게 느껴질 수 있으므로 중요한 작업에서는 파일 단위로 검토한 뒤 점차 사용하는 것이 좋다.

선택이 끝나면 git diff --staged로 실제 커밋될 내용을 다시 확인한다.

AI 변경 코드를 검토하는 안전한 순서

바이브 코딩 작업에서는 다음 순서로 Git Diff를 사용하는 것이 좋다.

  1. AI 작업 전 git status로 기존 변경사항을 확인한다.
  2. 정상적으로 작동하는 상태를 커밋하거나 별도 브랜치로 보관한다.
  3. AI에는 하나의 작은 기능만 요청한다.
  4. 작업 후 git status로 변경 파일을 확인한다.
  5. git diff --stat으로 전체 변경 규모를 확인한다.
  6. git diff -- 파일경로로 중요한 파일부터 검토한다.
  7. 삭제된 권한 검사와 오류 처리 코드가 없는지 확인한다.
  8. 필요한 변경만 스테이징한다.
  9. git diff --staged로 커밋될 내용을 다시 읽는다.
  10. 테스트와 빌드를 실행한 후 커밋한다.

GitHub도 변경사항을 병합하기 전에 Diff를 검토하면 논리 오류와 누락된 오류 처리를 찾는 데 도움이 된다고 안내한다. 혼자 개발하는 프로젝트에서도 이 과정을 반복하면 코드 검토 습관을 만들 수 있다. GitHub 변경사항 검토 가이드

Diff가 너무 크게 나타날 때 확인할 것

실제 코드는 조금만 바뀌었는데 파일 전체가 변경된 것처럼 표시될 수 있다. 줄바꿈 방식, 자동 포매터 또는 들여쓰기 설정이 달라졌을 때 이런 문제가 발생한다.

AI에게 기존 코드 스타일을 유지하도록 요청하고, 기능 수정과 전체 코드 정리를 한 번에 진행하지 않는 것이 좋다. 포매팅 변경이 필요하다면 기능 변경과 별도의 커밋으로 나누면 검토하기 쉬워진다.

자동 생성 파일과 패키지 잠금 파일은 변경 내용이 클 수 있다. 해당 파일을 무조건 제외하지 말고 새로운 패키지가 추가된 이유와 버전 변경을 확인해야 한다.

Git Diff 사용 시 주의사항

Git Diff는 변경 내용을 보여줄 뿐 코드가 안전한지 자동으로 판단하지 않는다. 추가된 코드가 요청한 기능과 일치하는지, 개인정보와 권한에 문제가 없는지는 사용자가 별도로 확인해야 한다.

내용을 이해하지 못했다면 AI에게 Diff를 제공하고 다음과 같이 요청할 수 있다.

“이 변경사항에서 추가된 기능과 삭제된 기능을 구분해 설명해 줘. 인증, 권한, 입력값 검증, API 키와 기존 기능에 영향을 줄 수 있는 부분을 우선적으로 확인해 줘.”

AI의 설명도 최종 정답으로 간주하지 말고 테스트 결과와 공식 문서를 함께 확인하는 것이 좋다.

마무리

Git Diff는 바이브 코딩 과정에서 AI가 실제로 무엇을 변경했는지 확인할 수 있는 가장 기본적인 도구다. 프로젝트 전체 코드를 읽기 어렵더라도 변경된 파일과 추가·삭제된 줄만 살펴보면 예상하지 못한 수정사항을 발견할 수 있다.

AI에게 작업을 요청하기 전 상태를 기록하고, 변경 후 git status, git diff --stat, git diff, git diff --staged를 순서대로 확인하는 습관을 만들어 보자.

코드를 빠르게 생성하는 능력만으로는 안전한 서비스를 만들기 어렵다. AI가 만든 변경사항을 이해하고 필요한 부분만 선택하는 과정이 더해져야 바이브 코딩을 실제 프로젝트에 안정적으로 활용할 수 있다.

댓글 남기기