바이브 코딩이란?

코드를 직접 쓰지 않고, 자연어 대화로 소프트웨어를 만드는 방식

"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."

— Andrej Karpathy, Feb 2025

비교: 기존 방식 vs 바이브 코딩

기존 방식
1. 문법 검색...
2. 코드 작성...
3. 에러 디버깅...
4. Stack Overflow...
⏱ 수 시간
바이브 코딩
CSV 파일 읽어서 bar chart로 시각화해줘
↳ Read data.csv
↳ Write plot.py
↳ Bash: python plot.py
✓ chart.png 생성 완료 (30초)

왜 AI 연구원에게 중요한가?

실험 도구 자동화

데모/시각화 직접 제작

반복 작업 스크립트화

도구 비교

도구 유형 특징
Cursor IDE (VS Code fork) GUI 기반, 코드 에디터 내장
Windsurf IDE AI Flow 기반 자동 완성
Claude Code CLI (터미널) 에이전틱, 도구 호출, 확장성
GitHub Copilot IDE 플러그인 자동완성 중심

Claude Code 소개

터미널에서 돌아가는 AI 코딩 에이전트

You

자연어 프롬프트

Claude Code

에이전트 엔진

Tools

파일/Git/터미널/웹

에이전트 동작 루프

프롬프트
사용자 요청
분석
의도 파악
도구 선택
Read/Edit/Bash
실행
파일 수정
검증
결과 확인

목표를 달성할 때까지 자율적으로 반복합니다

모델 선택

기본

Sonnet 4

빠르고 효율적 — 일반 코딩 작업

고급

Opus 4

깊은 추론 — 복잡한 아키텍처 설계

사용 플랫폼

CLI

claude 명령어로 실행

VS Code

Extension 설치

JetBrains

Plugin 설치

Web

claude.ai/code

IDE 도구 (Cursor, Copilot): 에디터 안에서 코드 자동완성/수정

Claude Code: 에이전트가 직접 파일 읽기/쓰기/실행, 멀티스텝 작업을 자율적으로 수행

시작하기

5분이면 시작할 수 있습니다

$ npm install -g @anthropic-ai/claude-code
$ claude
~/my-project
$ claude
╭──────────────────────────────────╮
Claude Code v1.0.0
│ Reading CLAUDE.md... │
╰──────────────────────────────────╯
이 프로젝트 구조 설명해줘
↳ Read: package.json
↳ Glob: src/**/*.ts
이 프로젝트는 TypeScript 기반 REST API입니다...

인증 방법

API Key

ANTHROPIC_API_KEY 환경변수 — 사용량 기반 과금

Claude Max 구독

브라우저 인증 — 월정액 ($100/mo)

Permission 모드

모드 자동 승인 추천 상황
default 읽기만 처음 시작할 때
acceptEdits 읽기 + 편집 코드 작업할 때
plan 읽기만 (계획) 큰 작업 전 탐색
auto 전부 긴 자율 작업

Slash Commands

/help도움말
/clear대화 초기화
/compact컨텍스트 압축
/cost비용 확인
/config설정 보기
/model모델 전환

CLAUDE.md

매 세션마다 자동 로드되는 프로젝트 설명서

Global managed settings
User ~/.claude/
Project
./CLAUDE.md

안쪽이 바깥을 override — Project가 가장 우선

# My Project
 
## Build
- npm run dev: 개발 서버 시작
- npm test: 테스트 실행
 
## Rules
- TypeScript strict mode 사용
- 커밋 메시지는 한글로 작성

서브에이전트가 참조하는 전용 지침 파일

.claude/agents/ 폴더에 커스텀 에이전트 정의 가능

메인 CLAUDE.md와 별도로, 에이전트별 행동 규칙 설정

Memory

세션이 끝나도 사라지지 않는 지속적 기억

Memory란?

CLAUDE.md가 사용자가 작성하는 규칙이라면, Memory는 Claude가 스스로 쌓아가는 기억입니다. 대화 중 파악한 사용자 역할, 선호도, 프로젝트 맥락을 파일로 저장하여 다음 세션에서도 기억합니다.

동작 방식

💬

대화 중 학습

사용자 정보, 피드백
프로젝트 맥락 파악

💾

파일로 저장

memory/ 폴더에
마크다운 파일 생성

🔄

다음 세션에 활용

MEMORY.md 인덱스로
관련 기억 자동 참조

4가지 메모리 유형

user 사용자 프로필

역할, 기술 수준, 선호하는 협업 방식

"나는 데이터 사이언티스트야"

feedback 작업 피드백

교정, 확인된 접근법, 행동 지침

"테스트에서 DB 목킹 하지 마"

project 프로젝트 상황

진행 중인 작업, 마감일, 의사결정 배경

"4/10부터 코드 프리즈"

reference 외부 참조

외부 시스템 위치, 대시보드, 문서 링크

"버그는 Linear INGEST 프로젝트에"

저장 구조

# 프로젝트별 메모리 폴더
~/.claude/projects/<project>/memory/
├── MEMORY.md # 인덱스 — 매 세션 자동 로드
├── user_role.md # user: 데이터 사이언티스트
├── feedback_testing.md # feedback: DB 목킹 금지
├── project_freeze.md # project: 코드 프리즈 일정
└── reference_linear.md # reference: Linear 프로젝트
---
name: DB 목킹 금지
description: 테스트에서 실제 DB 사용 필수
type: feedback
---
 
통합 테스트에서 DB를 목킹하지 않는다.
 
**Why:** 목킹 테스트가 통과했지만
프로덕션 마이그레이션에서 장애 발생한 전례
 
**How to apply:** 테스트 작성 시
항상 실제 DB 연결 사용

Memory가 동작하는 모습

~/my-project — Session 1
나는 Go 10년차인데 이 프로젝트 React 쪽은 처음이야
↳ Memory: user_expertise.md 저장
✓ 기억했습니다 — Go 전문가, React 초보
~/my-project — Session 2 (다음 날)
이 컴포넌트 구조 설명해줘
↳ Memory: user_expertise.md 참조
React의 useEffect는 Go의 goroutine과 비슷하게
비동기 사이드이펙트를 처리합니다...
✓ 사용자 배경에 맞춘 설명 제공

CLAUDE.md vs Memory

CLAUDE.md Memory
작성자 사용자가 직접 Claude가 자동으로
공유 범위 git으로 팀 공유 로컬 개인 메모
내용 프로젝트 규칙, 빌드 명령 사용자 선호, 피드백, 맥락
관리 수동 편집 대화 중 자동 축적

핵심 인사이트

CLAUDE.md가 프로젝트의 규칙이라면, Memory는 사용자와의 관계입니다. 함께 일할수록 Claude는 당신의 스타일에 맞게 적응합니다.

Skills

재사용 가능한 커스텀 /명령어

Skills의 두 가지 형태

① Commands (간단)

# 마크다운 파일 하나 = 커맨드 하나
.claude/commands/commit.md
.claude/commands/review.md
 
# 실행: /commit, /review

② Skills (고급)

# 폴더 + SKILL.md = 스킬 하나
.claude/skills/
├── my-reviewer/
│ ├── SKILL.md
│ └── checklist.md
└── deploy/
└── SKILL.md

SKILL.md 예시

---
name: commit
description: 변경사항 분석 후 커밋 메시지 자동 생성
allowed-tools: Bash Grep Read
context: fork # 별도 서브에이전트에서 실행
---
staged changes를 분석하고 conventional commit 형식으로
커밋 메시지를 작성해주세요. $ARGUMENTS

실행 예시

~/my-project
/commit
↳ Bash: git diff --staged
↳ Analyzing changes...
커밋 메시지를 생성했습니다:
feat: 사용자 인증 로직에 OAuth2 지원 추가
커밋할까요? (y/n)

Commands vs Skills 비교

CommandsSkills
위치.claude/commands/*.md.claude/skills/*/SKILL.md
구조마크다운 파일 1개폴더 (SKILL.md + 보조 파일)
설정frontmatter 선택frontmatter 필수 (name, description 등)
적합간단한 프롬프트 템플릿복잡한 워크플로우, 참조 파일 필요 시

마켓플레이스에서 다른 사용자가 만든 스킬을 검색하고 설치 가능

예: /commit-smart, /review-pr, /debug 등 바로 사용 가능한 워크플로우

MCP

AI가 외부 서비스를 연결하는 표준 프로토콜

Claude Code

에이전트

MCP Server

프로토콜 변환

외부 서비스

GitHub, DB, Slack...

Claude
Code
🌐 GitHub
🗄 DB
💬 Slack
🔍 Search
📊 Sentry
🎨 Figma

MCP 서버를 통해 다양한 외부 서비스에 연결

$ claude mcp add github --transport http --url https://api.github.com/mcp

인기 MCP 서버

Playwright

브라우저 자동화/테스트

PostgreSQL

DB 조회/마이그레이션

Slack

메시지 전송/채널 관리

Web Search

웹 검색 결과 활용

• 논문 데이터베이스 조회 — PubMed, arXiv 검색 자동화

• 실험 결과 시각화 — matplotlib/plotly 그래프 자동 생성

• 서버 데이터 직접 접근 — SSH를 통한 원격 서버 조작

Hooks

이벤트 발생 시 자동 실행되는 명령

PreToolUse

차단 가능

도구 실행

PostToolUse

후처리

세션 라이프사이클에서 Hook 발동 시점

SessionStart

환경 로드, 컨텍스트 주입

사용자 프롬프트 입력

PreToolUse

도구 실행 전 검증 · 차단 가능

도구 실행 (Read, Edit, Bash...)

PostToolUse

자동 포맷팅, 린트, 로깅

Claude 응답 생성

Notification

입력 대기 시 데스크톱 알림

Hook 시점 활용 예시
PreToolUse 도구 실행 전 위험한 명령 차단
PostToolUse 도구 실행 후 자동 포맷팅, 린트
Notification 입력 대기 시 데스크톱 알림
SessionStart 세션 시작 시 환경 변수 로드
{
  "hooks": {
    "PostToolUse": [{
      "matcher": "Edit|Write",
      "hooks": [{ "type": "command", "command": "prettier --write $FILE" }]
    }]
  }
}

설정 위치: ~/.claude/settings.json 또는 .claude/settings.json

실제 사용 예시 (현재 설정에서 발췌)

예시 1: 위험 명령 차단기
node_modules 다 지워줘
↳ Bash: rm -rf node_modules/
🛑 BLOCKED: Critical path protection!
Protected resource: Node.js dependencies
This path contains critical project files.

Hook: PreToolUse → Bash 명령 감지 → dangerous-command-blocker.py 실행

rm -rf /, .git, .claude, .env 등 위험 경로를 패턴 매칭으로 자동 차단 (exit 2 = 차단)

예시 2: 시크릿 유출 방지
변경사항 커밋해줘
↳ Bash: git add -A && git commit -m "feat: add API"
🚨 SECRET SCANNER: Potential secrets detected!
🟠 Anthropic API Key
File: config.py:12
Match: sk-ant-api03-...
❌ COMMIT BLOCKED: Remove secrets before committing

Hook: PreToolUse → git commit 감지 → secret-scanner.py 실행

AWS, OpenAI, Stripe, GitHub 등 40개+ API 키 패턴을 정규식으로 스캔, 발견 시 커밋 차단

Agent & Multi-Agent

Claude가 하위 에이전트를 만들어 병렬 작업

커스텀 에이전트 만들기

폴더 구조

.claude/agents/
├── code-reviewer.md
├── debugger.md
└── test-automator.md

AGENT.md 예시

---
name: code-reviewer
description: 코드 리뷰 전문가
tools: Read Grep Bash
model: opus
---
보안, 성능, 유지보수성을
종합적으로 검토하세요.

자동 위임: Claude가 요청 내용과 에이전트의 description을 매칭하여 자동으로 적합한 에이전트에게 작업을 위임합니다

main branch

Worktree A

Agent 1: 프론트엔드

Worktree B

Agent 2: 백엔드

결과 병합

항목 Subagent Agent Teams
컨텍스트 자체 윈도우, 요약 반환 완전 독립 세션
통신 호출자에게만 보고 에이전트 간 직접 메시지
조율 메인 에이전트가 관리 공유 태스크 리스트
적합 집중된 단일 작업 복잡한 다각도 작업

Agent Teams

Experimental

• 환경변수 CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 로 활성화

• 여러 Claude 인스턴스가 팀으로 협업

• tmux/iTerm2에서 분할 패널로 동시 관찰 가능

claude -p "프롬프트": 비대화형 실행 (스크립트, CI 파이프라인용)

• Claude Agent SDK: 커스텀 에이전트 애플리케이션 구축

• 출력 포맷: --output-format text|json|stream-json

Plugins

Skills, Hooks, MCP, Agent를 패키지로 묶어 설치하고 공유

Plugin = 확장 패키지

Skills, Hooks, Agent, MCP 서버를 하나로 묶은 재사용 가능한 패키지. 마켓플레이스를 통해 설치하고 팀 간 공유할 수 있습니다.

구성 요소범위공유 방식
Plugin여러 기능을 하나로 묶음마켓플레이스로 배포
Skill단일 커스텀 명령어.claude/commands/ (프로젝트별)
MCP외부 서비스 연결settings.json 설정
Hook이벤트 자동화settings.json 설정

설치 방법

# 마켓플레이스 추가
$ /plugin marketplace add source

# 플러그인 설치
$ /plugin install name@marketplace

# 플러그인 관리 UI
$ /plugin

공식 마켓플레이스 주요 플러그인

Code Intelligence

Python, TypeScript, Go 등 LSP 기반 코드 분석

GitHub / GitLab

PR, 이슈, CI/CD 통합

Figma / Slack / Sentry

디자인, 커뮤니케이션, 모니터링 연동

커뮤니티 플러그인

superpowers, octopus 등 워크플로우 확장

{
  "enabledPlugins": {
    "code-intel@official": true,
    "github@official": true
  }
}

하네스 엔지니어링

코드를 쓰는 것이 아니라, AI가 코드를 잘 쓰도록 환경을 설계하는 것

하네스(Harness)란?

Claude Code를 둘러싼 모든 설정의 총체입니다. CLAUDE.md, Skills, MCP, Hooks, Agents, Plugins — 이것들을 조합하여 AI가 내 프로젝트에 맞게 동작하도록 설계하는 것이 하네스 엔지니어링입니다.

하네스 구성 요소

CLAUDE.md
지침
+
Skills
워크플로우
+
MCP
외부 연결
+
Hooks
자동화
+
Agents
위임
+
Plugins
패키지
=
Harness
나만의 AI 환경

패러다임의 전환

과거

"내가 코드를
직접 쓰는 것"

문법, 프레임워크
디버깅 스킬

현재

"AI에게 잘
지시하는 것"

프롬프트 엔지니어링
컨텍스트 설계

다음

"AI가 잘 작동하는
환경을 설계하는 것"

하네스 엔지니어링
자동화, 도구, 안전장치

프롬프트 엔지니어링은 "이번 대화에서 어떻게 지시할까"에 집중합니다. 하네스 엔지니어링은 한 단계 더 나아가, 매번 좋은 프롬프트를 치지 않아도 AI가 알아서 잘 동작하도록 환경 자체를 설계합니다.

좋은 하네스의 3원칙

🔄

반복 제거

매번 같은 지시를 반복하지 않도록
CLAUDE.md와 Skills로 고정

🛡

안전장치

위험한 명령 차단, 시크릿 유출 방지
Hooks로 자동화된 가드레일

👥

팀 공유

프로젝트 .claude/ 폴더를 git에 커밋
팀 전체가 같은 하네스 사용

실제 하네스 구성 예시

# 프로젝트 루트의 .claude/ 폴더
.claude/
├── CLAUDE.md # 프로젝트 규칙, 빌드 명령
├── settings.json # hooks, MCP 서버 설정
├── commands/ # 커스텀 슬래시 커맨드
│ ├── commit.md
│ └── review.md
├── skills/ # 고급 스킬
│ └── deploy/
│ └── SKILL.md
└── agents/ # 커스텀 에이전트
├── code-reviewer.md
└── debugger.md

하네스가 동작하는 모습

~/my-research-project
$ claude
Reading CLAUDE.md... ← 프로젝트 규칙 로드
Loading 3 MCP servers... ← 외부 도구 연결
Loading 2 custom agents... ← 에이전트 준비
SessionStart hooks executed... ← 자동화 실행
실험 데이터 분석하고 결과 시각화해줘
↳ MCP: PostgreSQL 쿼리로 데이터 조회
↳ Agent: code-reviewer가 분석 코드 검증
↳ Write: plot.py 생성
↳ Bash: python plot.py
↳ Hook: PostToolUse → 코드 포맷팅 자동 실행
✓ results/ 폴더에 분석 결과 + 시각화 저장 완료
/commit
↳ Skill: 변경사항 분석 → 커밋 메시지 생성
↳ Hook: PreToolUse → 시크릿 스캔 통과 ✓
✓ feat: 실험 데이터 분석 및 시각화 추가

핵심 인사이트

하네스 엔지니어링의 목표는 "claude 하나만 치면 모든 것이 준비되는 환경"을 만드는 것입니다.

한 번 잘 설계해두면, AI는 매번 프로젝트 규칙을 알고, 안전장치 안에서 작동하며, 필요한 도구에 접근하고, 반복 작업을 자동으로 처리합니다.

마무리

어디서부터 시작할까?

바이브
코딩
Claude
Code
설치
CLAUDE
.md
Hooks
Skills
MCP
Agent

첫 걸음: 내 프로젝트에서 Claude 실행하기

$ cd ~/my-project && claude

공식 문서

docs.anthropic.com/claude-code

Claude Code Tips

커뮤니티 팁 모음

질문이 있으신가요?