Vibe coding
바이브 코딩(Vibe coding)은 대규모 언어 모델(LLM)에 프롬프트를 입력하여 문제를 해결하는 AI 기반 프로그래밍 기법이다.
LLM이 소프트웨어를 생성하면서 프로그래머의 역할은 직접 코딩이 아니라 AI가 생성한 소스 코드를 테스트하고 수정하고, 가이드하는 방향으로 변화하고 있다.
바이브 코딩(Vibe Coding)은 지지자들에 의해 개발을 잘모르는 초보자도 소프트웨어 엔지니어링에 대한 훈련과 기술 없이 소프트웨어를 생산할 수 있게 해준다고 주장한다.
이 용어는 2025년 2월 안드레이 카파시(Andrej Karpathy)에 의해 소개되었으며 다음 달 Merriam-Webster 사전에 "속어 및 트렌드" 명사로 등재되었다.
Categories
Vibe Coding 매뉴얼
Vibe Coding은 인간이 AI 모델과 협업해 효율적으로 프로젝트를 구축하는 소프트웨어 개발 방식
- 세 가지 핵심 기둥으로 구성됨:
- 명세(Specification): 목표 정의 (예: “로그인 기능이 있는 Twitter 클론 구축”)
- 규칙(Rules): 명시적인 제약 설정 (예: “Python 사용, 복잡성 피하기”)
- 감독(Oversight): 프로세스를 모니터링하고 일관성 보장
- .cursor/rules , .windsurfrules에 가진 네 개의 파일(또는 섹션)을 구성
- 1. 코딩 선호도 – “이렇게 코드를 작성하세요” : 코드 스타일 및 품질 표준을 정의
- 2. 기술 스택 – “이런 도구를 사용하세요” : 도구 및 기술을 명시
- 3. 워크플로우 선호도 – “이렇게 작업하세요” : AI의 프로세스 및 실행을 관리
- 4. 커뮤니케이션 선호도 – “이렇게 대화하세요” : AI-인간 상호작용에 대한 기대치를 설정
AI로 프로그래밍 효율과 품질을 높이기 위한 실전 팁 모음
AI 코딩 도구를 써서 사람이 1~2시간 걸리던 변환 작업을 15~20분 리뷰 수준으로 줄이고 싶음. 하지만, 현재는 AI가 만들어주는 코드 품질이 직접 짠 코드의 90%에도 못 미쳐서 실질적인 도움이 되지 않는것 같음. AI를 어떻게 써야 생산성과 코드 품질을 동시에 끌어올릴 수 있는지 방법이 궁금함.
- 반복 가능한 작업에만 AI를 집중 투입하기
- AI는 비슷한 형태의 작업을 여러 번 반복할 때 가장 큰 효과를 냄
- 한 번은 사람이 직접 최고 품질로 구현하고, 이를 기준 예제로 사용
- 이후 동일 패턴 작업을 AI에 맡겨 대량 처리
- 사고와 판단이 필요한 작업에는 기대 효율이 급격히 낮아짐
- 코딩 전에 반드시 계획부터 만들기
- 바로 코드를 생성하지 말고 해결 계획을 먼저 작성
- 계획 단계에서 모호한 부분과 질문을 모두 드러내게 함
- 계획이 만족스럽지 않으면 실행 단계로 넘어가지 않음
- 결과 품질은 프롬프트보다 계획 문서의 명확도에 좌우됨
- 작업 단위를 극도로 작게 쪼개기
- 파일 하나, 컴포넌트 하나, 함수 몇 개 단위로 요청
- “전체 리팩터링”, “idiomatic하게 개선” 같은 요청은 실패 확률이 높음
- 구조 설계는 사람이 하고, 반복 구현만 AI에 맡김
- 컨텍스트는 쌓지 말고 자주 초기화하기
- 대화가 길어질수록 규칙 준수와 품질이 급격히 떨어짐
- 한 세션은 하나의 작업만 처리
- 방향이 바뀌면 새 세션에서 다시 시작
- 장기 작업은 문서(plan.md 등)로 상태를 보존하고 재주입
- 규칙 문서는 짧고 기계적으로 만들기
- CLAUDE.md / AGENTS.md는 500~1000 토큰 내로 유지
- 선언적 지침보다 구체적이고 검증 가능한 규칙 위주로 작성
- 자주 틀리는 것만 최소한으로 기록
- 나머지는 코드와 자동 검사로 강제
- 테스트·린터·빌드를 피드백 루프로 사용하기
- “잘 만들어줘” 대신 통과 조건을 명확히 제시
- 테스트 통과, 빌드 성공, 린터 에러 0개를 목표로 설정
- 피드백 루프가 있어야 AI가 스스로 수렴함
- 기존 동작을 검증하는 테스트는 리팩터링 난이도를 크게 낮춤
- 실행 중 수정하지 말고 계획을 고쳐서 다시 실행하기
- 결과가 마음에 들지 않으면 코드 수정 요청을 반복하지 않음
- 계획 문서를 수정한 뒤 새 세션에서 다시 실행
- 실행 단계에서 방향을 틀면 품질이 빠르게 무너짐
- 예제 기반으로 스타일을 학습시키기
- 추상적인 “좋은 코드” 지시는 거의 효과 없음
- Before / After 예제를 함께 제공
- 좋은 예와 나쁜 예를 명확히 구분해 제시
- 예제를 중심으로 규칙을 확장
- 이해를 포기하지 말고 책임 경계를 명확히 하기
- AI가 생성한 코드는 반드시 사람이 이해하고 검토
- 프로토타입과 저위험 코드 외에는 무검토 사용 금지
- 보안·운영·장기 유지 코드에서는 이해가 품질의 전제
- 이 작업이 AI에 적합한지부터 점검하기
- 정답이 없고 미적·구조적 판단이 큰 작업은 AI에 불리함
- 시각적 결과를 자동 검증하기 어려운 UI 리팩터링은 특히 까다로움
- 필요한 경우:
- 1단계: 동작 유지 목적의 기계적 변환
- 2단계: 사람이 품질 리팩터링 수행
- 기대치는 “10% 개선”에서 시작하기
- 처음부터 10x를 기대하지 않음
- 작은 개선을 누적하는 전략이 장기적으로 더 효과적
- 설계와 품질 기준을 포기하지 않는 것이 핵심
바이브 코딩 문제점 및 한계
AI 코딩 도구를 활용해 점점 더 큰 작업을 맡기며 놀라움을 느꼈지만, 결과물의 일관성과 구조적 완성도가 부족함을 확인
- 세부 명세서를 작성해도 AI 에이전트가 장기적 맥락을 유지하거나 설계를 진화시키지 못함, 결국 코드베이스 전체가 불균질한 조각들의 집합으로 변함
- 코드 조각은 개별적으로는 완전해 보이지만, 전체적으로는 구조적 무질서(sloppy) 와 맥락 붕괴가 발생
- 이러한 경험 끝에 작성자는 AI가 만든 코드로는 사용자 신뢰나 데이터 보호를 보장할 수 없다고 판단, 직접 코드를 작성하는 방식으로 회귀
- AI 코딩은 여전히 유용하지만, 기술 부채와 개발자 통제력 상실을 초래할 수 있어 신중한 활용이 필요함
찐 개발자의 실전 워크플로우
작성된 계획을 개발자가 직접 검토하고 승인하기 전까지 Claude에게 코드를 작성하게 하지 않는 것입니다 이는 기획과 코딩의 분리를 통해 불필요한 시행착오를 줄이고, 개발자가 아키텍처 결정의 주도권을 유지하며, 더 효율적인 토큰 사용으로 더 나은 결과물을 얻을 수 있도록 돕습니다.
단계별 워크플로우:
- 리서치 (Research):
- 모든 작업은 코드베이스를 깊이 읽는 것부터 시작합니다.
- Claude에게 관련 부분을 철저히 이해시키고, 발견한 내용을 마크다운 파일(research.md)에 작성하게 합니다.
- 여기서 '깊이', '매우 상세히', '세부 사항'과 같은 단어를 사용하여 Claude가 대충 훑어보지 않도록 합니다. 이 단계는 시스템을 손상시키는 '조용한 실패'를 방지하는 데 중요합니다.
- 계획 (Plan):
- 별도의 마크다운 파일(plan.md)에 상세 구현 계획을 작성하게 합니다.
- 이 계획에는 접근 방식, 코드 스니펫, 수정될 파일 경로, 고려 사항, 트레이드오프 등이 포함됩니다.
- Claude Code의 내장 플랜 모드 대신 자체 Markdown 파일을 사용하는 것이 중요합니다. 이는 직접 편집, 인라인 메모 추가, 영구적인 산출물 저장 등의 장점이 있습니다.
- 검토 및 주석 달기 (Review & Annotation):
- Claude가 작성한 plan.md를 개발자가 에디터에서 직접 열어 메모를 추가하고 검토합니다.
- 메모는 잘못된 가정을 수정하거나, 접근 방식을 거부하거나, 제약 조건을 추가하거나, 도메인 지식을 알려주는 등 다양하게 활용됩니다.
- 메모를 추가한 후 Claude에게 "아직 구현하지 마"라고 명시적으로 지시하여 계획을 업데이트하게 하고, 이 과정을 만족할 때까지 반복합니다.
- 구현 (Implementation):
- 계획이 완전히 준비되면 Claude에게 구현 명령을 내립니다.
- 이 단계에서는 모든 결정이 이미 내려지고 검증되었으므로, 구현은 기계적이고 창의적이지 않게 진행됩니다.
- 개발자는 이 시점에서 감독자 역할을 수행하며, Claude가 계획대로 코드를 작성하는지 확인합니다.
- 잘못된 방향으로 가고 있다면 Git을 통해 이전으로 되돌리고 범위(scope)를 재설정하는 것이 중요합니다.
추가 팁:
- 운전대를 꼭 잡고 있기: Claude에게 실행은 맡기되, 무엇을 만들지에 대한 결정권은 절대 넘기지 않습니다.
- 하나의 긴 세션: 리서치, 기획, 구현을 별도 세션으로 나누지 않고 하나의 긴 세션 안에서 쭉 이어갑니다. 이는 Claude가 컨텍스트를 지속적으로 쌓아올리도록 돕습니다.
결론적으로, 이 워크플로우는 생각하는 것과 타이핑하는 것을 분리하는 규율 있는 파이프라인을 강조합니다.
핵심은 Claude에게 코드를 잘 쓰게 만드는 것이 아니라, 코드를 쓰기 전에 무엇을 써야 하는지를 확실하게 만드는 것입니다.
| 나의 개인적인 팁 |
| 전체적으로 이해가 되지 않는 내용은 모두 설명을 요구 (나를 이해시키는걸 요구하여 납득한 후 넘어간다) |
인지 부채: 속도가 이해를 앞지를 때
See also
Favorite site
Article
- 바이브 코딩으로 $18,500 벌고 배운 것 | GeekNews - 바이브 코딩으로 깨달은 10가지 핵심 원칙
- 규칙 정하기: AI에게 명확한 프로젝트 규칙과 제약사항을 제시하여 일관된 코드 품질을 유지하세요.
- 공식 문서 제공하기: 새로운 기술 스택을 사용할 때는 항상 공식 문서 링크를 함께 제공하세요.
- 코드가 잘못되면 직접 작성하기: 반복적인 오류가 발생하면 길게 설명하기보다 올바른 예시 코드를 직접 제공하세요.
- 채팅 히스토리 활용하기: 반복 작업을 위해 이전에 성공한 프롬프트와 마크다운 가이드 파일을 재사용하세요.
- 구체적인 프롬프트 작성하기: 기술 스택, 기능 요구사항, 제약조건, 예외처리 방법을 명확히 명시하세요.
- 반복적 피드백으로 개선하기: 구체적이고 객관적인 피드백을 통해 결과물을 점진적으로 개선하세요.
- 파일 단위로 작업하기: 큰 프로젝트를 작은 파일 단위로 나누어 오류 발견과 수정을 쉽게 만드세요.
- 어물쩍 넘어가지 말기: 디테일을 놓치지 말고 문제가 발생하면 정확히 어떤 부분이 잘못됐는지 지적하세요.
- 테스트 우선 접근법 적용하기: 구현 코드 작성 전에 테스트 케이스를 먼저 작성하여 명확한 목표를 설정하세요.
- 아이디어 짜기와 사업화하기: 기술 구현보다 핵심 아이디어와 비즈니스 모델이 성공의 열쇠입니다.
- 모든 프로그래밍 언어는 기계가 아니라 인간의 편의를 위해 설계된 도구이며, 안전성·추상화·가독성 같은 장점도 결국 인간이 사고하기 위한 구조
- 그렇다면 AI가 작성하는 코드에 인간 친화적 언어가 꼭 필요할까?, 기계 친화적이고 AI 중심의 새로운 언어인 VOPL(Vibe-Oriented Programming Language) 를 제안