All materials
MaterialsJul 3, 2026Free0
Slack Bot(App) 추가 가이드
Slack 워크스페이스에 봇(앱)을 등록·운영하는 전체 절차 정리. Socket Mode 원리, 토큰·Scope 설정, Python 워커 실행, 보안 수칙과 트러블슈팅까지 실제 운영 봇 2종 기준으로 안내.
#Slack#Bot#자동화#Python#Socket-Mode
Slack Bot(App) 추가 가이드
Slack 워크스페이스에 봇(앱)을 등록하고 Socket Mode 로 운영하는 전체 절차를 정리한 가이드입니다. 실제 운영 중인 두 봇 — MAVIS(Claude 기반 멘션 응답 봇), slack-overdue-notify(Jira 기한초과 DM 알림 봇) — 을 기준으로 작성했습니다.
최초 작성일: 2026-05-11
슬랙 봇이 뭔가요? (쉽게 설명)
슬랙 봇은 Slack 채팅방 안에서 일을 대신 해주는 자동화 프로그램입니다.
- @MAVIS — 채널에서 멘션하면 Claude AI가 대신 답변해주는 봇
- slack-overdue-notify — Jira에서 기한이 지난 업무를 자동으로 DM으로 알려주는 봇
쉽게 말해, 특정 조건(멘션, 스케줄 등)이 생기면 자동으로 메시지를 보내거나 답변하는 24시간 일하는 직원 같은 존재입니다.
어떻게 동작하나요? (원리)
핵심 개념
| 개념 | 설명 | 비유 |
|---|---|---|
| App Token (xapp-) | 봇이 Slack에 접속하는 문 열쇠 | 회사 출입증 |
| Bot Token (xoxb-) | 봇이 메시지를 보내는 권한 | 업무 도장 |
| Socket Mode | 공인 IP 없이도 Slack과 연결 유지 | 봇이 Slack에 전화를 걸어 항상 통화 대기 |
| OAuth Scopes | 봇이 할 수 있는 일의 범위 | 업무 권한 목록 |
| Events | 멘션, DM 등 봇이 반응할 사건들 | 봇의 담당 업무 목록 |
전체 등록 절차 요약
1단계: Slack App 생성
- https://api.slack.com/apps 접속
- [Create New App] → [From scratch] 선택
- App 이름 입력 → 워크스페이스 선택
2단계: 권한(Scope) 설정
OAuth & Permissions 메뉴에서 봇이 필요한 권한 추가:
| 권한 | 무슨 일을 허가하나 |
|---|---|
app_mentions:read | 봇 멘션 이벤트 수신 |
chat:write | 메시지 전송 |
im:write | DM 발송 |
users:read | 사용자 정보 조회 |
channels:history | 채널 메시지 내역 읽기 |
3단계: Socket Mode 활성화
- Socket Mode ON → App-Level Token 발급 (xapp-...)
- 토큰을
.env파일에 안전하게 저장
4단계: 워크스페이스에 설치
- Install to Workspace → Bot Token (xoxb-...) 발급
.env파일에 저장
5단계: 봇 실행
cd .claude/skills/mavis-bot
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt
.venv/bin/python worker.py
6단계: 채널에 초대
/invite @봇이름
AI 도구 활용 방안
| AI 도구 | 활용 예시 |
|---|---|
| Claude | MAVIS처럼 채널 멘션에 AI 답변 생성, 코드 리뷰, 문서 요약 |
| Gemini | 문서 분석, 구글 워크스페이스 연동 자동화 |
| GitHub Copilot (Codex 기반) | 봇 워커 Python 코드 자동 생성 |
| GPT/AGI | 복잡한 업무 판단이 필요한 챗봇 응답 생성 |
MAVIS는 현재 Claude API를 사용하며, 멘션된 스레드 전체를 컨텍스트로 넘겨 답변을 생성합니다.
운영 중인 봇 현황
MAVIS — Claude Code 기반 멘션 응답 봇
- 위치:
.claude/skills/mavis-bot/ - 실행: 맥미니 launchd 상시 구동 + Socket Mode
- 이벤트:
app_mention,message.im - 특이사항: 스레드 컨텍스트 최대 N개 메시지 포함
slack-overdue-notify — Jira 기한초과 DM 봇
- 위치:
.claude/skills/slack-overdue-notify/ - 실행: 스크립트 호출 (단방향 발송)
- 이벤트: 없음 (발송 전용)
- 특이사항: Jira UID ↔ Slack username 매핑 (
SLACK_USER_MAP환경변수)
보안 주의사항
⚠️ 토큰(
xapp-,xoxb-)을 절대 git에 커밋하지 마세요..gitignore에.env포함이 필수입니다.
- 유출 의심 시: OAuth & Permissions → Revoke Token → 재발급 → 워커 재시작
- Scope는 최소 권한 원칙 적용 (필요한 것만 추가)
자주 겪는 문제
| 증상 | 원인 | 해결 |
|---|---|---|
| 멘션해도 무반응 | 채널에 봇 미초대 | /invite @봇이름 |
missing_scope 에러 | 권한 누락 | Scope 추가 후 Reinstall |
invalid_auth | 토큰 오타/만료 | .env 토큰 재확인 |
| Socket 연결 실패 | App-Level Token 누락 | xapp 토큰 재생성 |
요약
| 항목 | 내용 |
|---|---|
| 연결 방식 | Socket Mode — 공인 IP 없이 WebSocket 상시 연결 |
| 필요 토큰 | App Token(xapp-) + Bot Token(xoxb-), .env 로 관리 |
| 구현 스택 | Python + Bolt, launchd 상시 구동 |
| 권한 원칙 | 최소 Scope 만 부여, 유출 시 즉시 Revoke·재발급 |
| 대표 패턴 | 멘션 응답형(이벤트 수신) / 알림 발송형(단방향) |
참고 링크
- Slack App 관리: https://api.slack.com/apps
- OAuth Scopes 전체 목록: https://api.slack.com/scopes
- Bolt for Python: https://slack.dev/bolt-python/
Comments
No comments yet. Be the first to comment!
★Reviews for this material
Write a reviewNo reviews for this material yet.