1. 바이브코딩이란 무엇인가
2025년 2월, AI 연구자 Andrej Karpathy(前 Tesla AI 디렉터, OpenAI 공동창업자)가 X에 올린 한 트윗이 업계를 뒤집었습니다.
"There's a new kind of coding I call 'vibe coding', where you fully give in to the vibes, embrace exponentials, and forget that the code even exists. It's not really coding if you think about it... I just see stuff, say stuff, run stuff, and copy paste stuff, and it mostly works."
번역하면: "나는 이걸 바이브코딩이라 부른다 — 코드 자체를 신경 쓰지 않고, AI가 하는 걸 보면서 말하고, 실행하고, 복붙한다. 잘 된다." Karpathy는 세계 최고 수준의 개발자임에도 불구하고 이렇게 썼습니다.
이게 중요한 이유가 있습니다. 바이브코딩은 "코드를 모르는 사람이 어설프게 AI를 쓰는 것"이 아닙니다. 전문 개발자조차 속도와 효율을 위해 의도적으로 선택하는 패러다임입니다. "코드를 읽고 이해하기보다, 결과가 원하는 대로 작동하는지에 집중한다"는 마인드셋의 전환입니다.
바이브코딩 vs 기존 코딩 vs AI 보조 코딩
| 방식 | 기존 코딩 | AI 보조 코딩 | 바이브코딩 |
|---|---|---|---|
| 코드 이해 | 모든 코드 직접 작성·이해 | AI가 제안, 개발자가 검토 | 결과 중심 (코드 이해 선택적) |
| 속도 | 느림 (일 단위) | 빠름 (시간 단위) | 매우 빠름 (분~시간 단위) |
| 진입장벽 | 높음 (수년 학습) | 중간 (기초 지식 필요) | 낮음 (개념만 알면 됨) |
| 프로토타입 | 며칠~주 단위 | 하루 단위 | 시간 단위 |
| 유지보수 | 쉬움 (내가 작성) | 보통 | 어려울 수 있음 |
| 복잡한 시스템 | 가능 | 가능 | 한계 있음 |
바이브코딩이 가능해진 이유
- LLM 코딩 능력 폭발: Claude Sonnet 4.6, GPT-4o는 SWE-bench(실제 GitHub 이슈 해결 벤치마크)에서 50% 이상 해결 — 평균 시니어 개발자 수준
- 컨텍스트 창 확장: 200K 토큰이면 중간 규모 프로젝트 전체 코드베이스를 한 번에 읽을 수 있음
- 도구 생태계 성숙: AI가 파일 시스템·터미널·브라우저를 직접 조작하는 에이전트 도구들이 2025년부터 급격히 성숙
- 반복 실행 루프: AI가 코드 생성 → 실행 → 에러 감지 → 수정을 자동으로 반복
2. 바이브코딩 마인드셋 — 어떻게 생각해야 하나
바이브코딩으로 처음 전환할 때 가장 큰 장벽은 기술이 아니라 마인드셋입니다. 기존 개발자는 코드를 완전히 이해하지 못하면 불안감을 느낍니다. 이걸 극복해야 합니다.
원칙 1: "코드"가 아니라 "동작"에 집중
바이브코딩에서 기준은 "코드가 올바른가?"가 아니라 "원하는 대로 동작하는가?"입니다. 코드가 얼마나 아름다운지, 패턴이 맞는지는 나중에 생각해도 됩니다. 일단 돌리세요.
원칙 2: AI를 주니어 개발자처럼 대화
AI에게 "로그인 기능 만들어줘"는 너무 모호합니다. 실제 팀에서 주니어 개발자에게 지시하듯 구체적으로: "이메일/비밀번호로 로그인, JWT 토큰 발급, 7일 만료, httpOnly 쿠키로 저장, 로그아웃 시 쿠키 삭제, 비밀번호는 bcrypt 해싱 — 스택은 Next.js 14 App Router + PostgreSQL + Prisma."
원칙 3: 스몰 스텝으로 검증
한 번에 너무 많은 기능을 요청하면 AI가 만든 코드가 복잡하게 얽히고 나중에 수습이 어렵습니다. 기능 하나씩 완성하고 테스트 → 다음 기능. 이게 바이브코딩에서 가장 중요한 규율입니다.
원칙 4: Git 커밋을 자주, 아주 자주
AI가 잘못된 방향으로 100줄 코드를 수정했을 때 되돌릴 수 있어야 합니다. 기능 하나 완성될 때마다 커밋. 심지어 "지금 잘 됨"이라는 커밋 메시지도 훌륭합니다. 돌아갈 곳이 있어야 AI와 함께 과감하게 탐색할 수 있습니다.
원칙 5: 에러 메시지를 그대로 붙여넣기
에러가 났을 때 설명하려 하지 말고, 터미널·브라우저 콘솔 에러 전체를 복붙하세요. AI는 에러 메시지에서 원인을 정확히 파악합니다. "뭔가 안 돼요"보다 스택 트레이스 전체가 훨씬 유용합니다.
3. 2026 바이브코딩 도구 생태계 지도
도구가 너무 많아서 처음엔 어디서 시작해야 할지 막막합니다. 목적별로 나누면 훨씬 명확합니다.
| 도구 | 타입 | 주 용도 | 진입장벽 | 추천 대상 |
|---|---|---|---|---|
| 🖱️ Cursor | IDE (에디터) | 기존 프로젝트 개발·수정 | 중 (설치 필요) | 모든 개발자 |
| 🟠 Claude Code | 터미널 CLI | 코드베이스 분석·자율 개발 | 중 (터미널 지식) | 시니어 개발자 |
| 🌊 Windsurf | IDE (에디터) | 멀티스텝 자율 개발 | 중 (설치 필요) | 개발 경험 있는 사람 |
| ⚡ Bolt.new | 브라우저 기반 | 프로토타입 즉시 생성 | 낮음 (설치 없음) | 비개발자·기획자 |
| 💜 Lovable | 브라우저 기반 | 풀스택 앱 생성·배포 | 매우 낮음 | 비개발자·창업자 |
| 🔺 v0.dev | 브라우저 기반 | UI 컴포넌트 생성 | 낮음 | 프론트엔드·디자이너 |
| 🟢 Aider | 터미널 CLI | 오픈소스 코딩 어시스턴트 | 높음 (API 설정) | 해커·오픈소스 개발자 |
| 🐙 GitHub Copilot | VS Code 확장 | 인라인 자동완성 | 매우 낮음 | 기존 VS Code 사용자 |
4. Cursor AI — 딥다이브
핵심 기능 1: Agent 모드
Agent 모드는 Cursor의 핵심입니다. 일반 채팅 모드와 다르게, Agent는 자율적으로 파일을 읽고·만들고·수정하고·터미널 명령어를 실행합니다. "투두앱 만들어줘"라고 하면 Cursor가 알아서 파일 구조를 만들고, 코드를 작성하고, 패키지를 설치하고, 에러가 나면 수정합니다.
채팅창에 입력:
Next.js 14 App Router로 블로그를 만들어줘.
- MDX 파일에서 글을 읽어옴
- 목록 페이지 (/) 와 상세 페이지 (/posts/[slug])
- Tailwind CSS로 스타일링, 다크모드 지원
- 코드 하이라이팅 (rehype-pretty-code)
- 메타데이터로 SEO 처리
- Vercel 배포 가능하게 vercel.json도 만들어줘
핵심 기능 2: .cursorrules — AI의 작업 규칙 파일
프로젝트 루트에 .cursorrules 파일을 만들면, Cursor가 매 대화마다 이 규칙을 참고합니다. 팀 코딩 스타일, 금지 패턴, 기술 스택을 여기에 정의합니다.
# .cursorrules 예시 You are an expert Next.js 14 developer. ## 기술 스택 - Next.js 14 App Router (pages/ 디렉토리 사용 금지) - TypeScript (any 타입 사용 금지) - Tailwind CSS (inline style 사용 금지) - Prisma + PostgreSQL - NextAuth.js v5 ## 코딩 규칙 - 모든 함수는 JSDoc 주석 작성 - 에러 핸들링: try/catch 필수 - API 응답: { data, error, success } 형태 통일 - 한국어 주석 허용 ## 금지사항 - console.log 사용 금지 (logger 사용) - 하드코딩 문자열 (constants.ts에 정의) - any 타입
핵심 기능 3: Composer (멀티파일 편집)
Composer는 여러 파일을 동시에 수정해야 할 때 씁니다. Cmd+I (Mac) / Ctrl+I (Windows)로 열립니다. "이 API 엔드포인트를 추가하고, 프론트에서 호출하는 훅도 만들고, 관련 타입도 업데이트해줘"처럼 cross-file 작업에 최적입니다.
핵심 기능 4: 코드베이스 인덱싱
Cursor는 프로젝트 전체를 인덱싱해서 "이 프로젝트에서 인증은 어떻게 처리해?"나 "UserService가 어디서 사용되고 있어?"같은 질문에 답합니다. 레거시 코드베이스 파악에 실제로 씁니다.
핵심 기능 5: MCP (Model Context Protocol) 연동
Cursor는 MCP를 지원합니다. MCP는 AI 도구에 외부 데이터·도구를 연결하는 표준 프로토콜입니다. Supabase MCP, Stripe MCP 등을 연결하면 Cursor가 데이터베이스 스키마를 직접 읽고, Stripe API를 직접 호출하면서 코드를 작성할 수 있습니다.
# ~/.cursor/mcp.json 예시 { "mcpServers": { "supabase": { "command": "npx", "args": ["@supabase/mcp-server-supabase", "--access-token", "YOUR_TOKEN"] } } }
가격 플랜
| 플랜 | 가격 | 주요 내용 |
|---|---|---|
| Hobby (무료) | $0 | 느린 모델 50회/월, Pro 기능 2주 체험 |
| Pro | $20/월 (₩27,600) | 빠른 모델 500회/월, 느린 모델 무제한, Agent 무제한 |
| Business | $40/인/월 | 팀 관리, SSO, 프라이버시 모드 |
장점
- VS Code 완벽 호환 (확장·설정 그대로)
- Agent 모드 자율성이 업계 최고 수준
- .cursorrules로 팀 코딩 컨벤션 유지
- 코드베이스 인덱싱으로 레거시 이해
- MCP 연동으로 외부 도구 통합
- 무료 플랜도 쓸 만함
단점
- Pro $20/월 비용 부담
- 무료 플랜은 빠른 모델 월 50회 제한
- 대규모 모노레포에서 인덱싱 느림
- 가끔 Agent가 너무 많이 수정해서 롤백 필요
5. Claude Code — 딥다이브
설치 및 시작
# Node.js 18+ 필요 npm install -g @anthropic-ai/claude-code # 프로젝트 디렉토리에서 실행 cd my-project claude # 비대화형 모드로 실행 (스크립트/CI용) claude -p "모든 테스트를 실행하고 실패한 테스트 목록을 알려줘"
CLAUDE.md — 프로젝트 컨텍스트 파일
프로젝트 루트에 CLAUDE.md 파일을 만들면, Claude Code가 세션을 시작할 때 자동으로 읽습니다. 프로젝트 구조, 사용 명령어, 주의사항을 여기에 정리하세요. Cursor의 .cursorrules와 같은 역할입니다.
# CLAUDE.md 예시 ## 프로젝트 개요 - Django 4.2 + DRF REST API - PostgreSQL 15, Redis 7 - 결제: KG이니시스 API ## 자주 쓰는 명령어 - 서버 실행: python manage.py runserver - 테스트: pytest -xvs - 마이그레이션: python manage.py migrate - 캐시 초기화: redis-cli FLUSHALL ## 주의사항 - settings.py는 절대 수정하지 말 것 (settings/local.py 사용) - 결제 관련 코드는 반드시 테스트 코드 작성 - 한국 전화번호 형식: 010-XXXX-XXXX ## 디렉토리 구조 apps/ users/ # 유저 관리 payments/ # 결제 products/ # 상품 api/ # URL 라우팅 tests/ # 통합 테스트
주요 슬래시 커맨드
/init— 프로젝트 분석 후 CLAUDE.md 자동 생성/review— 현재 변경사항 코드 리뷰/bug— 버그 원인 분석 모드/memory— Claude Code의 메모리(프로젝트 지식) 관리/mcp— MCP 서버 연결 상태 확인
실전 사용 패턴
# Claude Code 세션 시작
claude
# 프로젝트 분석
> 이 프로젝트 전체 구조를 파악하고 주요 흐름을 설명해줘.
특히 유저 인증과 결제 흐름이 어떻게 연결되는지.
# 버그 탐색
> 어제부터 결제 완료 후 이메일이 안 가는데, 원인을 찾아줘.
최근 커밋 내역도 확인해봐.
# 수정
> 찾은 원인 수정하고, 관련 테스트 코드도 업데이트해줘.
# 비대화형 모드로 CI에서 사용
claude --dangerously-skip-permissions \
-p "테스트 실행하고, 실패하면 원인 분석해서 수정한 뒤 PR 설명 작성해줘"
--dangerously-skip-permissions는 모든 파일 접근·삭제 등 위험한 작업을 허용합니다. CI 환경에서만 사용하세요. 로컬에서는 항상 변경사항을 확인하며 사용합니다.
MCP 서버 연결
Claude Code도 MCP를 통해 외부 도구와 통합됩니다. Supabase, GitHub, Sentry 등과 연결하면 Claude가 직접 데이터를 가져와 코드를 작성합니다.
# ~/.claude/settings.json { "mcpServers": { "github": { "command": "npx", "args": ["@modelcontextprotocol/server-github"], "env": { "GITHUB_TOKEN": "ghp_xxx" } } } }
장점
- 전체 코드베이스 맥락 파악 탁월
- CLAUDE.md로 지속적 컨텍스트 유지
- Git 작업 완벽 통합
- CI/CD 파이프라인 통합 가능
- MCP로 외부 도구 연동
- Claude Pro 구독이면 추가 비용 없음
단점
- 터미널 기반 — GUI 없음
- 처음엔 진입장벽 있음
- 실시간 미리보기 불편 (브라우저 따로 열어야)
- Claude Pro/Max 구독 필요
6. Windsurf (Codeium) — 딥다이브
Cascade AI — Windsurf의 핵심
Cascade는 Windsurf의 AI 에이전트입니다. Cursor의 Agent 모드와 비슷하지만, "Flows"라는 개념이 다릅니다. Flows는 AI가 작업하는 과정을 시각화하여 어떤 파일을 왜 수정하는지 실시간으로 보여줍니다. 블랙박스 느낌이 덜합니다.
Windsurf vs Cursor — 실제 차이
| 기능 | Windsurf | Cursor |
|---|---|---|
| 무료 플랜 | 더 관대함 (무제한 자동완성) | 월 50회 빠른 모델 |
| Pro 가격 | $15/월 | $20/월 |
| 에이전트 | Cascade (좋음) | Agent (최고) |
| VS Code 호환 | 완벽 | 완벽 |
| 모델 선택 | Codeium 자체 + 외부 | Claude, GPT-4, Gemini 등 |
| MCP 지원 | 지원 | 지원 |
결론: 돈이 부담된다면 Windsurf부터 시작하세요. Cursor에 익숙해진 후 Windsurf로 바꿔도 됩니다. 두 에디터 모두 VS Code 기반이라 전환 비용이 거의 없습니다.
장점
- 무료 플랜이 Cursor보다 훨씬 관대함
- Pro $15/월 — Cursor보다 $5 저렴
- Flows로 AI 작업 과정 시각화
- Cascade 에이전트 성능 좋음
- VS Code 확장 그대로 사용
단점
- 커뮤니티·생태계가 Cursor보다 작음
- cursorrules 같은 .rules 파일 덜 발달
- 일부 최신 모델 연동이 Cursor보다 느림
7. Bolt.new — 딥다이브
어떻게 작동하나
Bolt.new는 브라우저 안에서 Node.js 실행 환경(WebContainers)을 구동합니다. 즉, 로컬에 아무것도 설치하지 않아도 npm install, 개발 서버 실행, 파일 수정이 모두 브라우저에서 됩니다.
실전 프롬프트 전략
# 나쁜 프롬프트 — 너무 모호 Todo 앱 만들어줘 # 좋은 프롬프트 — 구체적인 스펙 React + TypeScript + Tailwind CSS로 투두앱을 만들어줘. 기능: - 할 일 추가 (Enter 키 또는 버튼) - 완료 체크 (체크하면 줄긋기 효과) - 삭제 버튼 - 필터: 전체/완료/미완료 - 로컬스토리지 저장 (새로고침해도 유지) 디자인: - 흰색 카드 형태, 그림자 효과 - 완료된 항목은 회색으로 - 모바일 최적화 - 다크모드는 안 해도 됨
Bolt.new로 실제 서비스 가능한가?
가능합니다. Bolt는 Netlify, Vercel로 원클릭 배포를 지원합니다. 단, 복잡한 백엔드 로직(서버사이드 인증, 결제, 실시간 기능)은 Supabase, Firebase, Clerk 같은 서드파티 BaaS를 연동해야 합니다. Bolt 자체는 프론트엔드 중심입니다.
React + Supabase로 공유 할일 앱을 만들어줘.
Supabase 프로젝트 URL: https://xxx.supabase.co
Supabase anon key: eyJxx...
테이블 스키마:
- todos: id, user_id, text, completed, created_at
- users는 Supabase Auth 기본 테이블 사용
기능:
- 구글 소셜 로그인 (Supabase Auth)
- 로그인한 사람만 자신의 할일 관리
- 실시간 업데이트 (Supabase Realtime)
장점
- 설치 없음 — 브라우저에서 바로
- 비개발자 진입장벽 최저
- Netlify/Vercel 원클릭 배포
- Supabase, Clerk 등 BaaS와 잘 맞음
- 실시간 미리보기
단점
- 무료 플랜 토큰 금방 소진
- 복잡한 커스터마이징 한계
- 기존 로컬 프로젝트 연동 불편
- 대규모 앱에는 부적합
8. Lovable — 딥다이브
Bolt vs Lovable — 어떤 걸 선택?
- Bolt.new: 개발자 친화적, 더 많은 기술적 자유도, 기술 스택 직접 선택
- Lovable: 비개발자 친화적, GitHub 연동 자동, Supabase 클릭 한 번에 연결, UI가 더 친절
Lovable의 독특한 기능: GitHub 동기화
Lovable에서 만든 프로젝트는 GitHub 리포지토리와 자동으로 동기화됩니다. Lovable에서 뭔가 만들면 → GitHub에 자동 커밋 → Cursor나 VS Code에서 로컬로 클론해서 세밀하게 수정 가능. Bolt는 이게 안 됩니다.
장점
- 비개발자 UI 최고
- GitHub 자동 동기화
- Supabase 원클릭 연동
- 배포 자동화 (lovable.app 도메인)
- 한국어 프롬프트 잘 됨
단점
- Bolt보다 기술적 자유도 낮음
- 무료 메시지 금방 소진
- Starter $20, Pro $50 — 비쌈
9. v0.dev (Vercel) — 딥다이브
v0는 언제 쓰나
v0는 Bolt나 Lovable처럼 전체 앱을 생성하는 게 아닙니다. 특정 UI 컴포넌트를 shadcn/ui + Tailwind CSS 기반으로 빠르게 생성하는 용도입니다. 이미 Next.js 프로젝트가 있고, 특정 페이지의 UI를 빠르게 만들어야 할 때 씁니다.
대시보드 레이아웃 만들어줘.
- 왼쪽 사이드바 (메뉴 아이콘 + 텍스트)
- 상단 헤더 (검색, 알림 버튼, 프로필 아바타)
- 메인 컨텐츠 영역
- 반응형 (모바일에서는 사이드바 숨김)
- shadcn/ui 컴포넌트 사용, Tailwind 스타일링
장점
- shadcn/ui + Tailwind 컴포넌트 최강
- 미리보기 즉시 확인
- 이미지→코드 변환 가능
- Vercel 생태계 완벽 통합
- 무료 크레딧 관대함
단점
- 전체 앱 생성은 못 함 (컴포넌트 단위)
- shadcn/ui + Next.js 이외 스택에는 약함
- 백엔드 로직은 전혀 다룰 수 없음
10. Aider — 오픈소스 터미널 코딩 AI
설치 및 시작
# pip으로 설치 pip install aider-chat # Claude Sonnet 4.6 사용 (권장) export ANTHROPIC_API_KEY=sk-ant-xxx aider --model claude-sonnet-4-6 # DeepSeek V3 (저렴한 옵션) export DEEPSEEK_API_KEY=sk-xxx aider --model deepseek/deepseek-chat # 로컬 Ollama 사용 (완전 무료) aider --model ollama/codellama:34b
Aider의 핵심: 자동 Git 커밋
Aider는 코드를 수정할 때마다 자동으로 Git 커밋을 만듭니다. 커밋 메시지도 변경 내용을 보고 자동으로 작성합니다. 실수로 코드를 망쳤다면 git log를 보면서 원하는 시점으로 돌아가면 됩니다.
비용 비교: Aider vs Claude Code
| 방식 | 월 비용 | 모델 | 장점 |
|---|---|---|---|
| Claude Code (Pro) | $20/월 고정 | Sonnet 4.6 | 편리함, 추가 설정 없음 |
| Aider + Claude API | 사용량 따라 $5~50 | Sonnet/Opus 선택 | 많이 쓰면 비쌀 수도, 적게 쓰면 저렴 |
| Aider + DeepSeek V3 | $1~5/월 | DeepSeek V3 | 극도로 저렴, 성능도 준수 |
| Aider + Ollama | $0 (전기세만) | 로컬 모델 | 완전 무료, 느리고 성능 낮음 |
장점
- 오픈소스 — 완전 무료 도구
- 어떤 LLM API든 연결 가능
- 자동 Git 커밋으로 이력 관리
- 로컬 모델(Ollama)로 완전 무료 사용 가능
- 기업 환경에서 코드 외부 전송 없이 사용
단점
- 설정 복잡함 (API 키 직접 관리)
- Claude Code보다 UX 거침
- GUI 없음
- 많이 쓰면 API 비용 예측 어려움
11. GitHub Copilot — 딥다이브
Copilot Free — 2026년 기준
- 월 2,000회 코드 완성 (인라인 자동완성)
- 월 50개 채팅 메시지
- Copilot Edits 사용 가능
- VS Code, Visual Studio, JetBrains IDE 지원
Copilot의 Agent 모드
2025년 말부터 Copilot에도 "Agent 모드"가 추가되었습니다. Cursor의 Agent와 비슷하게 여러 파일을 자율적으로 수정합니다. 다만, 아직 Cursor Agent 수준은 아닙니다. 인라인 자동완성 + 간단한 채팅 용도로는 Copilot이 더 가볍고 빠릅니다.
Cursor vs Copilot — 어떤 걸 선택?
| 상황 | 추천 |
|---|---|
| 처음 AI 코딩 시작, 비용 최소화 | Copilot Free |
| 자율 에이전트로 전체 기능 개발 | Cursor Pro |
| JetBrains(IntelliJ, PyCharm) 사용자 | Copilot |
| VS Code에서 인라인 자동완성만 원함 | Copilot Free |
| 레거시 코드베이스 분석·리팩토링 | Claude Code |
12. 바이브코딩 프롬프팅 기법 — 실전 모음
좋은 프롬프트는 바이브코딩의 절반입니다. 막연하게 쓰면 AI도 막연하게 만듭니다.
기법 1: 스펙 파일 먼저 작성
코딩 시작 전에 AI에게 스펙 문서를 먼저 만들게 하세요. "내 아이디어를 듣고 기술 스펙 문서를 만들어줘"라고 한 후, 그 스펙을 기반으로 구현을 시작하면 방향이 흔들리지 않습니다.
# 1단계: 스펙 문서 생성
"재능기부 매칭 플랫폼을 만들려고 해. 비개발자인 사람이 디자인 재능을
기부하고, 비영리단체가 요청을 올리는 플랫폼. 이걸 Next.js + Supabase로
만들 때의 기술 스펙 문서를 작성해줘. 페이지 구조, DB 스키마, API 엔드포인트,
인증 방식까지 포함해서."
# 2단계: 스펙 확인 후 구현
"위 스펙대로 프로젝트를 설정해줘. 먼저 폴더 구조부터."
기법 2: 컨텍스트를 충분히
AI는 당신의 코드베이스를 모릅니다. 작업 전에 충분한 컨텍스트를 줘야 합니다.
# 나쁜 예 — 컨텍스트 없음
"결제 버튼 추가해줘"
# 좋은 예 — 충분한 컨텍스트
"현재 Next.js 14 App Router 프로젝트야. 결제는 KG이니시스를 써.
상품 상세 페이지 (app/products/[id]/page.tsx)에 결제 버튼을 추가해줘.
버튼 클릭 시 이니시스 결제창이 열리고, 결제 완료 후 /orders/[id]로 이동.
KG이니시스 웹표준 방식 사용. 기존 useCart 훅에서 cartItems를 가져와."
기법 3: 에러는 전체 스택트레이스를
# 나쁜 예
"에러 나요"
# 좋은 예 — 에러 전체 복붙
"아래 에러가 났어. 원인 찾고 수정해줘:
TypeError: Cannot read properties of undefined (reading 'map')
at ProductList (./components/ProductList.tsx:23:18)
at renderWithHooks (./node_modules/react-dom/...)
..."
기법 4: 단계별로 확인하면서 진행
# 한 번에 너무 많이 요청 → 실패 확률 높음
"로그인, 회원가입, 상품 등록, 장바구니, 결제, 주문 내역 다 만들어줘"
# 단계별로 → 훨씬 안전
"1단계: 로그인/회원가입 UI만 만들어줘. 아직 API 연결은 하지 마."
(확인 후)
"2단계: Supabase Auth 연결해줘."
(확인 후)
"3단계: 로그인 상태에서만 접근 가능한 미들웨어 추가해줘."
기법 5: 테스트 먼저 (TDD 바이브코딩)
"결제 로직 구현 전에 테스트 코드부터 작성해줘.
- 정상 결제 성공
- 금액 불일치 에러
- 네트워크 타임아웃
- 이미 결제된 주문 재결제 시도
위 케이스를 Jest로 작성하고, 그 다음에 테스트를 통과하는 구현체 만들어줘."
13. 실전 프로젝트: 0에서 배포까지
바이브코딩으로 실제 서비스를 만드는 전체 흐름입니다. "링크 단축 서비스 (bit.ly 클론)"를 예시로 합니다.
아이디어 → 스펙 문서 (AI에게 맡기기)
Claude에게: "bit.ly 같은 링크 단축 서비스를 만들려고 해. Next.js 14 + Supabase + Vercel로 만들 때의 기술 스펙 문서를 작성해줘. DB 스키마, URL 단축 알고리즘, API, 인증, 분석 기능까지." → 스펙 문서 생성 후 확인 및 조율.
프로젝트 초기 설정 (Cursor Agent)
Cursor Agent에게: "위 스펙대로 Next.js 14 프로젝트 설정해줘. Tailwind, shadcn/ui, Prisma + Supabase, NextAuth 설치하고 기본 폴더 구조 잡아줘." → 실행 확인 → Git 커밋.
핵심 기능 구현 (기능별 분리)
URL 단축 API → 리디렉션 로직 → 클릭 수 집계 → 대시보드 UI 순서로 하나씩 구현. 매 기능마다 테스트 후 Git 커밋.
UI 다듬기 (v0.dev 활용)
v0.dev에서 대시보드 UI 컴포넌트 생성 → 코드 복사 → Cursor에서 프로젝트에 통합. v0가 생성한 컴포넌트는 shadcn/ui 기반이라 바로 쓸 수 있습니다.
배포 및 모니터링 설정
Vercel 배포 (Git 연동 후 push → 자동 배포). Claude Code에게: "vercel.json 설정하고, 에러 모니터링 Sentry 추가해줘. 환경변수 목록도 정리해줘."
14. 바이브코딩의 한계 — 솔직하게
바이브코딩은 만능이 아닙니다. 한계를 알고 써야 나중에 낭패를 보지 않습니다.
AI는 실제로 실행해보지 않고 코드를 씁니다. 특히 보안 관련 코드(인증, 결제, 개인정보)는 반드시 직접 리뷰하거나 전문가에게 검토받으세요.
한계 1: 복잡한 시스템 아키텍처
마이크로서비스, 이벤트 드리븐 아키텍처, 분산 시스템 설계는 AI가 전체를 설계하기 어렵습니다. 큰 결정은 사람이 내리고, AI는 구현을 맡기세요.
한계 2: 레거시 코드베이스 통합
10년된 레거시 Java/Spring 코드에 새 기능을 붙일 때 AI가 전체 맥락을 파악하기 어렵습니다. 이 경우 Claude Code의 /init 명령으로 프로젝트 분석을 시작하고, 소스 범위를 제한해서 작업하는 게 현실적입니다.
한계 3: 성능 최적화
N+1 쿼리, 메모리 누수, DB 인덱스 최적화는 AI가 처음부터 완벽하게 다루지 못합니다. 기능 구현은 AI, 성능 튜닝은 사람이라는 분업이 현실적입니다.
한계 4: "AI 스파게티" 문제
바이브코딩을 장기간 하면 코드베이스가 AI가 덧붙인 코드로 가득차서 아무도 이해 못하는 상태가 됩니다. 주기적으로 리팩토링 세션을 잡아서 AI에게 "이 코드를 정리해줘, 중복 제거하고 구조화해줘"라고 하거나, 직접 정리해야 합니다.
한계 5: 보안 취약점
AI는 XSS, SQL Injection, CSRF를 방지하는 코드를 기본으로 쓰긴 하지만, 100% 신뢰할 수 없습니다. 인증/권한 관련 코드는 반드시 리뷰하세요.
15. 고급 바이브코딩 워크플로우
멀티 에이전트 패턴
하나의 Claude Code 세션이 아니라, 역할별로 여러 AI 도구를 동시에 사용하는 패턴입니다.
실제로 이 블로그 사이트도 Claude Code 여러 에이전트를 병렬로 띄워서 만들었습니다. 5개 에이전트를 동시 실행해서 8개 파일을 병렬 생성.
AI가 AI를 지시하는 패턴
설계 AI (Claude Opus)가 구현 계획을 세우고, 구현 AI (Claude Sonnet, DeepSeek)가 실행하는 분업입니다. 복잡한 기능을 구현할 때 Opus에게 "이 기능을 어떻게 구현할지 단계별 계획을 세워줘"라고 하고, 그 계획을 Sonnet에게 전달해서 구현하게 합니다.
메모리 관리: CLAUDE.md / .cursorrules 고도화
장기 프로젝트에서 AI가 일관성을 유지하려면 메모리 파일을 정교하게 관리해야 합니다. 단순한 스타일 가이드를 넘어, 중요 결정 이유, 알려진 버그, 피해야 할 패턴, 외부 API 특이사항까지 기록합니다.
# CLAUDE.md 고급 예시 ## 알려진 이슈 및 해결책 - KG이니시스 콜백: localhost에서 테스트 불가, ngrok 사용할 것 - Supabase realtime: production에서 WebSocket 타임아웃 90초 → keep-alive 설정 필요 - next/image: Supabase Storage URL은 next.config.js remotePatterns에 추가해야 함 ## 절대 하지 말 것 - user.id를 URL 파라미터로 노출 (UUID 대신 slug 사용) - 프론트엔드에서 직접 Supabase admin key 사용 - console.log 프로덕션 코드에 남기기 ## 결정 이유 (나중에 왜 이렇게 했나 물어볼 때) - NextAuth 대신 Supabase Auth 선택 이유: KakaoTalk 소셜 로그인 지원이 Supabase가 더 쉬움 - Pages Router 대신 App Router: 팀 전체 동의, 미래 호환성
16. 2026년 바이브코딩 도구 가격 총정리
| 도구 | 무료 플랜 | 유료 시작가 | 추천 대상 |
|---|---|---|---|
| 🖱️ Cursor | 빠른 모델 50회/월 | Pro $20/월 (₩27,600) | 모든 개발자 1순위 |
| 🟠 Claude Code | — | Claude Pro $20/월 포함 | Claude Pro 구독자 무료 |
| 🌊 Windsurf | 무제한 자동완성 | Pro $15/월 (₩20,700) | Cursor 대안 (저렴) |
| ⚡ Bolt.new | 토큰 제한 있음 | $20/월 (₩27,600) | 비개발자 프로토타입 |
| 💜 Lovable | 메시지 제한 있음 | $20/월 (₩27,600) | 비개발자 풀스택 앱 |
| 🔺 v0.dev | 200 크레딧/월 | $20/월 (₩27,600) | UI 컴포넌트 생성 |
| 🟢 Aider | 무료 (API 비용만) | API 사용량 따라 | 해커·오픈소스 개발자 |
| 🐙 GitHub Copilot | 2,000 완성/월 | Pro $10/월 (₩13,800) | 인라인 자동완성 입문 |