이 웹훅 템플릿으로 Slack Bot 만들기
Source: Dev.to

템플릿
Codehooks.io용 최소 Slack 웹훅 템플릿이 있어 Slack 통합을 놀라울 정도로 쉽게 시작할 수 있다는 사실, 알고 계셨나요? 이 템플릿이 뛰어난 이유는 다음과 같습니다:
- ~90줄의 코드 – 불필요한 코드 없이 이해하기 쉬움
- 기본 보안 제공 – HMAC SHA‑256 서명 검증 내장
- 프로덕션 준비 완료 – URL 검증, 서명 검증, 타이밍 공격 방어 처리
- 서버리스 – 서버 관리 필요 없이 자동 확장
시작하기
coho create myapp --template webhook-slack-minimal
cd myapp
npm install
coho deploy
그게 전부입니다. 세 번의 명령만으로 웹훅이 라이브됩니다.
기본 제공 기능
템플릿은 지루한 보안 작업을 모두 처리합니다:
// Automatic signature verification
function verifySlackSignature(body, signature, timestamp) {
// Rejects requests older than 5 minutes
// Uses timing-safe comparison
// Validates HMAC SHA-256 signature
}
// URL verification for Slack setup
if (body.type === 'url_verification') {
return res.json({ challenge: body.challenge });
}
// Your bot logic starts here
if (event.type === 'message' && !event.bot_id && event.text) {
console.log('Message:', event.text);
// Do something cool
}
SLACK_SIGNING_SECRET 환경 변수를 추가하고, Slack에 웹훅 URL을 지정하면 이벤트를 바로 받을 수 있습니다.
멋진 활용 사례
인시던트 대응 봇
#alerts 채널에서 누군가 @bot incident 라고 입력하면 자동으로 티켓을 생성하고 담당 엔지니어에게 알립니다. 메시지를 파싱해 심각도 수준을 추출하고 인시던트 관리 워크플로를 시작합니다. PagerDuty, Jira 혹은 내부 도구와 연동할 수 있습니다.
if (event.text.includes('incident')) {
// Parse incident details
// Create ticket in your system
// Page on-call engineer
// Post confirmation back to channel
}
코드 리뷰 알림 봇
#engineering 채널을 모니터링해 미처리된 코드 리뷰를 개발자에게 상기시킵니다. 누군가 PR 링크를 언급하면 봇이 이를 추적하고 병합될 때까지 매일 알림을 보냅니다. GitHub/GitLab API와 연동해 PR 상태를 확인합니다.
if (event.text.includes('github.com') && event.text.includes('/pull/')) {
// Extract PR URL
// Check PR status via GitHub API
// Schedule reminders for reviewers
// Update team when merged
}
지식 베이스 어시스턴트
내부 문서를 검색해 일반적인 질문에 답변하는 스마트 어시스턴트를 만듭니다. 팀원이 @bot how do I deploy? 라고 물으면 관련 문서 링크와 함께 즉시 답변을 제공합니다.
if (event.text.includes('@bot')) {
const query = extractQuery(event.text);
// Search your knowledge base
// Format relevant results
// Post back with helpful links
}
왜 중요한가
대부분의 Slack 봇 튜토리얼은 인증 흐름, 웹훅 검증 로직, 보안 모범 사례 등을 직접 구현하도록 요구합니다. 이 템플릿은 ~90줄 안에 그 기반을 제공하므로 실제 봇 로직 구현에 집중할 수 있습니다.
Codehooks.io 플랫폼이 배포, 스케일링, 환경 변수, 로깅을 처리합니다. 여러분은 JavaScript만 작성하고 배포하면 됩니다.
다음 단계
템플릿은 의도적으로 최소화되었습니다 – 확장을 위해 설계되었습니다. 다음과 같은 아이디어를 시도해 보세요:
@slack/web-api를 설치해 Slack에 메시지를 다시 보냅니다- 인터랙티브 워크플로를 위한 슬래시 커맨드 추가
- 데이터베이스, 외부 API, AI 서비스와 연결
- 리액션, 멘션, 기타 이벤트 타입 처리
GitHub에서 템플릿을 확인하고 오늘 바로 Slack 봇을 만들어 보세요!