Slack Incoming Webhook으로 채널에 메시지 보내기
이번 글에서는 Slack의 Incoming Webhook을 사용해 특정 채널로 메시지를 보내는 방법을 정리합니다.
Incoming Webhook은 외부 애플리케이션이나 스크립트에서 Slack 채널로 메시지를 전송할 수 있게 해주는 기능입니다. Slack 공식 문서에서도 Webhook URL에 JSON payload를 POST 요청으로 보내면 앱이 Slack에 메시지를 게시할 수 있다고 설명합니다.
예를 들어 배포 완료 알림, 에러 알림, 모니터링 알림 등을 Slack 채널로 보내고 싶을 때 사용할 수 있습니다.
1. Slack 채널 생성
먼저 Webhook 메시지를 받을 Slack 채널을 생성합니다.
Slack에서 다음 순서로 진행합니다.
Slack → 채널 → 채널 생성
테스트용 Webhook이라면 운영 채널보다는 별도의 테스트 채널을 만들어두는 것이 좋습니다.
예를 들어 다음과 같은 채널을 만들 수 있습니다.
#webhook-test
2. Slack 앱 생성
Slack Incoming Webhook은 Slack App을 통해 생성합니다.
먼저 Slack API 페이지로 이동합니다.
https://api.slack.com/apps
이후 다음 순서로 앱을 생성합니다.
Create New App → From scratch
앱 생성 화면에서 다음 정보를 입력합니다.
- App Name: 사용할 Slack 앱 이름
- Pick a workspace: 앱을 설치할 Slack 워크스페이스
입력 후 앱을 생성하면 Slack 앱 설정 화면으로 이동합니다.
3. Incoming Webhooks 활성화
Slack 앱 설정 화면의 좌측 메뉴에서 다음 항목으로 이동합니다.
Features → Incoming Webhooks
해당 페이지에서 Activate Incoming Webhooks 옵션을 활성화합니다.
Slack 공식 문서에서도 Incoming Webhooks 메뉴에서 기능을 활성화한 뒤, Workspace에 Webhook을 추가하는 흐름으로 안내하고 있습니다.
4. Webhook URL 생성
Incoming Webhooks를 활성화하면 아래쪽에 Webhook을 추가할 수 있는 버튼이 표시됩니다.
Add New Webhook to Workspace
버튼을 클릭하면 Webhook 메시지를 보낼 채널을 선택하는 화면이 나타납니다.
앞에서 만든 Slack 채널을 선택한 뒤 권한을 허용합니다.
채널 선택 → 허용
정상적으로 완료되면 Slack 앱 설정 화면에 새로운 Webhook URL이 생성됩니다.
이 URL을 복사해두면 외부에서 Slack 채널로 메시지를 보낼 때 사용할 수 있습니다.
Webhook URL은 외부에서 Slack 채널로 메시지를 보낼 수 있는 주소이므로, 코드에 직접 하드코딩하기보다는 환경 변수나 Secret으로 관리하는 것이 좋습니다.
5. curl로 Webhook 테스트
Webhook URL이 정상적으로 동작하는지 curl 명령어로 테스트할 수 있습니다.
curl -X POST \
-H 'Content-type: application/json' \
--data '{"text":"Hello, World!"}' \
<Webhook URL>
각 옵션의 의미는 다음과 같습니다.
-X POST
Slack Webhook URL로 POST 요청을 보낸다는 의미입니다.
-H 'Content-type: application/json'
요청 본문이 JSON 형식임을 알립니다.
--data '{"text":"Hello, World!"}'
Slack 채널에 보낼 메시지 내용을 JSON 형식으로 전달합니다.
<Webhook URL>
Slack 앱 설정에서 복사한 Webhook URL을 넣습니다.
정상적으로 요청이 처리되면 선택한 Slack 채널에 다음 메시지가 표시됩니다.
Hello, World!
정리
Slack Incoming Webhook을 사용하면 외부 시스템에서 Slack 채널로 간단하게 메시지를 보낼 수 있습니다.
전체 흐름은 다음과 같습니다.
Slack 채널 생성
→ Slack App 생성
→ Incoming Webhooks 활성화
→ Webhook URL 생성
→ curl로 메시지 전송 테스트
이후 실제 프로젝트에서는 배포 스크립트, GitHub Actions, 모니터링 시스템, 백엔드 서버 등에서 이 Webhook URL을 호출해 Slack 알림을 보낼 수 있습니다.
Reference
'환경구성' 카테고리의 다른 글
| Kubernetes 노드와 Docker 환경에서 디스크 용량 확인 및 정리하기 (0) | 2026.05.25 |
|---|---|
| Python 개발 환경 세팅하기: venv, Ruff, Black, Mypy, pre-commit 설정 정리 (0) | 2026.05.20 |
| VS Code launch.json 으로 FastAPI 디버깅 환경 구성하기 (0) | 2026.05.20 |