Git (버전 관리, Version Control)
파일의 변경 이력을 기록하고 관리하는 시스템입니다. AI가 코드를 대량으로 수정해도, 이전 상태로 되돌리거나 변경 내역을 추적할 수 있게 해줍니다.
같은 말:깃깃허브GitHub버전관리소스 관리
목차
🤔 혹시 이런 경험 있나요?
AI에게 "디자인 좀 바꿔줘"라고 했더니, 파일 10개를 한꺼번에 수정했습니다. 결과를 보니 이전 버전이 더 나았는데... 뭘 어떻게 바꿨는지도 모르겠고, 되돌릴 수도 없습니다.
또는 이런 경우도 있습니다. 잘 되던 코드가 갑자기 에러가 나는데, 대체 언제부터 안 됐는지, 뭘 바꿨길래 망가졌는지 알 수가 없습니다.
이런 상황을 방지하는 것이 바로 Git입니다. 바이브코딩에서 Git은 선택이 아니라 생존 도구입니다.
🔑 Git, 한마디로 뭘까요?
Git은 파일의 변경 이력을 기록하고 관리하는 버전 관리 시스템입니다.
문서 작업할 때 "보고서_최종.docx", "보고서_최종_수정.docx", "보고서_진짜최종.docx"처럼 파일을 여러 개 만들어본 적 있을 겁니다. Git은 이걸 하나의 파일로 관리하면서, 모든 변경 기록을 자동으로 저장해줍니다.
💾 게임의 세이브 포인트와 같습니다
RPG 게임에 빗대면 이해가 빠릅니다.
- 세이브 없이 플레이: 보스전에서 지면 처음부터 다시 시작해야 합니다.
- 중간중간 세이브: 보스전에서 져도 세이브 포인트부터 다시 시작하면 됩니다.
Git에서 커밋(commit)은 이 세이브 포인트와 같습니다. "여기까지는 잘 되니까 저장해두자"라고 기록하는 것입니다. AI가 코드를 크게 바꾸기 전에 커밋해두면, 문제가 생겼을 때 언제든 이전 상태로 되돌릴 수 있습니다.
⚙️ 핵심 개념 4가지
1. 커밋 (Commit) - 세이브 포인트 만들기
현재 파일 상태를 기록하는 것입니다.
git add . # 변경된 파일들을 준비
git commit -m "로그인 기능 추가" # 세이브 포인트 생성 + 메모2. 푸시 (Push) - 클라우드에 백업하기
내 컴퓨터의 기록을 GitHub(온라인 저장소)에 올리는 것입니다.
git push # GitHub에 업로드3. 풀 (Pull) - 클라우드에서 가져오기
다른 곳에서 변경된 내용을 내 컴퓨터로 가져오는 것입니다.
git pull # GitHub에서 다운로드4. 브랜치 (Branch) - 평행 세계 만들기
현재 코드를 복사해서 별도로 작업하는 것입니다. 실험이 실패하면 버리고, 성공하면 합칠 수 있습니다.
git checkout -b new-feature # 새 브랜치 생성
git merge new-feature # 메인에 합치기🌐 GitHub은 뭔가요?
Git은 내 컴퓨터에서 돌아가는 버전 관리 도구이고, GitHub은 그 기록을 온라인에 저장하고 공유하는 서비스입니다.
- Git: 세이브 파일을 만드는 기능 (로컬)
- GitHub: 세이브 파일을 클라우드에 백업하는 서비스 (온라인)
GitHub에 코드를 올려두면 컴퓨터가 고장나도 코드를 잃지 않고, Vercel 같은 배포 서비스와 연결하면 GitHub에 올리기만 해도 자동으로 웹사이트가 업데이트됩니다.
💡 바이브코딩에서 Git이 특히 중요한 이유
1. AI는 대량의 파일을 한 번에 수정합니다
- 사람이 직접 코딩하면 한 번에 1~2개 파일을 수정하지만, AI는 10~20개 파일을 동시에 바꾸기도 합니다.
- 커밋 없이 이런 변경을 허용하면, 문제가 생겼을 때 어떤 파일이 원인인지 찾기 어렵습니다.
2. AI의 수정이 항상 올바르지는 않습니다
- AI가 수정한 코드가 다른 기능을 망가뜨릴 수 있습니다.
- 커밋해두면
git diff로 "AI가 정확히 뭘 바꿨는지" 확인할 수 있고,git checkout으로 되돌릴 수 있습니다.
3. 실험을 안전하게 할 수 있습니다
- "이 디자인으로 바꿔볼까?"를 브랜치로 시도하면, 마음에 안 들면 브랜치를 삭제하면 끝입니다.
- 메인 코드는 전혀 영향받지 않습니다.
🛠️ 바이브코딩 실전 워크플로우
1. AI에게 새 기능 요청 전에
→ git commit -m "기능 추가 전 현재 상태 저장"
2. AI가 코드를 수정한 후
→ git diff 로 변경 내용 확인
→ 잘 작동하면 git commit -m "로그인 기능 추가"
→ 문제가 있으면 git checkout . 로 되돌리기
3. 안정적인 버전이 완성되면
→ git push 로 GitHub에 백업본문 개념을 설명하는 학습용 예시입니다. 실제 서비스 화면이 아닙니다.
🧯 Git이 실제로 우리를 구해주는 상황
AI가 코드를 대량 수정한 뒤 사이트가 깨졌을 때
AI 코딩 도구에 "디자인을 전체적으로 다듬어줘"라고 요청했더니 파일 15개가 한꺼번에 바뀌고, 새로고침하니 화면이 하얗게 나오는 상황입니다. 어떤 파일이 문제인지 하나씩 찾는 대신, 직전에 커밋해뒀다면 git checkout . 한 줄로 요청 전 상태로 돌아갈 수 있습니다. 복구에 걸리는 시간이 몇 시간에서 몇 초로 줄어듭니다.
어제는 되던 기능이 오늘 안 될 때
분명 어제까지 잘 작동하던 문의 폼이 갑자기 에러를 냅니다. git log로 최근 커밋 목록을 보면 그 사이에 무엇이 바뀌었는지 알 수 있고, git diff로 바뀐 내용을 구체적으로 비교할 수 있습니다. 원인 후보를 좁힌 상태로 시작하면 디버깅이 훨씬 수월해지고, AI에게도 "이 변경 이후 문제가 생겼어"라고 정확한 맥락을 전달할 수 있습니다.
노트북을 바꾸거나 파일이 날아갔을 때
작업하던 노트북이 고장 나거나, 실수로 프로젝트 폴더를 삭제하는 일은 누구에게나 생깁니다. GitHub에 푸시해뒀다면 새 컴퓨터에서 저장소를 내려받는 것만으로 마지막 푸시 시점까지 복구할 수 있습니다. 여기에 Vercel 같은 서비스를 연결해두면 배포까지 자동으로 이어집니다.
📋 3줄 요약
-
Git은 파일이 언제 어떻게 바뀌었는지 기록해 두고 원하는 시점으로 되돌릴 수 있게 하는 버전 관리 시스템입니다.
-
커밋으로 지금 상태를 기록하고 푸시로 GitHub에 올리며 브랜치로 원래 코드를 두고 따로 실험합니다.
-
AI는 한 번에 파일 열 개 넘게 고치므로 요청 전에 커밋해 두면 화면이 깨졌을 때 git checkout 한 줄로 되돌릴 수 있습니다.

제대로 이해했는지 한 문제로 확인해 볼까요?
답을 고르면 바로 풀이가 나와요.
바이브코딩 중 AI에게 큰 기능 변경을 요청하려고 합니다. 요청하기 전에 가장 먼저 해야 할 일은 무엇일까요?

