본문 바로가기

카테고리 없음

파이썬으로 슬랙·카카오톡 자동 알림 보내기|Webhook 실전 활용

반응형

파이썬으로 슬랙·카카오톡 자동 알림 보내기|Webhook 실전 활용

 

중요한 이벤트가 발생했을 때, 실시간으로 알림을 받고 싶다면? 이메일보다 더 빠르고 직관적인 방법은 슬랙 또는 카카오톡 자동 알림입니다. 파이썬에서 Webhook(웹훅)을 이용하면 매우 간단하게 구현할 수 있습니다.

이 글에서는 파이썬으로 슬랙과 카카오톡에 알림을 보내는 실전 예제를 코드 중심으로 정리합니다.

1. 웹훅(Webhook)이란?

Webhook은 서버 간 자동으로 데이터를 전달하는 방식입니다. 일반적인 API와 달리 서버가 수신자에게 능동적으로 정보를 푸시하는 것이 특징입니다.

✔️ 활용 예:

  • 서버 장애 시 즉시 슬랙에 알림
  • 크롤링 성공/실패 메시지 전송
  • 일일 보고서 자동 카카오톡 발송

2. 슬랙(Slack) Webhook 설정

1단계: Slack에서 Webhook URL 생성

  1. https://api.slack.com/apps 접속 → 새 앱 만들기
  2. "Incoming Webhooks" 활성화
  3. Webhook URL 생성 (예: https://hooks.slack.com/services/T000/B000/XXXX)

2단계: 파이썬에서 메시지 전송


import requests
import json

webhook_url = 'https://hooks.slack.com/services/웹훅URL'

message = {
    "text": "✅ 크롤링 완료! 새로운 데이터가 수집되었습니다."
}

res = requests.post(webhook_url, data=json.dumps(message))
print("전송 상태:", res.status_code)

✔️ text 키에 알림 메시지를 자유롭게 입력할 수 있습니다. 이모지도 지원됩니다.

3. 카카오톡 자동 알림 보내기

카카오톡은 직접 Webhook을 제공하지 않습니다. 대신 카카오 i 오픈빌더 또는 카카오 알림톡 API를 활용해야 합니다.

방법 1: 카카오 i 오픈빌더 + Webhook

  1. 카카오 i 오픈빌더에서 챗봇 생성
  2. Webhook 설정: 외부 서버에서 특정 URL로 POST 요청 보내기
  3. 카카오톡 챗봇과 사용자 연동 필요

예시: POST 요청 전송


import requests

data = {
    "userRequest": {
        "utterance": "자동 알림 요청"
    }
}

res = requests.post("https://내웹훅주소.com/kakao", json=data)
print(res.status_code)

⚠️ 단점: 사용자 인증 및 챗봇 설계가 필요하고 개인용도엔 복잡할 수 있음

방법 2: 알림톡 API (사업자용)

  • 카카오 비즈니스 인증 필요
  • 카카오 메시지 API 신청 후 템플릿 승인
  • 승인된 템플릿으로만 메시지 전송 가능

API 예시는 다음과 같이 구성됩니다 (비즈앱 기준):


import requests

url = "https://kakaoapi.example.com/send"
headers = {
    "Authorization": "Bearer 액세스토큰",
    "Content-Type": "application/json"
}
payload = {
    "receiver": "01012345678",
    "template_code": "TEMPLATE001",
    "message": {
        "name": "홍길동",
        "content": "오늘도 좋은 하루 되세요!"
    }
}

res = requests.post(url, headers=headers, json=payload)
print(res.status_code)

⚠️ 이 방식은 기업에서 고객에게 메시지를 보내는 데 적합합니다.

4. 슬랙과 파이썬 자동화 연동 루틴

다음은 APScheduler와 결합한 자동화 예시입니다.


from apscheduler.schedulers.blocking import BlockingScheduler
import requests

def send_slack():
    webhook_url = "https://hooks.slack.com/services/웹훅URL"
    msg = {"text": "🕒 자동 알림: 서버 상태 정상"}
    requests.post(webhook_url, json=msg)

sched = BlockingScheduler()
sched.add_job(send_slack, 'interval', minutes=30)
sched.start()

이렇게 하면 30분마다 자동으로 슬랙 메시지가 전송됩니다.

5. 실무 활용 아이디어

  • ✔️ 백업 성공/실패 여부 알림
  • ✔️ 웹 크롤링 성공 시 알림
  • ✔️ 서버 CPU/메모리 임계값 초과시 즉시 전송
  • ✔️ 거래소 API 감시 후 특정 조건 도달 시 알림

간단한 코드만으로도 실시간 모니터링 시스템을 직접 만들 수 있습니다.

자주 묻는 질문 (FAQ)

Q1. 슬랙 Webhook은 무료인가요?

A. 네, 슬랙의 Webhook 기능은 무료이며, 사용량 제한도 관대한 편입니다.

Q2. 카카오톡으로 일반 메시지를 자동 전송할 수 없나요?

A. 일반 카카오톡(친구 대 친구)은 API로 자동 메시지를 보낼 수 없습니다. 반드시 카카오 i 또는 비즈니스 API를 사용해야 합니다.

Q3. 슬랙 메시지에 이미지나 버튼도 넣을 수 있나요?

A. 가능합니다. attachmentsblocks 포맷을 사용하면 이미지, 버튼, 섹션 블록 등을 구성할 수 있습니다.

알림 자동화가 가져오는 업무 혁신

슬랙이나 카카오톡으로의 자동 알림은 단순한 기능이지만, 업무 효율에는 큰 영향을 줍니다. 더 이상 로그를 뒤지고 대기하지 않아도 되며, 실시간 피드백으로 빠른 대응이 가능합니다.

파이썬에서 몇 줄의 코드만으로 나만의 알림 시스템을 만들어보세요. 이제 중요한 이벤트는 절대 놓치지 않을 수 있습니다.

반응형