📑 이 챕터에서 다룰 내용
1편에서 Contabo VPS를 결제하면 서버가 준비될 때까지 30분~몇 시간 기다려야 해요. 이 대기 시간을 낭비하지 마세요. 지금 바로 봇 운영에 필요한 토큰 4개 + 환경 변수를 미리 발급해 두면, Contabo 서버 발급 직후 즉시 봇 운영을 시작할 수 있습니다.
| 항목 | 내용 |
|---|---|
| 예상 시간 | 30~60분 (모든 prep) |
| 목표 | Contabo 서버 발급 직후 즉시 봇 운영 시작 가능 ✅ |
| 준비할 것 | Anthropic API 키 + Discord Bot Token + Telegram Bot Token + 환경 변수 |
- Anthropic Console 가입 + API 키 발급
- Discord Developer Portal + 봇 토큰
- Telegram BotFather + 봇 토큰
- GitHub repo prep (선택)
- 환경 변수 + 보안 종합
단계 1: Console 가입
- "Sign Up" 클릭
- 이메일 입력 (또는 Google·GitHub OAuth)
- 이메일 검증
- 본인 정보 (이름·전화 등) 입력
- VPN OFF — 의심 IP로 탐지되면 차단될 수 있어요
- 한국 카드는 대부분 가능합니다
- 첫 가입 시 $5 무료 크레딧을 제공하는 경우가 있어요 (시기에 따라 변동)
단계 2: 결제 등록 ($5+ 크레딧)
- Pay-as-you-go — 사용량만큼 청구됩니다
- 최소 $5 크레딧 충전 (첫 결제)
- 자동 충전: OFF 권장 — 직접 충전하면 지출을 파악하기 쉬워요
Sonnet 4.6 가격 (2026년 5월)
- Input: ~$3 / 1M tokens
- Output: ~$15 / 1M tokens
- 봇 1개 운영 시 월 $5~30 추정
API 키가 노출되면 다른 사람이 본인 계정으로 API를 사용할 수 있어요. 다음 단계에서 Budget Alert를 꼭 설정하세요.
단계 3: API 키 발급
키 이름 입력 — 예: tsv-bot
각 봇의 비용을 분리해 추적할 수 있고, 한도 초과 시 봇 별로 차단할 수 있어요.
API 키는 생성 직후 1회만 표시됩니다. 1Password·Bitwarden에 즉시 저장하세요.
- API 키 형식:
sk-ant-...로 시작합니다 - git push 절대 금지 —
.env파일에 넣고.gitignore로 제외하세요 - 키 노출 시: 즉시 revoke + 재발급
- 평문 메모장·Discord 메시지·이메일에 키를 넣으면 안 됩니다
단계 4: Budget Alert 설정 ★
Soft alert: $10 (이메일 알림) / Hard limit: $50 (자동 차단)
Hard limit $20으로 시작 → 사용량 확인 후 조정. 한도를 설정하지 않으면 사고 시 비용이 폭증할 수 있어요.
- API 키 분리 (Workspace 별 발급)
.gitignore로 코드 노출 차단- Budget Alert (이메일 알림)
- Hard limit (자동 차단)
이 4단계를 모두 적용하면 실수로 키가 노출되더라도 피해를 최소화할 수 있어요.
단계 1: Application 생성
URL: discord.com/developers/applications
- Discord 계정 로그인 (없으면 가입)
- 우상단 "New Application" 클릭
- 이름 입력 — 예:
TSV Assistant - "Create" 클릭
Application 정보
- Application ID: 봇 코드에 사용 — 안전 보관
- Public Key: webhook 검증 시 사용
단계 2: Bot 설정 + 토큰 발급 ★
- 좌측 메뉴 "Bot" → "Reset Token" 또는 "Add Bot"
- Token 형식:
MTk5OTk...mfYZP3 - Token은 생성 직후 1회만 표시 — 즉시 1Password·Bitwarden에 저장하세요
- Token 노출 시 즉시 무효화 — git push 절대 금지
- 봇 Token을 아는 사람은 본인 봇으로 행세하고 사용자 메시지를 도용할 수 있어요
단계 3: Privileged Gateway Intents 설정 ★★
좌측 "Bot" 메뉴 안에서 다음 설정을 모두 ON으로 변경하세요.
| Intent | 설명 | 필수 여부 |
|---|---|---|
| PRESENCE INTENT | 사용자 온라인 상태 감지 | ON |
| SERVER MEMBERS INTENT | 서버 멤버 목록 접근 | ON |
| MESSAGE CONTENT INTENT ★ | 사용자 메시지 내용 읽기 | ON — 가장 중요 |
봇이 사용자 메시지 내용을 읽지 못합니다. 증상: msg.content가 빈 문자열로 표시돼요.
해결: MESSAGE CONTENT INTENT ON → 봇 재시작. 3편 봇 코드 작업 중에도 다시 안내드려요.
단계 4: 봇 초대 링크 생성
좌측 "OAuth2" → "URL Generator"
SCOPES 체크
- ☑ bot
- ☐ applications.commands (slash command 사용 시)
BOT PERMISSIONS 체크
- ☑ Read Messages / View Channels
- ☑ Send Messages
- ☑ Read Message History
- ☑ Embed Links (선택, 응답 풍부)
- ☑ Attach Files (선택)
하단 URL 복사 → 브라우저에서 열기 → "Add to Server" → 본인 서버 선택 → "Authorize"
Administrator 권한은 절대 선택하지 마세요. 필요한 권한만 최소한으로 선택하면 봇이 해킹되더라도 피해 범위가 제한됩니다.
단계 1: BotFather 접근
- Telegram 앱에서
@BotFather검색 (공식 봇 — 파란 체크 확인) - 채팅 시작
/start입력
단계 2: 봇 생성 + 토큰 발급 ★
/newbot 입력
사용자에게 보이는 이름이에요. 예: TSV Assistant (한국어 가능)
예: tsv_assistant_bot — "_bot"으로 끝나야 합니다. 영문 + 숫자 + 언더스코어만 가능하고 전 세계에서 고유해야 해요. username은 한 번 정하면 변경할 수 없으니 신중하게 정하세요.
형식: 1234567890:ABCdef... — 1Password·Bitwarden에 즉시 저장하세요.
단계 3: 봇 명령어 등록
/setcommands # 본인 봇 선택 후 아래 내용 paste ask - Claude 에게 질문 help - 도움말 about - 봇 소개 terms - 이용 약관 privacy - 개인정보 처리
Telegram 채팅에서 "/"를 입력하면 명령어 자동 완성이 표시되어 사용자 편의성이 높아집니다.
단계 4: 봇 보안 설정
1. 그룹 추가 제한 (필요 시)
/setjoingroups → Disable — 봇이 원치 않는 그룹에 추가되는 것을 방지합니다.
2. Privacy Mode ON ★
/setprivacy → Enable — Privacy Mode를 ON으로 설정하면 봇이 본인에게 직접 보낸 메시지만 받아요. 그룹 안의 다른 사람들 사이 대화는 읽지 않습니다.
단계 5: 봇 첫 테스트
- Telegram 앱에서 본인 봇 검색 (예:
@tsv_assistant_bot) /start입력- 아직 서버에 코드가 없으므로 봇 응답은 없어요 — 4편에서 코드를 올리면 응답합니다
Private repo 권장
예: tsv-bot
Public repo에 .env 파일이 올라가면 즉시 전 세계에 노출됩니다.
Contabo VPS 발급 후 deploy 키를 생성하게 되는데, 이 작업은 8편 (GitHub Actions 배포 자동화)에서 다뤄요. 지금은 GitHub repo만 만들어두면 됩니다.
4개 토큰 종합 정리
발급한 토큰 목록
ANTHROPIC_API_KEY:sk-ant-...DISCORD_TOKEN:MTk5OTk...mfYZP3TELEGRAM_TOKEN:1234567890:ABCdef...GitHub Personal Access Token:ghp_...(선택)
안전 보관 방법
- ✅ 1Password / Bitwarden / iCloud Keychain
- ✅
.env파일 (Contabo VPS 안 +chmod 600) - ❌ git commit 절대 금지
- ❌ 평문 메모장·Discord 메시지·이메일 절대 금지
.env.example prep (지금 미리 만들어 두세요)
# Contabo VPS 발급 후 .env 작성용 template # 로컬에 미리 준비 가능 # === Discord Bot === DISCORD_TOKEN=your_discord_bot_token_here DISCORD_APP_ID=your_application_id_here # === Telegram Bot === TELEGRAM_TOKEN=your_telegram_bot_token_here # === Anthropic === ANTHROPIC_API_KEY=sk-ant-your_key_here ANTHROPIC_MODEL=claude-sonnet-4-6 # === Logging === LOG_DIR=./logs # === Sentry (선택) === SENTRY_DSN= # === Discord Alert Webhook (선택, 7편) === DISCORD_ALERT_WEBHOOK=
.gitignore prep (지금 미리 만들어 두세요)
# Node.js node_modules/ dist/ *.log # Python __pycache__/ *.pyc .venv/ venv/ # 환경 변수 .env .env.local .env.*.local # 로그 logs/ # 시스템 .DS_Store Thumbs.db
운영자 알림 채널 prep
- Discord 본인 서버에서 채널 생성 (예:
tsv-bot-alerts) - 채널 설정 → Integrations → Webhooks
- "New Webhook" 클릭
- 이름 입력 (예:
Alert Bot) - URL 복사 → 1Password에 안전 보관
이 Webhook으로 받을 수 있는 알림
- API 비용 한도 알림 (7편)
- 배포 완료 알림 (8편)
- 에러 발생 알림
- 운영자가 자리를 비운 동안에도 시스템이 스스로 알림을 보냅니다
Webhook 테스트
# 로컬 터미널에서 실행
curl -H "Content-Type: application/json" \
-d '{"content":"✅ Webhook 작동 확인!"}' \
https://discord.com/api/webhooks/...
# Discord 채널에 메시지가 도착하면 성공입니다
- ☑ Anthropic Console 가입 + API 키 발급 (
sk-ant-...) - ☑ Anthropic Budget Alert + Hard limit ($20)
- ☑ Discord Developer Portal + Application 생성
- ☑ Discord Bot Token 발급 + MESSAGE CONTENT INTENT ON
- ☑ Discord 봇 본인 서버 초대
- ☑ Telegram BotFather + 봇 생성 + Token 발급
- ☑ Telegram 봇 명령어 등록 (
/setcommands) - ☑ Telegram Privacy Mode ON (
/setprivacy) - ☑ GitHub Private repo 생성 (선택)
- ☑ Discord Alert Webhook (선택)
- ☑ 4개 토큰 안전 보관 (1Password 등)
- ☑
.env.example+.gitignore준비
- SSH 접속 (1편 마지막)
- Ubuntu 보안 셋업 (3편, 45분)
- Discord 봇 boilerplate (4편, 90분)
- Telegram 봇 boilerplate (5편, 90분)
- systemd + pm2 (6편, 60분)
- Position C 강화 (7편, 60분)
- Sentry + Budget Alert (8편, 60분)
- GitHub Actions 배포 (9편, 60분)
약 7~8시간 = 하루 작업 = 두 봇 24/7 운영 시작 ✅
- 1️⃣ Anthropic API 키: Console 가입 → API 키 발급 → Budget Alert $20 설정
- 2️⃣ Discord Bot Token: Developer Portal → Bot 생성 → Token 발급 → MESSAGE CONTENT INTENT ON → 서버 초대
- 3️⃣ Telegram Bot Token: BotFather → /newbot → Token 발급 → 명령어 등록 → Privacy Mode ON
- 4️⃣ GitHub repo: Private repo 생성 (선택)
- 5️⃣ Discord Alert Webhook: 운영자 알림 채널 생성 (선택)
- 6️⃣ 4개 토큰 안전 보관: 1Password·Bitwarden — git commit 절대 금지
- 7️⃣ prep 완료 시: Contabo 서버 발급 직후 즉시 봇 운영 시작 가능 ✅
Contabo VPS 대기 동안 → Anthropic API 키 + Discord Bot Token + Telegram Bot Token + 환경 변수 prep = 발급 직후 즉시 봇 운영 시작 ✅
다음은 3편 — Ubuntu 24.04 보안 셋업 (Contabo VPS Provisioning 완료 직후 진행하세요)