Day 4: The Architect - Vibe Coding
학습 시간: 4시간
목표: PRD/TDD 작성법과 Vibe Coding으로 자동화 봇 만들기
📚 오늘 사용할 도구
| 도구 | 공식 문서 | 용도 |
|---|---|---|
| Google Colab | Colab Help · Colab Enterprise Docs | 브라우저에서 Python 실행 |
| Google AI Studio | AI Studio · Quickstart | Gemini API 테스트 및 키 발급 |
| Gemini API | API Docs · Getting Started | AI 모델 API |
Part 1: Vibe Coding이란? (30분)
새로운 개발 패러다임
기존 개발
개발자가 코드를 한 줄씩 작성
→ 버그 수정
→ 테스트
→ 완성
Vibe Coding
flowchart LR
H["👤 사람<br/>무엇을? (PRD)"] --> A["🤖 AI<br/>어떻게? (코드)"]
A --> V["👤 사람<br/>검증/수정"]
V --> F["✅ 완성"]
V -.->|"수정 요청"| A
Vibe Coding의 핵심
| 역할 | 사람 | AI |
|---|---|---|
| 기획 | 무엇을 만들지 정의 | - |
| 설계 | 큰 구조 결정 | 상세 설계 제안 |
| 코딩 | 검증, 수정 지시 | 코드 생성 |
| 테스트 | 시나리오 정의 | 테스트 코드 생성 |
| 배포 | 최종 확인 | 배포 스크립트 |
핵심: 코딩 능력 없이도 기획력으로 프로덕트 제작 가능
필요한 것
- PRD (Product Requirements Document): 무엇을 만들지
- TDD (Technical Design Document): 어떻게 만들지
- AI 도구: 코드 생성기
- 실행 환경: Google Colab, Replit 등
Part 2: PRD 작성법 (1시간)
PRD란?
Product Requirements Document
제품 요구사항 정의서 - “무엇을 만들 것인가?”
PRD 템플릿
# [프로젝트명] PRD
## 1. 개요
- 프로젝트 이름:
- 작성자:
- 최종 수정일:
- 버전:
## 2. 배경 및 목적
### 문제 정의
- 현재 어떤 문제가 있는가?
- 왜 이 문제를 해결해야 하는가?
### 목표
- 이 프로젝트로 무엇을 달성하려 하는가?
- 성공 지표(KPI)는?
## 3. 사용자 정의
### 타겟 사용자
- 누가 사용하는가?
- 사용자의 기술 수준?
### 사용자 스토리
- "~로서, ~하기 위해, ~하고 싶다"
## 4. 기능 요구사항
### 핵심 기능 (Must Have)
1.
2.
3.
### 부가 기능 (Nice to Have)
1.
2.
### 제외 사항 (Out of Scope)
1.
2.
## 5. 비기능 요구사항
- 성능:
- 보안:
- 호환성:
## 6. 제약 조건
- 기술 제약:
- 시간 제약:
- 비용 제약:
## 7. 타임라인
- Phase 1:
- Phase 2:
예시: 바이어 자동 응답 봇 PRD
# 바이어 문의 자동 분류/응답 봇 PRD
## 1. 개요
- 프로젝트 이름: InquiryBot
- 작성자: 홍길동
- 최종 수정일: 2024-01-15
- 버전: 1.0
## 2. 배경 및 목적
### 문제 정의
- 하루 평균 50건 이상의 바이어 문의 이메일 수신
- 담당자가 일일이 분류하고 답변하는 데 3시간+ 소요
- 주말/휴일 응답 지연으로 바이어 이탈 발생
### 목표
- 문의 자동 분류로 담당자 업무 시간 50% 단축
- 간단한 문의에 자동 응답으로 첫 응답 시간 5분 이내
## 3. 사용자 정의
### 타겟 사용자
- 해외영업팀 담당자 (5명)
- 기술 수준: 엑셀 사용 가능, 코딩 불가
### 사용자 스토리
- 영업 담당자로서, 문의가 자동 분류되어
우선순위 높은 것부터 처리하고 싶다
- 관리자로서, 주간 문의 통계를 확인하고 싶다
## 4. 기능 요구사항
### 핵심 기능 (Must Have)
1. 이메일 문의 자동 분류
- 카테고리: 가격문의, 샘플요청, 기술문의, 불만, 기타
2. 간단한 문의 자동 응답
- 가격표 요청 → 가격표 PDF 자동 발송
- MOQ 문의 → 정형화된 답변 발송
3. 분류 결과 스프레드시트 기록
### 부가 기능 (Nice to Have)
1. Slack 알림 (긴급 문의 시)
2. 주간 리포트 자동 생성
### 제외 사항 (Out of Scope)
1. 복잡한 협상 이메일 자동 응답
2. 다국어 자동 번역
## 5. 비기능 요구사항
- 응답 속도: 문의 수신 후 5분 이내 분류
- 정확도: 분류 정확도 85% 이상
- 보안: 고객 이메일 데이터 외부 미전송
## 6. 제약 조건
- 예산: 월 $50 이내 (API 비용)
- 기술: Google Workspace 환경 필수
- 시간: 2주 내 MVP 완성
🎯 실습 1: PRD 작성
미션: 자신의 업무에서 자동화하고 싶은 것을 PRD로 작성
# [프로젝트명] PRD
## 배경 및 목적
현재 문제:
해결하고자 하는 것:
## 핵심 기능
1.
2.
3.
## 제약 조건
- 비용:
- 기술:
- 시간:
Part 3: TDD 작성법 (30분)
TDD란?
Technical Design Document
기술 설계 문서 - “어떻게 만들 것인가?”
TDD 템플릿
# [프로젝트명] TDD
## 1. 시스템 아키텍처
### 개요
- 전체 구조 설명
- 주요 컴포넌트
### 아키텍처 다이어그램
[Input] → [Process] → [Output]
## 2. 기술 스택
- 언어:
- 프레임워크:
- 외부 서비스:
- 호스팅:
## 3. 데이터 흐름
1. 입력 처리
2. 로직 실행
3. 출력 생성
## 4. API 설계
### 엔드포인트
- GET /api/v1/...
- POST /api/v1/...
### 데이터 모델
```json
{
"field1": "type",
"field2": "type"
}
```
5. 보안 고려사항
- 인증:
- 데이터 암호화:
- 접근 제어:
6. 에러 처리
- 예상 에러 케이스
- 처리 방법
---
### 예시: InquiryBot TDD
```markdown
# InquiryBot TDD
## 1. 시스템 아키텍처
[Gmail]
↓ (새 이메일 감지)
[Google Apps Script]
↓ (이메일 내용 추출)
[Gemini API]
↓ (분류 + 응답 생성)
[Google Sheets] ← 분류 결과 기록
↓
[Gmail] → 자동 응답 발송
## 2. 기술 스택
- 언어: JavaScript (Google Apps Script)
- AI: Gemini API (무료 티어)
- 저장소: Google Sheets
- 트리거: Gmail 이벤트 + 시간 기반
## 3. 데이터 흐름
1. Gmail에 새 이메일 도착
2. Apps Script가 5분마다 새 이메일 체크
3. 이메일 제목/본문을 Gemini API에 전송
4. 분류 결과(카테고리, 긴급도) 수신
5. Google Sheets에 기록
6. 자동 응답 해당 시 답장 발송
## 4. 프롬프트 설계
당신은 무역회사의 이메일 분류 전문가입니다.
아래 이메일을 분석하고 JSON 형식으로 답변하세요:
이메일: 제목: {subject} 본문: {body}
분류 기준:
- category: PRICE_INQUIRY, SAMPLE_REQUEST, TECHNICAL, COMPLAINT, OTHER
- urgency: HIGH, MEDIUM, LOW
- auto_reply: true/false
- reply_template: (자동응답 시 템플릿 ID)
응답 예시: { “category”: “PRICE_INQUIRY”, “urgency”: “MEDIUM”, “auto_reply”: true, “reply_template”: “PRICE_LIST” }
## 5. 에러 처리
- API 실패 시: 3회 재시도 후 수동 분류 플래그
- 파싱 오류: 기본값 "OTHER" 할당
- 스프레드시트 오류: 로그 기록 후 이메일 알림
Part 4: Google Colab으로 봇 만들기 (1.5시간)
Google Colab이란?
- 브라우저에서 Python 코드 실행
- 무료 GPU/TPU 제공
- 구글 드라이브 연동
- 설치 없이 바로 시작
접속: colab.google
실습: 간단한 이메일 분류 봇
Step 1: 새 노트북 생성
Colab 접속 → “새 노트북”
Step 2: 필요한 라이브러리
!pip install google-generativeai
Step 3: Gemini API 설정
import google.generativeai as genai
# API 키 설정 (AI Studio에서 발급)
genai.configure(api_key="YOUR_API_KEY")
# 모델 선택
model = genai.GenerativeModel('gemini-pro')
Step 4: 분류 함수
def classify_email(subject, body):
prompt = f"""
당신은 무역회사 이메일 분류 전문가입니다.
아래 이메일을 분석하고 분류하세요:
제목: {subject}
본문: {body}
다음 형식으로 답변:
카테고리: [가격문의/샘플요청/기술문의/불만/기타]
긴급도: [높음/보통/낮음]
자동응답 가능: [예/아니오]
요약: [한 문장 요약]
"""
response = model.generate_content(prompt)
return response.text
Step 5: 테스트
# 테스트 이메일
test_subject = "Price inquiry for skincare products"
test_body = """
Dear Sir/Madam,
We are a distributor in Vietnam and interested in
your skincare product line. Could you please send
us your price list and MOQ information?
Best regards,
Nguyen
"""
result = classify_email(test_subject, test_body)
print(result)
🎯 실습 2: 나만의 봇 만들기
미션: 위 코드를 수정해서 자신만의 분류 봇 만들기
- 분류 카테고리 수정
- 프롬프트 커스터마이징
- 여러 이메일 테스트
AI Studio 활용
Google AI Studio: aistudio.google.com
- Gemini API 무료 테스트
- 프롬프트 실험
- API 키 발급
Part 5: 전체 워크플로우 (30분)
PRD → TDD → 코드 → 배포
flowchart TD
P1["1️⃣ 문제 정의"]
P2["2️⃣ PRD 작성<br/>(AI 도움)"]
P3["3️⃣ TDD 작성<br/>(AI 도움)"]
P4["4️⃣ 코드 생성<br/>(AI)"]
P5["5️⃣ 테스트<br/>(내가 검증)"]
P6["6️⃣ 수정 요청<br/>(AI에게)"]
P7["7️⃣ 배포/운영"]
P1 --> P2 --> P3 --> P4 --> P5
P5 -->|"통과"| P7
P5 -->|"실패"| P6 --> P4
AI에게 코드 요청하는 방법
PRD와 TDD를 함께 제공
다음 PRD와 TDD를 기반으로 코드를 작성해주세요:
[PRD 전체 내용]
[TDD 전체 내용]
요구사항:
- Google Colab에서 실행 가능
- 주석 포함
- 에러 처리 포함
- 테스트 코드 포함
Day 4 핵심 정리
| 개념 | 설명 |
|---|---|
| Vibe Coding | 기획으로 코딩하는 새 패러다임 |
| PRD | 무엇을 만들지 정의하는 문서 |
| TDD | 어떻게 만들지 설계하는 문서 |
| Colab | 브라우저에서 코드 실행 |
| AI Studio | Gemini API 테스트 및 발급 |
과정 전체 정리
| Day | 역할 | 핵심 역량 |
|---|---|---|
| 1 | Director | 마인드셋, CCO 프레임워크 |
| 2 | Strategist | RAG 리서치, 페르소나 롤플레이 |
| 3 | Creator | 이미지, PPT, 랜딩페이지 |
| 4 | Architect | PRD/TDD, Vibe Coding |
다음 단계
- 일상 업무에 적용: 오늘 배운 것 하나씩 적용
- 자동화 프로젝트: 간단한 것부터 Vibe Coding 시도
- 지속 학습: AI 도구 변화에 계속 적응
- 공유: 배운 것을 팀과 나누기
숙제 (선택)
- 자신의 업무 자동화 PRD 1개 완성
- AI Studio에서 API 키 발급
- Colab에서 간단한 봇 코드 실행해보기