파이썬 웹훅을 활용한 실시간 지진 정보 알림 시스템 구축하기

지진은 언제 발생할지 예측하기 어려운 자연재해 중 하나입니다. 따라서, 실시간으로 지진 정보를 알리는 시스템은 매우 중요합니다. 이번 글에서는 파이썬 웹훅을 활용하여 실시간 지진 정보 알림 시스템을 구축하는 방법을 알아보겠습니다.

1. 지진 정보 API 사용하기

먼저, 실시간으로 지진 정보를 제공하는 API를 사용해야 합니다. 여러 가지 오픈소스 API 중 KMA(Korea Meteorological Administration)의 지진 정보 API를 사용해보겠습니다. 해당 API를 사용하기 위해서는 사전에 발급받은 API 키가 필요합니다.

import requests

def get_earthquake_info(api_key):
    url = f"https://api.kma.go.kr/weather/earthquake?apikey={api_key}&format=json"
    response = requests.get(url)
    earthquake_info = response.json()
    return earthquake_info

위의 코드는 API를 통해 지진 정보를 가져오는 간단한 함수입니다. 사용할 API 키를 파라미터로 전달하고, API 요청을 보내어 JSON 형태의 지진 정보를 받아옵니다.

2. 지진 정보 웹훅 설정하기

지진 정보를 실시간으로 알려주기 위해서는 웹훅을 설정해야 합니다. 웹훅은 API에서 발생하는 이벤트를 통지하기 위한 메커니즘입니다. 예를 들어, 지진이 발생하면 해당 정보를 웹훅으로 전달해주는 방식입니다.

def send_earthquake_notification(webhook_url, earthquake_info):
    message = f"지진 발생!\n규모: {earthquake_info['magnitude']}\n위치: {earthquake_info['location']}"
    payload = {"text": message}
    response = requests.post(webhook_url, json=payload)
    return response

위의 코드는 웹훅 URL과 지진 정보를 전달받아 해당 정보를 텍스트로 구성하여 웹훅으로 전송하는 함수입니다. 지진 정보를 표시할 메시지를 구성하고, JSON 형태로 변환하여 POST 요청을 보냅니다.

3. 시스템 설정하기

지진 정보를 주기적으로 가져와서 웹훅으로 전달하기 위해서는 주기적인 작업이 필요합니다. 이를 위해 스케줄러를 설정하는 방법을 알아보겠습니다.

import time
from apscheduler.schedulers.blocking import BlockingScheduler

def notify_earthquake(api_key, webhook_url):
    earthquake_info = get_earthquake_info(api_key)
    if earthquake_info:
        send_earthquake_notification(webhook_url, earthquake_info)

scheduler = BlockingScheduler()
scheduler.add_job(notify_earthquake, 'interval', minutes=10, args=[API_KEY, WEBHOOK_URL])
scheduler.start()

위의 코드는 10분마다 notify_earthquake 함수를 실행하는 스케줄러를 설정하는 예시입니다. 해당 함수에서는 API를 통해 지진 정보를 가져와서 웹훅으로 전달합니다.


지진은 예측이 어려운 자연재해이지만, 실시간으로 정보를 받아 알림을 받을 수 있다면 안전에 큰 도움이 됩니다. 파이썬 웹훅을 활용하여 실시간 지진 정보 알림 시스템을 구축하는 방법을 알아봤습니다. 이를 기반으로 안전한 생활을 위해 다양한 모니터링 시스템을 구축해보세요.

#techblog #python #지진정보 #웹훅