Sign In

사용 시나리오 가이드

Clawdbot의 실제 사용 예시와 시나리오

📋 목록

1. 개인 생산성

시나리오 1.1: 일정 관리

상황: 하루 종료 시에 다음 날 일정 정리
사용법:
WhatsApp 또는 Telegram에서: "내일 하루를 정리해줘" "오늘 있었던 회의 내용을 요약해줘" "다음 주 목표를 정리해줘"
에이전트 응답:
Clawdbot이 자동으로:
1.
이메일 확인 (Webmail/Google Mail)
2.
캘더 앱 확인 (if configured)
3.
회의 기록에서 주요 이슈 추출
4.
우선순위 부여
5.
정리된 일정 반환
필요 설정:
# 캘더 통합 (선택적) clawdbot config set integrations.calendar.enabled true clawdbot config set integrations.calendar.provider "google" # 이메일 통합 (선택적) clawdbot config set integrations.email.enabled true clawdbot config set integrations.email.provider "imap"

시나리오 1.2: 문서 작성

상황: 회의 내용을 바탕으로 문서 작성
사용법:
WhatsApp에서: "회의 내용을 바탕으로 메모를 작성해줘" "다음 회의를 위한 아젠다를 작성해줘" "이슈 리스트를 정리해줘"
에이전트 응답:
Clawdbot이 다음 작업을 수행:
1.
회의 녹음/메모 확인
2.
주요 내용 요약
3.
구조화된 문서 작성
4.
Markdown 형식으로 저장
저장 경로: ~/clawd/workspace/output/meeting-notes.md

시나리오 1.3: 이메일 처리

상황: 이메일 우선순위 정리 및 답변 초안 작성
사용법:
이메일에서: "오늘 온 이메일을 우선순위로 정리해줘" "중요한 이메일에 대한 답변 초안을 작성해줘" "스팸 메일에 대한 응답을 작성해줘"
에이전트 응답:
Clawdbot이 다음 작업을 수행:
1.
이메일 목록 분석 (IMAP API)
2.
우선순위 알고리즘 적용
3.
긴급한 이메일 먼저 답변 초안 작성
4.
이메일 초안을 클립보드에 복사

시나리오 1.4: 코드 리뷰

상황: GitHub PR을 자동으로 리뷰
사용법:
Slack에서: "이 PR을 리뷰해줘: https://github.com/user/repo/pull/123" GitHub 링크 전송 후 Clawdbot이: 1. PR 내용 분석 2. 코드 변경사항 확인 3. 버그 또는 개선사항 식별 4. 구조화된 리뷰 작성
에이전트 응답:
리뷰 요약: - PR #123: "새로운 기능 추가" - 변경사항: 5개 파일 수정, 300줄 추가 - 발견된 이슈: 3개 (2개 버그, 1개 개선사항) - 승인: ✅ (코드 품질 양호, 테스트 충분) - 권장사항: ...

2. 콘텐츠 크레이션

시나리오 2.1: 팀 채팅 중앙화

상황: 여러 채널에서의 대화를 한곳에서 모니터링
사용법:
Discord에서: "WhatsApp에서 온 메시지를 정리해줘" "Slack에서 논의 중인 주제를 요약해줘" "Telegram에서의 투표 내용을 요약해줘"
에이전트 응답:
Clawdbot이 모든 채널에서 수신된 메시지를 분석하고 통합 요약을 제공:
채널별 요약: WhatsApp (개인 DM): - 발신자: A님 - 내용: 프로젝트 일정 문의 - 중요도: 높음 Slack (팀 채널): - 채널: #development - 활동량: 지난 1시간 동안 25개 메시지 - 주제: Q3 리뷰 준비, 코드 리팩토링 - 결론: 개발자들이 Q3 리뷰를 진행 중 Telegram (그룹): - 채널: @project_updates - 활동량: 지난 24시간 동안 15개 메시지 - 주제: 신규 기능 발표 - 결론: 새로운 기능이 곧 출시될 예정 통합 요약: - 총 3개 채널에서 활동 발생 - 주요 이슈: Q3 리뷰 준비, 새로운 기능 발표 - 권장사항: WhatsApp에서의 일정 문의를 우선 처리 필요

시나리오 2.2: 멀티채널 협업

상황: 프로젝트 멤버들이 다른 채널에서 동시에 작업
사용법:
Discord에서: "WhatsApp 그룹에서 논의된 내용을 Slack 팀 채널로 전달해줘" "Slack에서 결정된 사항을 Telegram 그룹으로 알려줘"
에이전트 응답:
Discord (WhatsApp 그룹) → Slack: "Q3 리뷰 준비를 위해 다음 아젠다를 정리했습니다: 1. API 엔드포인트 리팩토링 완료 2. 프론트엔드 캐싱 최적화 3. 테스트 케이스 작성 완료 다음 단계: 프론트엔드 테스트 시작" Slack → Telegram (프로젝트 그룹): "아젠다 항목 전달: 1. API 리팩토링 완료 ✅ 2. 프론트엔드 캐싱 최적화 ✅ 3. 테스트 케이스 작성 완료 ✅ 예상 완료 시간: 이번 주 금요일 오후"

시나리오 2.3: 공지 브로드캐스팅

상황: 중요한 공지를 모든 채널에 동시에 전송
사용법:
CLI에서: # 모든 채널에 동시 전송 clawdbot send \ --to "whatsapp:+1234567890,telegram:@group1,slack:channel:U12345" \ --message "⚠️ 긴급: 서버 점검 예정 ⚠️" # 또는 특정 채널만 clawdbot send --to "whatsapp:*" --message "공지 내용"

3. 연구 및 학습

시나리오 3.1: 문서 분석

상황: 여러 개념서/논문을 분석하여 인사이트 도출
사용법:
WhatsApp에서: "~/Documents/papers 디렉토리에 있는 모든 PDF를 분석해줘" "주요 개념들을 추출하고 비교해줘" "요약 문서를 작성해줘"
에이전트 응답:
Clawdbot이 다음 작업을 수행:
1.
PDF 파일들을 순차적으로 읽음 (read tool)
2.
각 문서에서 텍스트 추출
3.
주요 개념과 키워드 식별
4.
개념별 빈도 빈도 분석
5.
통합 요약 문서 작성
분석 결과: 1. 문서 1 (machine_learning.pdf): - 주요 개념: 신경망, 딥러닝, CNN, RNN - 빈도: 높음 (20회) 2. 문서 2 (software_architecture.pdf): - 주요 개념: 마이크로서비스, 이벤트 기반 아키텍처, REST API, GraphQL - 빈도: 중간 (12회) 3. 문서 3 (distributed_systems.pdf): - 주요 개념: 분산 시스템, 컨센서스 패턴, CAP 이론 - 빈도: 낮음 (5회) 공통 개념: - "아키텍처"가 세 문서 모두에서 언급됨 - "분산"과 "마이크로서비스"가 상호 보완 관계 요약: 세 문서는 주로 분산 시스템 아키텍처와 관련이며, 마이크로서비스 패턴과 CAP 이론에 초점을 두고 있습니다.

시나리오 3.2: 코드 리서치

상황: 특정 주제의 GitHub 리포지토리를 리서치하고 베스트 프랙티스 수집
사용법:
Telegram에서: "TypeScript 타입 가드 관련 리포지토리를 리서치해줘" "베스트 프랙티스를 10개 찾아줘" "각 프랙티스의 장단점을 분석해줘"
에이전트 응답:
리서치 결과: 조건: - 주제: TypeScript 타입 가드 - 검색 키워드: type guard, conditional types, utility types - 리포지토리 수: 50개 상위 10개 리포지토리: 1. ts-pattern-community/type-predicate - 스타: ⭐ 5,200 - 설명: 타입 시스템에서 프리디케이트 생성 - 장점: 컴파일 타임 최적화, 직관적인 API - 단점: 복잡한 설정, 러닝 곡선 높음 2. ts-toolbelt/type-fest - 스타: ⭐ 7,100 - 설명: TypeScript 프로그래밍을 위한 유틸리티 타입 - 장점: 풍부한 기능, 훌륭한 문서 - 단점: 파일 크기 큼, 로드 타임 길음 3. ts-essentials/build - 스타: ⭐ 4,900 - 설명: 빌드 타임 최적화를 위한 도구 모음 - 장점: 빌드 속도 향상, 타입 안정성 - 단점: 빌드 툴체인 설정 복잡 ... (총 10개 리포지토리 분석) 베스트 프랙티스: - 가장 일반적으로 사용되는 3개: ts-pattern-community/type-predicate, ts-toolbelt/type-fest, ts-essentials/build - 권장: "범용적인 프로젝트에서는 ts-toolbelt/type-fest를 권장" - 대안: "zod 같은 런타임 검증 라이브러리도 고려"

시나리오 3.3: 웹 스크래핑

상황: 웹사이트에서 정보를 수집하고 분석
사용법:
WhatsApp에서: "https://example.com 사이트를 스크래핑해줘" "모든 기사 제목을 추출해줘" "제목별 요약을 작성해줘"
에이전트 응답:
Clawdbot이 다음 작업을 수행:
1.
브라우저 자동화로 해당 사이트 탐색
2.
페이지에서 모든 기사 링크 추출
3.
각 기사로 이동 후 제목 요약
4.
통합 결과를 JSON/Markdown으로 저장
스크래핑 결과: 사이트: https://example.com 수집된 기사: 25개 상위 5개 기사 요약: 1. "AI 기술 동향 2026년 1월 전망" - 링크: https://example.com/article/1 - 요약: 생성형 AI 모델이 대중적으로 도입되고 있으며, 오픈소스 모델들이 빠르게 성장하고 있습니다. 2. "클라우드 네이티브 서비스 비교" - 링크: https://example.com/article/2 - 요약: AWS, Azure, GCP의 네이티브 서비스를 비교 분석했습니다. 3. "데이터 프라이버시 보안 베스트 프랙티스" - 링크: https://example.com/article/3 - 요약: 최신 데이터 프라이버시 보안 표준과 베스트 프랙티스를 정리했습니다. 4. "서버리스 컨테이너화 전략" - 링크: https://example.com/article/4 - 요약: 마이크로서비스 컨테이너화를 위한 전략과 도구들을 분석했습니다. 5. "오픈소스 라이선스 전략" - 링크: https://example.com/article/5 - 요약: 기업의 오픈소스 채택 전략과 법적 고려사항을 정리했습니다. 전체 요약: AI 기술 동향, 클라우드 비교, 보안, 컨테이너, 오픈소스 등 다양한 주제를 다루고 있습니다.

4. 개발 테스트

시나리오 4.1: 자동화된 테스트 케이스 작성

상황: 새로운 기능에 대한 테스트 케이스 자동 작성
사용법:
Telegram에서: "이 기능에 대한 테스트 케이스를 작성해줘: - 기능: 사용자 인증 - 테스트 케이스: 1. 정상적인 로그인 2. 잘못된 비밀번호 3. 만료된 토큰 4. 계정 잠금 5. 연속 실패 시도 (DoS 방어)"
에이전트 응답:
생성된 테스트 케이스: tests/auth.test.ts import { describe, it, expect } from 'vitest'; import { AuthService } from '../src/auth'; describe('사용자 인증', () => { it('정상적인 로그인', async () => { const result = await AuthService.login('valid-user', 'valid-password'); expect(result.success).toBe(true); expect(result.token).toBeDefined(); }); it('잘못된 비밀번호', async () => { const result = await AuthService.login('valid-user', 'wrong-password'); expect(result.success).toBe(false); expect(result.error).toBe('InvalidCredentials'); }); it('만료된 토큰', async () => { const result = await AuthService.login('valid-user', 'valid-password', 'expired-token'); expect(result.success).toBe(false); expect(result.error).toBe('TokenExpired'); }); it('계정 잠금', async () => { const result = await AuthService.login('locked-user', 'valid-password'); expect(result.success).toBe(false); expect(result.error).toBe('AccountLocked'); }); it('연속 실패 시도 (DoS 방어)', async () => { for (let i = 0; i < 5; i++) { const result = await AuthService.login('user', 'wrong-password'); expect(result.success).toBe(false); } // 6번째 시도는 속도 제한으로 차단됨 const rateLimitedResult = await AuthService.login('user', 'wrong-password'); expect(rateLimitedResult.error).toBe('RateLimited'); }); });

시나리오 4.2: CI/CD 파이프라인 설정

상황: GitHub Actions로 CI/CD 파이프라인 자동 설정
사용법:
Discord에서: "이 프로젝트를 위한 GitHub Actions 워크플로우를 설정해줘: - Node.js 테스트 - TypeScript 빌드 - Docker 이미지 빌드 - 배포 자동화 프로젝트: https://github.com/user/myproject"
에이전트 응답:
Clawdbot이 다음 작업을 수행:
1.
GitHub CLI로 리포지토리 복제
2.
.github/workflows 디렉토리 생성
3.
CI/CD 워크플로우 파일 작성
4.
GitHub에 푸시
생성된 워크플로우: .github/workflows/ci.yml name: CI/CD on: push: branches: [ main ] pull_request: branches: [ main ] jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: '22' - name: Install dependencies run: npm install - name: Run tests run: npm test build: needs: test runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Build run: npm run build deploy: needs: build runs-on: ubuntu-latest if: github.ref == 'refs/heads/main' steps: - uses: actions/checkout@v4 - name: Build Docker image run: docker build -t myproject . - name: Deploy run: docker push myproject registry.example.com/myproject

시나리오 4.3: API 테스트 자동화

상황: REST API 엔드포인트들에 대한 통합 테스트 수행
사용법:
Slack에서: "다음 API 엔드포인트들에 대한 테스트 코드를 작성해줘: - GET /api/users - POST /api/users - GET /api/users/:id - PUT /api/users/:id - DELETE /api/users/:id 각 엔드포인트에 대해: - 성공 케이스 - 실패 케이스 - 에지 케이스"
에이전트 응답:
생성된 테스트 파일: tests/api/users.test.ts import { describe, it, expect, beforeAll, afterAll } from 'vitest'; import request from 'supertest'; import { app } from '../src/app'; import { setupTestDatabase, teardownTestDatabase } from '../test-utils'; describe('API: /api/users', () => { let authToken: string; let testUserId: string; beforeAll(async () => { // 테스트용 사용자 생성 및 인증 const response = await request(app) .post('/api/auth/login') .send({ username: 'testuser', password: 'testpass' }); authToken = response.body.token; // 테스트 유저 생성 const userResponse = await request(app) .post('/api/users') .set('Authorization', `Bearer ${authToken}`) .send({ username: 'test_api_user', email: 'test@example.com', password: 'testpass' }); testUserId = userResponse.body.id; }); afterAll(async () => { // 테스트 데이터 정리 await teardownTestDatabase(); }); describe('GET /api/users', () => { it('성공: 전체 사용자 목록 반환', async () => { const response = await request(app) .get('/api/users') .set('Authorization', `Bearer ${authToken}`); expect(response.status).toBe(200); expect(Array.isArray(response.body)).toBe(true); expect(response.body.length).toBeGreaterThan(0); }); it('실패: 인증 없음', async () => { const response = await request(app).get('/api/users'); expect(response.status).toBe(401); }); }); describe('POST /api/users', () => { it('성공: 사용자 생성', async () => { const newUser = { username: 'newuser', email: 'new@example.com', password: 'password123' }; const response = await request(app) .post('/api/users') .set('Authorization', `Bearer ${authToken}`) .send(newUser); expect(response.status).toBe(201); expect(response.body.username).toBe(newUser.username); expect(response.body.email).toBe(newUser.email); expect(response.body.id).toBeDefined(); }); it('실패: 중복 사용자명', async () => { const duplicateUser = { username: 'test_api_user', // 이미 존재 email: 'new2@example.com', password: 'password456' }; const response = await request(app) .post('/api/users') .set('Authorization', `Bearer ${authToken}`) .send(duplicateUser); expect(response.status).toBe(400); expect(response.body.error).toBe('UsernameAlreadyExists'); }); it('실패: 잘못된 이메일 형식', async () => { const invalidUser = { username: 'newuser2', email: 'invalid-email', password: 'password789' }; const response = await request(app) .post('/api/users') .set('Authorization', `Bearer ${authToken}`) .send(invalidUser); expect(response.status).toBe(400); expect(response.body.error).toBe('InvalidEmailFormat'); }); }); describe('GET /api/users/:id', () => { it('성공: 특정 사용자 조회', async () => { const response = await request(app) .get(`/api/users/${testUserId}`) .set('Authorization', `Bearer ${authToken}`); expect(response.status).toBe(200); expect(response.body.id).toBe(testUserId); expect(response.body.username).toBe('test_api_user'); }); it('실패: 존재하지 않는 사용자', async () => { const response = await request(app) .get('/api/users/nonexistent-id') .set('Authorization', `Bearer ${authToken}`); expect(response.status).toBe(404); expect(response.body.error).toBe('UserNotFound'); }); }); describe('PUT /api/users/:id', () => { it('성공: 사용자 정보 업데이트', async () => { const updates = { email: 'updated@example.com' }; const response = await request(app) .put(`/api/users/${testUserId}`) .set('Authorization', `Bearer ${authToken}`) .send(updates); expect(response.status).toBe(200); expect(response.body.email).toBe(updates.email); }); it('실패: 권한 없음', async () => { const otherUserToken = 'different-auth-token'; const updates = { email: 'forbidden@example.com' }; const response = await request(app) .put(`/api/users/${testUserId}`) .set('Authorization', `Bearer ${otherUserToken}`) .send(updates); expect(response.status).toBe(403); }); }); describe('DELETE /api/users/:id', () => { it('성공: 사용자 삭제', async () => { const response = await request(app) .delete(`/api/users/${testUserId}`) .set('Authorization', `Bearer ${authToken}`); expect(response.status).toBe(204); }); it('실패: 권한 없음', async () => { const otherUserToken = 'different-auth-token'; const response = await request(app) .delete(`/api/users/${testUserId}`) .set('Authorization', `Bearer ${otherUserToken}`); expect(response.status).toBe(403); }); }); });

📊 시나리오 요약

범주
시나리오 수
주요 도구
예상 효율
개인 생산성
4
이메일, 캔더, 브라우저
높음
콘텐츠 크레이션
3
멀티채널 통합
매우 높음
연구 및 학습
3
웹 스크래핑, 문서 분석
중간
개발 테스트
3
브라우저, 파일 시스템
높음

🎯 실용적인 팁

1.
시나리오별로 세션 사용: 각 프로젝트나 작업 유형에 별도의 세션을 사용하여 컨텍스트 격리
2.
에이전트에 컨텍스트 제공: "개인 프로젝트 관리를 위한 채팅 세션입니다"와 같이 명확한 컨텍스트 제공
3.
도구 결합 사용: 브라우저 + 파일 시스템 + 이메일 통합을 함께 사용하여 자동화 극대화
4.
캔버스 활용: 복잡한 시각화가 필요한 경우 Canvas/A2UI 사용
5.
멀티채널 활용: 여러 채널에서 동시에 협업 필요한 시나리오에서 세션 도구 활용

🔗 관련 문서