Skip to content
CP
Writing
7 분 읽기#code

비엔지니어를 위한 바이브 코딩 입문 (3) — 장기적으로 알아야 할 원칙

코드를 안 읽어도 된다는 건 어디까지 사실인가. 보안, 유지보수, 그리고 '진짜 엔지니어 부르는 시점'에 대한 솔직한 이야기.

Part 1에서 바이브 코딩이 무엇인지, Part 2에서 첫 한 시간을 어떻게 보내는지 다뤘습니다. 이제 5번째 프로젝트, 10번째 프로젝트, 1년 후의 당신에게 필요한 이야기입니다.

이 글의 핵심 메시지는 두 가지:

  1. 코드를 안 읽고 가는 데는 한계가 있다. 하지만 그 한계는 생각보다 멀리 있다.
  2. AI가 만든 모든 게 다 옳은 건 아니다. 검증 능력이 진짜 능력이다.

읽기가 병목이다

Karpathy의 원래 말 중 가장 중요한 부분은 사실 이거입니다:

"Vibe coding은 throwaway 프로젝트엔 좋다. 그러나 진지한 것엔, 코드를 이해할 수 있어야 한다."

AI가 1분 안에 100줄의 코드를 만들어낼 때, 그 100줄을 누군가는 읽어야 합니다. 누군가는 — 처음엔 AI가, 결국엔 당신이.

코드를 안 읽으면 다음 3가지가 일어납니다:

1. 미묘한 버그를 못 잡는다

AI는 자주 "잘 작동해 보이지만" 작동 안 하는 코드를 씁니다. 예를 들어 — 모든 Todo가 같은 ID로 저장되거나, 데이터가 사용자에게는 보이지만 실제로는 저장 안 되거나. 화면에선 멀쩡해 보입니다. 일주일 뒤 발견됩니다.

2. 유지보수가 불가능해진다

3개월 후 "버튼 색을 바꾸고 싶다"고 했을 때, AI가 코드 100군데를 동시에 바꿉니다. 어느 게 맞고 어느 게 틀린지 모릅니다.

3. 보안 사고가 난다 (가장 무서운 것)

AI가 만든 코드의 가장 흔한 문제 — API 키가 코드에 직접 박혀있거나, 사용자 입력 검증이 없어서 공격에 노출되거나, 시크릿이 GitHub에 공개됩니다. 다음 섹션에서 자세히.

검증의 3단계

코드를 모두 읽지는 않더라도, 모든 기능에 대해 다음 3단계는 거치세요.

단계 1 — 동작 확인

"이 기능을 의도한 대로 사용해본다."

뻔해 보이지만 안 합니다. Claude가 "구현했어요"라고 하면 즉시 브라우저로 가서 직접 클릭해보세요. 5번 중 1번은 안 됩니다.

단계 2 — 엣지 케이스 확인

"정상이 아닌 입력을 넣어본다."

  • 빈 입력
  • 매우 긴 입력 (1만 글자)
  • 특수문자, 이모지, 다국어
  • 동시에 여러 번 클릭
  • 새로고침 후

이 5가지를 통과 못 하면 — Claude에게 "이 입력에서 깨진다"고 알리세요.

단계 3 — 보안 확인

이 단계는 반드시 Claude에게 직접 부탁하세요:

"이 코드의 보안 문제를 검토해줘. 특히 다음 항목들 — 시크릿 키 노출, 사용자 입력 검증, SQL/XSS 인젝션, 인증 우회 가능성. 발견되면 수정해줘."

이 한 줄이 큰일을 막습니다.

비엔지니어가 빠지는 보안 함정 5가지

함정 1 — API 키를 코드에 박는다

// 절대 이렇게 하지 마세요
const OPENAI_KEY = "sk-proj-abc123...";

이 코드를 GitHub에 올리는 순간, 봇이 30초 안에 키를 훔쳐갑니다. 한 달치 청구서가 수백만 원 나옵니다 (실화).

올바른 방법: 환경 변수 (.env 파일) — Claude에게 "API 키는 환경변수로 처리해줘"라고 명확히 요청.

함정 2 — .env 파일을 GitHub에 올린다

.gitignore.env가 있는지 매번 확인하세요. Claude에게 "이 프로젝트의 .gitignore가 충분한지 확인해줘"라고 요청하면 자동으로 체크해줍니다.

함정 3 — 사용자 입력을 검증 안 한다

웹사이트 검색창에 <script>alert("hack")</script>를 넣었을 때 그게 실행되면 — XSS 취약점입니다. Claude에게:

"사용자 입력을 받는 모든 곳에 적절한 검증과 sanitization을 추가해줘."

함정 4 — 인증 없이 민감한 데이터 노출

"내 가계부 앱"에서 URL만 알면 누구나 접근 가능 — 이게 사실 흔합니다. 비밀번호든, OAuth든, 무엇이든 인증 한 줄이 필요합니다.

함정 5 — Claude에게 "보안 신경 안 써도 돼"라고 말함

"개인용이니까 괜찮아"라고 절대 말하지 마세요. 개인용도 인터넷에 올라가는 순간 공개입니다.

언제 진짜 엔지니어를 부르는가

다음 신호 중 2개 이상이면 사람 엔지니어가 필요합니다:

  1. 사용자가 100명을 넘었다 — 성능, 데이터베이스, 인프라 고민 시작
  2. 돈이 흐른다 — 결제, 환불, 세금. 실수하면 법적 문제
  3. 민감한 데이터를 다룬다 — 의료, 금융, 개인정보
  4. 다운타임이 비즈니스 손실 — 고객이 항상 접근 가능해야 함
  5. 코드 5,000줄을 넘었다 — Claude도 한 번에 다 못 본다
  6. 3명 이상이 협업 — 충돌 관리, 코드 리뷰 필요

이때 비엔지니어로서 당신의 역할은 CTO가 아니라 PM으로 전환됩니다. 엔지니어를 채용하거나 외주를 주되, 당신은 무엇을 만드는지를 명확히 정의하는 사람.

좋은 소식 — 바이브 코딩으로 만든 MVP는 채용에 큰 도움이 됩니다. "내가 이걸 직접 만들었다"고 보여줄 수 있으니까요.

Git을 배우세요 (50분이면 됩니다)

Git은 비엔지니어가 가장 자주 미루는 단 하나의 기술입니다. 그러나 50분만 투자하면 평생의 시간을 절약합니다.

핵심 명령 5개:

git init                    # 프로젝트 시작
git add .                   # 변경 사항 추적
git commit -m "메시지"       # 스냅샷 저장
git push                    # GitHub에 올리기
git checkout HEAD~1         # 이전 버전으로 되돌리기

이게 다입니다. Claude에게 "이 5개 명령을 단계별로 가르쳐줘"라고 부탁하세요. 50분이면 끝납니다.

Git이 있으면: 무엇이 망가져도 되돌릴 수 있고, AI가 잘못된 방향으로 가도 즉시 취소할 수 있습니다.

작은 도구의 누적

비엔지니어가 바이브 코딩에서 가장 큰 가치를 얻는 방법은 큰 앱 하나가 아니라 작은 도구 여러 개입니다.

코피페이서의 예 — 한 사람이 1년 동안 바이브 코딩으로 만든 것들:

  • 매주 러닝 데이터를 시각화하는 미니 사이트 (3시간)
  • Apple Health 데이터를 PDF 리포트로 만드는 도구 (5시간)
  • 여행지 환율 자동 갱신 가계부 (= TripBooks, 30시간)
  • 도시별 러닝 코스 GPX 파일 정리하는 스크립트 (1시간)
  • 블로그 (= 이 사이트, 50시간)

각각은 작습니다. 누적은 큽니다. 이게 바이브 코딩의 진짜 약속입니다.

1년 후의 당신

이 3부작을 다 따라온 후, 1년 동안 매주 1시간씩 바이브 코딩을 하면:

  • 약 50개의 작은 도구
  • 5~10개는 일상에서 매일 쓰는 것
  • 1~2개는 다른 사람도 쓰고 싶어할 만한 것
  • 그리고 — 무엇이 가능하고 무엇이 어려운지에 대한 정확한 감각

당신은 엔지니어가 되지는 않을 겁니다. 그러나 — 만든 사람이 됩니다. 그게 어쩌면 더 중요합니다.

1년 전 "나는 개발자가 아니라서…"라고 말했던 당신은 사라집니다.

다음 프로젝트는 무엇으로 할 건가요?

관련 글