MMeshOps
바이브코딩을 위한 Git과 리눅스 기초
12예상 8입문

바이브코딩 안전 수칙 실전 흐름

AI로 코딩할 때 브랜치 생성, 기능 구현, 변경 사항 확인(diff), 커밋으로 이어지는 안전한 Git 실전 워크플로우를 익힙니다.

명령어 각각의 뜻을 아는 것과, 실제 실무에서 이 명령어들을 엮어서 자연스러운 흐름(Workflow)으로 사용하는 것은 다릅니다. 특히 AI와 함께 바이브코딩을 할 때는, AI가 뱉어내는 엄청난 양의 코드를 맹신하지 않고 꼼꼼히 검증하며 나아가는 습관이 필수적입니다. 이번 시간에는 지금까지 배운 브랜치 생성, 수정, 검증, 그리고 커밋에 이르는 행동들을 묶어, 바이브코딩 시 절대로 코드가 망가지지 않게 지켜주는 마법의 6단계 실전 워크플로우를 익혀보겠습니다.

철칙: 이 6단계를 벗어나지 말 것

비개발자가 복잡한 웹 서버를 구축하면서 에러 지옥에 빠지지 않는 유일한 방법은 아래의 사이클을 기능 하나를 추가할 때마다 기계적으로 반복하는 것입니다. 조금 귀찮더라도 이 흐름을 습관화하면 서버 다운에 대한 두려움이 사라집니다.

바이브코딩 생존 6단계 워크플로우

  1. 11단계: 내 위치가 무결점의 main 브랜치인지 확인한다.
  2. 22단계: 기능별로 구체적인 이름을 가진 새로운 브랜치를 생성하고 이동한다.
  3. 33단계: AI에게 코드를 요청하고 서버 파일에 덮어씌운다.
  4. 44단계: 터미널이 아닌 브라우저를 열어 내 눈으로 직접 정상 작동 여부를 테스트한다.
  5. 55단계: git diff 명령어로 AI가 어떤 코드를 건드렸는지 현미경으로 검사한다.
  6. 66단계: 문제가 없다면 git commit으로 안전하게 세이브(백업)를 남긴다.

1 & 2단계: 신성한 main 보호와 작업장 마련

새로운 기능(예: 다크모드 버튼)을 추가하고 싶다면, 터미널에 `git status`를 쳐서 현재 내가 `main` 브랜치에 있는지, 그리고 커밋 안 된 찌꺼기 파일이 없는지(working tree clean) 확인합니다.

깨끗하다면 지체 없이 `git checkout -b feature-darkmode`를 쳐서 안전한 격리 병동(브랜치)으로 이동합니다. 이제부터 쏟아질 AI의 불확실한 코드 파편으로부터 원본을 완벽히 격리한 것입니다.

3 & 4단계: AI의 코드 적용과 인간의 검증

ChatGPT나 Claude에게 "상단 메뉴에 다크모드 전환 버튼을 달아줘"라고 요청합니다. AI가 준 긴 코드를 복사해서 `index.html`과 `style.css`에 붙여넣습니다.

이때, 코드를 덮어씌웠다고 바로 다음 단계로 넘어가면 절대 안 됩니다. 웹 서버를 실행하고 브라우저에 들어가서 다크모드 버튼을 직접 수십 번 눌러보며 기능이 완벽하게 작동하는지, 기존에 잘 되던 로그인 버튼이 갑자기 안 눌리지는 않는지 인간의 눈으로 꼼꼼히 검증해야 합니다. 에러가 나면 과감히 `git restore .`로 날려버리고 AI에게 다시 물어보는 것이 4단계의 핵심입니다.

5단계: 현미경 검열관, `git diff`

버튼도 잘 눌리고 화면도 예쁩니다. 이제 커밋을 하려고 `git add .`를 치기 직전입니다. 잠깐 멈추세요! AI가 다크모드만 추가한 것이 아니라, 실수로 보안 설정 코드 한 줄을 지워버렸다면 어떻게 될까요? 눈으로 보이는 화면은 정상이지만 서버 내부는 썩어 들어가고 있을지도 모릅니다.

내가 세이브(커밋)하기 직전에, 과거의 나와 현재의 나(혹은 AI)가 바꾼 코드의 차이점을 한 줄 한 줄 현미경처럼 보여주는 강력한 명령어가 바로 `git diff`입니다.

git diff로 AI의 의도 파악하기

터미널에 `git diff`를 치면, 코드가 변경된 부분이 붉은색과 초록색으로 나옵니다.

-  <button class="login-btn">로그인</button>
+  <button class="login-btn">로그인</button>
+  <button class="dark-btn">다크모드</button>

`-` (마이너스) 기호와 붉은색 줄은 AI가 기존 코드에서 삭제한 부분이고, `+` (플러스) 기호와 초록색 줄은 AI가 새롭게 추가한 부분입니다.

`git diff`를 꼼꼼히 스크롤 해보면서, "어? 나는 다크모드 버튼만 달라고 했는데 왜 AI가 갑자기 밑에 있는 엉뚱한 결제 관련 코드를 지워버렸지?" 하고 찾아내는 것이 바이브코딩 검수 작업의 하이라이트입니다.

6단계: 안도감의 도장, `git commit`

`git diff`를 통해 확인해 보니 AI가 내가 지시한 곳 외에는 단 한 줄의 코드도 건드리지 않았음이 증명되었습니다.

이제 안심하고 테이프를 봉인할 차례입니다. `git add .`로 모든 변경 사항을 무대에 올리고, `git commit -m "다크모드 전환 버튼 추가 완벽 동작"`이라는 아주 명확한 메시지와 함께 세이브 포인트를 남깁니다.

축하합니다! 여러분은 원본 코드를 해치지 않고, AI의 환각을 방어하며, 성공적으로 새로운 기능을 하나 추가해 냈습니다. 이 6단계 사이클은 백 번, 천 번을 반복해도 모자람이 없는 궁극의 안전 수칙입니다.

개념 퀴즈

퀴즈 답을 맞춰야 학습 완료가 됩니다.

AI에게 코드를 넘겨받아 파일에 덮어씌운 직후, 이 변경 사항을 세이브(commit)하기 전에 AI가 혹시 내가 지시하지 않은 엉뚱한 코드를 몰래 지우거나 수정하지는 않았는지, 변경된 텍스트의 차이점을 한 줄씩 깐깐하게 비교 검사할 때 사용하는 명령어는 무엇인가요?

3줄 요약

  1. 1바이브코딩의 생존은 '기능 하나당 무조건 브랜치 하나'라는 철칙을 지키는 데서 출발합니다.
  2. 2AI가 준 코드를 적용한 뒤에는 화면 테스트뿐만 아니라, 눈에 보이지 않는 내부 코드의 변질을 막기 위해 커밋 전 검열 과정을 거쳐야 합니다.
  3. 3git diff 명령어는 내가 지시한 부분 외에 AI가 임의로 삭제하거나 변경한 코드가 없는지 붉은색과 초록색으로 명확하게 차이점을 보여주는 검수 도구입니다.