본문 바로가기
강의

바이브코딩 강의 3편 — Git, AI가 코드를 망쳐도 1분이면 되돌리는 안전벨트

AI에게 코드를 통째로 맡기는 시대에 Git은 개발 실력이 아니라 보험이다. 커밋(저장)·되돌리기·브랜치(실험)·GitHub(금고) 네 가지만 알면, AI가 코드를 왕창 망가뜨려도 1분이면 복구된다. 개발 지식 0에서 안전벨트 매는 법만 배운다.

Git은 개발 실력이 아니다. AI에게 코드를 통째로 맡기는 시대의 보험이다. 배우는 건 개발이 아니라 안전벨트 매는 법이다.

이 글 3줄 요약

  • Git은 지금 상태를 통째로 저장해두고 언제든 그 지점으로 되돌아가게 해주는 도구다. 게임의 세이브 버튼과 똑같다.
  • AI가 코드를 왕창 고쳐서 다 망가져도, 손대기 전에 저장(커밋)만 해뒀다면 1분이면 복구된다. 이게 Git이 주는 진짜 힘이다.
  • 알아야 할 건 커밋(저장)·되돌리기·브랜치(실험)·GitHub(금고) 네 가지뿐. 명령어는 AI가 대신 쳐준다. 여러분은 '언제 저장을 누르는가'만 알면 된다.

이 글은 개발 지식이 하나도 없는 사람을 위한 'AI 바이브코딩 강의 12부작 시리즈'의 3편이다. 처음 오셨다면 1편부터 보면 흐름이 매끄럽다.

오늘의 질문 — "AI가 다 망쳤는데, 되돌릴 수 있나요?"

바이브코딩(코드를 직접 짜지 않고 AI에게 말로 시켜 프로그램을 만드는 방식)을 하다 보면 반드시 만나는 순간이 있다. AI에게 "이 기능 좀 크게 고쳐줘"라고 했더니, 코드를 왕창 헤집어서 화면이 다 깨지는 순간이다. 이때 머릿속에 떠오르는 질문은 하나다.

"이거… 되돌릴 수 있나요?"

답은 "네, 1분이면 됩니다"이다. 단, 한 가지 조건이 붙는다. AI가 손대기 전에 '저장'을 해뒀어야 한다. 그 저장 버튼의 이름이 바로 Git이다.

여기서 오해를 하나 풀고 가자. 우리는 지금 개발을 배우는 게 아니다. 자동차를 몰기 전에 안전벨트 매는 법을 배우는 것과 같다. 벨트를 맬 줄 안다고 정비사가 되는 게 아니듯, Git을 쓸 줄 안다고 개발자가 되는 건 아니다. 그저 사고가 나도 다치지 않게 해주는 장치일 뿐이다.

Git이 하는 일은 딱 네 가지

Git은 이름도 낯설고 명령어도 수십 개라 어려워 보인다. 하지만 우리가 실제로 이해해야 할 건 딱 네 칸이다.

이름하는 일한마디로
커밋 (저장)지금 상태에 도장을 찍는다"여기까지 됐다" 세이브 버튼
되돌리기저장해둔 지점으로 돌아간다망해도 1분이면 복구
브랜치 (실험)원본은 두고 복사본에서 실험한다평행우주에서 마음껏 부수기
GitHub (금고)인터넷 금고에 사본을 백업한다PC가 죽어도 코드는 산다

이 네 칸만 이해하면 된다. 나머지는 AI가 대신 쳐준다. 여러분이 알아야 할 건 오직 "언제 저장을 눌러야 하는가"뿐이다. 이제 하나씩 일상어로 풀어보자.

커밋 = 게임의 '세이브' 버튼

커밋(commit, 지금까지 만든 걸 한 덩어리로 저장하는 것)은 게임의 세이브와 똑같다. 보스전 직전에 세이브를 누르듯, 위험한 작업 직전에 커밋을 찍는다. 그러면 언제든 이 지점으로 돌아올 수 있는 안전지대가 하나 생긴다.

세이브를 찍을 때마다 이름표를 붙인다는 점도 중요하다. "예약 기능 추가함"처럼 한 줄짜리 메모를 남기는데, 이걸 커밋 메시지라고 부른다. 나중에 "어느 지점으로 돌아갈까?"를 고를 때, 이 메모가 이정표 역할을 한다. 메모가 없으면 어느 세이브가 어느 시점이었는지 알 수가 없다.

게임과 다른 점이 하나 있다. 저장이 무한이고, 게다가 공짜다. 하루에 열 번을 찍어도 된다. "위험한 일 하기 전엔 무조건 한 번" — 이 습관 하나가 세상에서 가장 값싼 보험이다.

되돌리기 — 오늘의 진짜 핵심

여기가 오늘의 핵심이다. 똑같은 사고가 나도, 커밋을 해뒀느냐 아니냐에 따라 결말이 완전히 갈린다.

커밋 안 하고 작업했다면 — AI가 파일 20개를 헤집어 화면이 다 깨졌다. 그런데 어디가 원본이었는지 아무 기록이 없다. 되돌릴 지점 자체가 없으니 처음부터 다시 해야 한다. 반나절이 그냥 날아간다. 그래서 겁이 나서 AI에게 큰일을 못 시키게 된다.

커밋 해두고 작업했다면 — 명령어 한 줄(git reset)로 마지막 세이브 지점으로 복귀한다. 방금 전까지 멀쩡하던 상태로 1분 만에 되돌아간다.

이 차이가 만드는 진짜 효과는 심리적인 것이다. "망해도 복구된다"를 머리가 아니라 몸으로 아는 순간, AI에게 과감하게 시킬 수 있게 된다. 겁이 없어진다. 이게 Git이 주는 진짜 힘이다. AI가 코드를 왕창 고치기 전에 커밋 = 안전벨트 착용. 사고가 나도 다치지 않는다.

브랜치 = 원본을 지키는 '평행우주 실험실'

브랜치(branch, 갈라진 가지)는 원본을 복사해서 만든 딴 세계다. 잘 돌아가는 메인 세계는 그대로 두고, 복사본 세계에서만 실험한다. 여기서 뭘 부수든 메인은 흠집 하나 나지 않는다.

실험이 성공하면 메인에 합치고(이걸 머지라고 부른다), 실패하면 그 세계만 통째로 버린다. 평행우주가 마음에 안 들면 폐기하면 끝이다. 원본은 처음부터 아무 일도 없었던 것처럼 멀쩡하다.

그래서 AI에게 "새 기능을 실험해봐"라고 시킬 땐 브랜치부터 만드는 게 좋다. 예를 들어 "결제 기능을 붙여보자"라고 하면, 먼저 '결제-실험'이라는 브랜치를 만든 뒤 거기서 시킨다. 그러면 실험이 다 뒤집혀도 손님이 실제로 쓰는 메인 서비스는 멀쩡히 돌아간다. 원본 걱정이 0이 된다.

GitHub = 코드를 맡기는 '인터넷 은행 금고'

지금까지의 커밋·되돌리기·브랜치는 전부 내 컴퓨터 안에서 벌어지는 일이다. GitHub는 그 코드를 인터넷 금고에 맡기는 서비스다. 커밋한 걸 '푸시(push)'하면 인터넷 금고로 올라간다. 그러면 내 PC에 원본, GitHub에 사본이 이중으로 존재하게 된다. GitHub가 왜 필요한지는 네 가지로 정리된다.

쓰임새설명
이중 보관커밋한 걸 푸시하면 금고로 올라간다. 내 PC와 GitHub에 사본이 둘이 된다.
기기 사망 대비노트북이 물에 빠지고 실수로 폴더를 지워도, 금고에서 그대로 내려받으면 끝. 백업이 아니라 생존 장치다.
협업여러 명이 같은 금고를 보며 각자 작업하고 합친다. 혼자여도 나 + 여러 기기 + AI가 한 금고를 공유한다.
비공개 잠금금고에 자물쇠를 채워 남이 못 보게 한다. 사업 코드나 비밀번호가 든 파일은 반드시 비공개 저장소로.

특히 마지막이 중요하다. GitHub에는 누구나 볼 수 있는 공개 저장소와 나만 볼 수 있는 비공개 저장소가 있는데, 사업과 관련된 코드나 비밀번호가 들어 있는 파일은 무조건 비공개로 잠가둬야 한다. 공개로 올렸다가 남에게 비밀번호가 그대로 노출되는 사고가 실제로 흔하다.

실전에서는 이렇게 쓴다

말로만 들으면 감이 안 오니, 실제 흐름을 하나 보자. 코딩을 전혀 못 하는 사람이 1분 만에 복구한 이야기다.

먼저 첫 화면을 완성하고 커밋 #1을 찍는다("첫 화면 완성"). 여기까지가 안전지대다. 이어서 예약 기능을 붙이고 커밋 #2를 찍는다("예약 기능 추가"). 여기도 안전지대다. 그다음 AI에게 큰 수정을 맡겼는데, 이번엔 화면이 전부 깨져버렸다. 예전 같으면 식은땀이 나는 순간이다. 하지만 git reset 명령어 한 줄로 커밋 #2 지점으로 복귀한다. 걸린 시간은 1분. 아무 일도 없었던 것처럼 돌아간다.

핵심은 이 사람이 코딩을 못 한다는 점이다. 그런데도 모든 프로젝트를 Git으로 관리한다. 이유는 단 하나 — 겁내지 않고 AI에게 시키기 위해서다. 게다가 매일 밤 작업 기록이 GitHub 비공개 금고에 차곡차곡 쌓이니, PC가 죽어도 기록은 산다. 실력이 아니라 습관이 만든 안전벨트다.

몸에 붙여야 할 습관 하나

AI에게 큰일을 시키기 전에 딱 한 번, 이 습관 하나만 붙이면 된다.

나쁜 습관 — 그냥 시킨다. 커밋 없이 "이 기능 싹 다 바꿔줘"라고 던진다. 결과가 마음에 안 들면 어디부터 틀어졌는지 미궁이다. 되돌릴 지점이 없으니 손으로 하나씩 되돌리다가 더 망친다. 그러다 AI가 무서워지고, 결국 큰일을 못 맡기게 된다.

좋은 습관 — 저장하고 시킨다. "잠깐, 커밋 먼저" 하고 안전벨트를 맨 다음, 그제야 AI에게 마음껏 시킨다. AI가 뭘 하든 최악의 경우는 방금 그 커밋으로 복귀하면 그만이다. 손실이 0이니 더 대담하게, 더 크게 시킬 수 있다.

습관 공식은 세 단어면 끝난다 — 저장하고 · 시키고 · 확인. 위험한 일 앞에서 "커밋 먼저"가 반사적으로 떠오르면 성공이다.

흔한 오해 두 가지

Git을 자꾸 미루게 만드는 생각이 두 개 있다. 둘 다 바로잡고 가자.

오해 1 — "Git은 개발자들이나 쓰는 어려운 도구잖아." 명령어가 수십 개라 지레 겁먹고 미룬다. 하지만 실제로 쓰는 건 저장·되돌리기·백업 버튼 몇 개뿐이다. 커밋·리셋·푸시 3개면 90퍼센트를 커버한다. 게다가 그 명령어조차 AI가 대신 쳐준다.

오해 2 — "괜히 건드렸다 다 날아갈까 봐 무서워." 실수하면 코드가 사라질까 봐 손을 못 댄다. 그런데 사실은 정반대다. Git을 쓰면 실수해도 코드가 안 날아간다. 안 쓰는 게 오히려 더 위험하다. 커밋은 실수를 되돌릴 수 있는 유일한 안전장치이기 때문이다.

3줄 정리

딱 세 줄만 가져가면 된다.

  • 커밋 = 저장. 위험한 작업 전에 도장 한 번 찍는 게 가장 값싼 보험. 되돌리기(git reset)로 언제든 복귀한다.
  • 브랜치 = 평행우주. 원본은 놔두고 복사본에서 실험하고, 실패하면 통째로 버리면 끝이다.
  • GitHub = 금고. 집에도 금고에도 사본을 둔다. 기기가 죽어도 코드는 산다.

결론은 이거다. Git은 실력이 아니라 습관이다. "망해도 복구된다"를 몸으로 아는 순간, AI에게 과감해진다. 오늘의 숙제는 딱 하나 — 다음에 AI에게 뭔가 크게 고쳐달라고 하기 전에 "커밋 먼저"를 한 번 떠올려 보는 것. 그게 안전벨트 매는 습관의 시작이다.

다음 편 — 바이브코딩 강의 4편에서는 내가 만든 프로그램이 '어디서' 도는지를 다룬다. 내 PC(로컬)냐, 서버냐, 클라우드냐, 그리고 비밀 쪽지 같은 .env 파일까지.

자주 묻는 질문

Git이 뭔지 한 문장으로 설명하면요?

지금까지 만든 걸 통째로 저장해두고, 언제든 그 지점으로 되돌아갈 수 있게 해주는 도구입니다. 게임의 세이브 기능과 거의 똑같다고 보시면 됩니다. 보스전 직전에 세이브를 누르듯, 위험한 작업을 하기 전에 저장을 찍어두는 겁니다. AI가 코드를 잘못 고쳐서 화면이 다 깨져도, 저장해둔 지점으로 1분이면 돌아갈 수 있습니다. 개발 실력이 아니라 안전벨트라고 생각하시면 편합니다.

코딩을 전혀 모르는데 Git 명령어를 다 외워야 하나요?

외우실 필요 없습니다. 실제로 쓰는 명령어는 저장(커밋)·되돌리기(리셋)·백업(푸시) 세 개면 90퍼센트가 해결됩니다. 게다가 그 명령어조차 AI가 대신 쳐줍니다. 여러분이 알아야 할 건 단 하나, '언제 저장 버튼을 눌러야 하는가'입니다. 위험한 작업을 시키기 직전에 한 번 저장한다는 감각만 익히시면 충분합니다.

AI가 코드를 왕창 고쳐서 다 망가졌어요. 되돌릴 수 있나요?

네, 되돌릴 수 있습니다. 단 한 가지 조건이 있습니다. AI가 손대기 전에 저장(커밋)을 해뒀어야 합니다. 그랬다면 명령어 한 줄로 마지막 저장 지점으로 복귀할 수 있고, 보통 1분 안에 끝납니다. 반대로 저장을 안 해두셨다면 되돌릴 지점 자체가 없어서 처음부터 다시 해야 합니다. 그래서 '위험한 일 전에는 무조건 한 번 저장'이 가장 값싼 보험입니다.

브랜치는 왜 쓰는 건가요? 저장만으로는 부족한가요?

브랜치는 원본을 안전하게 지킨 채로 마음껏 실험하고 싶을 때 씁니다. 잘 돌아가는 원본은 그대로 두고, 복사본을 하나 만들어 거기서만 새 기능을 시험하는 겁니다. 실험이 성공하면 원본에 합치고, 실패하면 복사본만 통째로 버리면 됩니다. 원본은 처음부터 아무 일도 없었던 것처럼 멀쩡합니다. AI에게 '새 기능을 실험해봐'라고 시킬 때 특히 유용합니다.

GitHub는 Git이랑 뭐가 다른가요?

Git은 내 컴퓨터 안에서 저장하고 되돌리는 도구이고, GitHub는 그 저장한 코드를 인터넷 금고에 올려두는 서비스입니다. 커밋한 걸 '푸시'하면 GitHub로 사본이 올라갑니다. 그러면 내 PC에 원본, GitHub에 사본이 이중으로 존재하게 됩니다. 노트북이 고장 나거나 실수로 폴더를 지워도 금고에서 그대로 내려받으면 끝입니다. 사업 코드나 비밀번호가 든 파일은 반드시 비공개 저장소로 잠가두셔야 합니다.

관련 글