📑 이 챕터에서 다룰 내용
Contabo는 14일 안에 전액 환불이 보장됩니다. 이 14일은 단순한 시험 기간이 아니에요. 봇이 실제로 안정적으로 작동하는지 직접 검증하는 시간입니다. 14일 안에 봇이 안정적으로 운영된다면 계속하고, 그렇지 않다면 환불하고 다른 방법을 검토하면 됩니다. 이 편은 일별 체크리스트 형식으로 진행해요.
Day 1부터 차례대로 체크리스트를 완료하세요. 각 단계 끝에 검증 항목이 있어요. 검증이 통과되면 다음 날로 넘어가시면 됩니다.
의무 항목
| 분류 | 체크 항목 |
|---|---|
| Contabo·SSH | ☑ Contabo VPS 활성 (이메일 수신 확인) |
| ☑ SSH 접속 성공 | |
| ☑ root 비밀번호 변경 (또는 disable) | |
| ☑ ubuntu 사용자 생성 | |
| ☑ ufw 방화벽 설정 (80·443·SSH 포트만) | |
| 봇 토큰 | ☑ Anthropic API 키 (계정 + 결제 수단 등록) |
| ☑ Discord 봇 토큰 (Server ID·Channel ID 메모) | |
| ☑ 또는 Telegram 봇 토큰 | |
| 코드 배포 | ☑ git clone으로 봇 코드 내려받기 |
| ☑ npm install 또는 pip install | |
| ☑ .env 파일 작성 (API 키·토큰 입력) | |
| ☑ 봇 첫 작동 시험 |
Day 1 검증 기준
- 봇이 메시지에 응답 성공
- 응답 시간 5초 이내
- 한글·이모지 깨짐 없음
14일 안에 해결 가능한 문제인지 먼저 판단하세요. 14편 트러블슈팅을 참고하세요.
해결이 어려울 것 같다면 조기 환불을 권장합니다.
| 분류 | 체크 항목 |
|---|---|
| 자동 재시작 | ☑ systemd 서비스 등록 (또는 pm2) |
| ☑ 서버 재시작 시 봇 자동 시작 | |
| ☑ 봇 종료 시 자동 재시작 | |
| 로그 | ☑ journalctl 또는 pm2 logs로 로그 확인 가능 |
| ☑ 에러 추적 가능 | |
| 환경 변수 보안 | ☑ .env 파일 권한 600 (소유자만 읽기 가능) |
| ☑ git에 .env 미포함 (.gitignore 등록) |
Day 2~3 검증 방법
$ sudo reboot # 5분 대기 후 재접속 $ ssh user@서버 $ systemctl status 봇 # → active (running) 확인 # pm2 사용 시 $ pm2 status
| 분류 | 체크 항목 |
|---|---|
| Sentry | ☑ Sentry 계정 생성 (무료: 5,000에러/월) |
| ☑ 봇 코드에 Sentry SDK 통합 | |
| ☑ 의도적 에러 발생시켜 시험 | |
| ☑ Sentry 대시보드에서 에러 확인 | |
| Discord 알림 | ☑ Sentry → Discord webhook 연결 |
| ☑ 에러 발생 시 즉시 Discord 알림 수신 |
Day 4~5 검증 방법
# Python 코드에 일부러 에러 삽입
raise ValueError("test error - Sentry 시험")
# 결과 확인:
# Sentry 대시보드에 30초 이내 등장 → ✅
# Discord 알림 수신 → ✅| 분류 | 체크 항목 |
|---|---|
| 자원 사용 | ☑ free -h — 메모리 사용량 확인 |
☑ df -h — 디스크 사용량 확인 | |
☑ htop — CPU 사용량 확인 | |
| 봇 응답 | ☑ 100개 메시지 연속 처리 |
| ☑ rate limit 정상 처리 | |
| ☑ 메모리 leak 없음 (사용량 안정) |
Day 6~7 검증 방법
# Discord 봇 부하 시험
for i in {1..100}; do
echo "테스트 메시지 $i" | discord-cli send #test-channel
sleep 0.5
done
# 1분 후 자원 확인
free -h
ps aux | grep 봇이름메모리 사용량이 1GB 이상이거나 CPU가 70%를 지속해서 초과한다면 코드 수정이 필요합니다.
메모리 leak 또는 무한 루프가 있는지 확인하세요.
| 분류 | 체크 항목 |
|---|---|
| Anthropic API | ☑ console.anthropic.com에서 사용량 확인 |
| ☑ 일별 비용 추정 | |
| ☑ prompt caching 작동 확인 (cache_hit_rate) | |
| Cloudflare Worker | ☑ 대시보드에서 사용량 확인 |
| ☑ 무료 한도 이내 (10만 요청/일) | |
| Contabo | ☑ 월별 비용 확정 (€4.50 EU 또는 €6~7.50 SG) |
비용 예상 (TSV 봇 4개 운영 기준)
| 항목 | 캐싱 미적용 | 캐싱 적용 시 |
|---|---|---|
| Anthropic API | $45/월 ($1.50/일) | $6/월 ($0.20/일) |
| Cloudflare | $0 (무료) | |
| Contabo VPS 10 | €4.50 ≈ 약 6,500원 | |
| 월 합계 | 약 7만원 | 약 1.5만원 |
prompt caching을 적용하면 Anthropic 비용을 최대 90% 절감할 수 있어요.
코드를 검토하세요. 불필요한 API 호출이 반복되고 있을 가능성이 높습니다.
prompt caching 설정이 올바른지도 확인하세요 (6편 별책부록 참고).
| 분류 | 체크 항목 |
|---|---|
| 일별 리포트 | ☑ 매일 09:00 자동 발송 (또는 지정 시간) |
| ☑ 핵심 정보가 5분 이내에 읽힘 | |
| 알림 | ☑ 긴급 상황 즉시 알림 |
| ☑ 일별·주별·월별 알림 정상 | |
| ☑ 사용자 응답 정상 | |
| Position C 검증 | ☑ TSV: 베팅 키워드 포함 응답 없음 |
| ☑ AlbaFlow: 노동법 단정 없음 | |
| ☑ viewLab: 부동산 가격 단정 없음 |
각 도메인 봇이 해서는 안 되는 발언을 하지 않는지 확인하는 단계예요.
자세한 기준은 별책부록 7편 (Position C 5차원)을 참고하세요.
| 분류 | 체크 항목 |
|---|---|
| 백업 | ☑ 코드 GitHub에 push |
| ☑ DB 정기 백업 (cron + S3 또는 Cloudflare R2) | |
| ☑ .env·secrets 안전 보관 (1Password 등) | |
| 복구 시험 | ☑ 다른 서버에 새로 셋업해보기 (시뮬레이션) |
| ☑ 1시간 이내 복구 가능한지 확인 |
백업 cron 설정 예시
0 3 * * * ubuntu /home/ubuntu/scripts/backup.sh
#!/bin/bash DATE=$(date +%Y-%m-%d) pg_dump 봇DB > /tmp/backup_$DATE.sql aws s3 cp /tmp/backup_$DATE.sql s3://봇백업/backups/ rm /tmp/backup_$DATE.sql
의무 검증 항목 종합
| 분류 | 검증 항목 |
|---|---|
| A. 안정성 | ☑ 14일 동안 0번 다운 또는 자동 복구만 됨 |
| ☑ 메모리·CPU 안정 (예상 범위 이내) | |
| ☑ 디스크 사용량 안정 (급격한 증가 없음) | |
| B. 비용 | ☑ 월 비용 예상 범위 이내 (5만원 이하 권장) |
| ☑ Anthropic 캐싱 정상 작동 | |
| ☑ Cloudflare 무료 한도 이내 | |
| C. 기능 | ☑ 일별 리포트 정상 |
| ☑ 즉시 알림 정상 | |
| ☑ 사용자 응답 정상 | |
| ☑ Position C 검증 정상 | |
| D. 운영 | ☑ Sentry 에러 없거나 0건 |
| ☑ 백업 cron 정상 | |
| ☑ 복구 시뮬레이션 성공 | |
| E. 만족도 | ☑ 이전 대비 운영 시간 절약 |
| ☑ 봇이 새로운 인사이트를 제공 | |
| ☑ 친구·동료 평가 긍정적 |
결정 기준
- Contabo 12개월 또는 24개월 약정을 검토하세요 (장기 약정 시 할인)
- 다음 단계: 별책부록 9~13편 응용 (각 도메인 봇 고도화)
- 부족한 항목을 수정하세요
- 14일이 지났더라도 1~2주 추가 운영해보세요
- 그래도 해결이 안 된다면 환불을 검토하세요
- contabo.com → 본인 계정 → 환불 신청
- 14일 이내라면 100% 환불됩니다
- 다른 VPS 서비스를 검토하세요 (아래 참고)
Step 1: 환불 신청
본인 계정으로 로그인합니다.
서비스 목록에서 해당 VPS를 찾아 취소 신청을 클릭합니다.
환불 옵션 중 14일 이내 환불을 선택합니다.
간단하게 입력하면 됩니다. 예: "Service did not meet my needs"
Step 2: 처리 시간
| 단계 | 소요 시간 |
|---|---|
| 신청 → 환불 처리 | 1~3 영업일 |
| 카드 환불 → 실제 입금 | 5~10 영업일 |
| PayPal 환불 → 실제 입금 | 1~3 영업일 |
Step 3: 데이터 보존
서버 삭제 후에는 데이터를 복구할 수 없어요. 환불 신청 전에 아래를 완료하세요.
모든 코드가 GitHub에 push되어 있는지 확인하세요.
S3 또는 Cloudflare R2에 올라간 백업 파일을 로컬에도 받아두세요.
API 키·토큰은 1Password 또는 다른 안전한 곳에 보관하세요.
Step 4: 대안 VPS 검토
| 옵션 | 가격 | 특징 |
|---|---|---|
| Hetzner CX32 + Singapore | €7.49/월 | 한국 latency 40~80ms, 시간 단위 결제 (약정 없음) |
| Hostinger KVM 2 | $9/월 (12개월) | 한국어 지원, 자동 백업 포함 |
| 본인 PC + Cloudflare Tunnel | $0 | VPS 비용 없음, 단 PC가 24시간 켜져 있어야 함 |
📌 15편 정리
- 14일은 단순한 시험이 아니라 봇이 실제로 운영 가능한지 확인하는 검증 기간입니다
- Day 1~3: 셋업·자동화 — 봇이 혼자 재시작되는지 확인
- Day 4~7: 모니터링·자원 — Sentry 알림, 메모리·CPU 안정성
- Day 8~11: 비용·운영 — Anthropic 비용 예측, 일별 리포트
- Day 12~13: 백업·복구 — 1시간 이내 복구 가능한지 시뮬레이션
- Day 14: 모든 항목 ☑이면 계속, 큰 문제가 있다면 환불
- 환불 시에도 14일 이내라면 100% 전액 환불이 보장됩니다