파이썬 웹훅을 사용한 실시간 지하철 도착 정보 알림 서비스 구축 방법

소개

이번 포스트에서는 파이썬 웹훅을 사용하여 실시간 지하철 도착 정보를 알려주는 웹 서비스를 구축하는 방법에 대해 알아보겠습니다. 이 서비스를 구축하는데에는 구글 클라우드 플랫폼(Google Cloud Platform)을 활용할 것입니다.

사전 준비

1. 구글 클라우드 플랫폼 계정 생성 및 프로젝트 설정

먼저, 구글 클라우드 플랫폼에 접속하여 계정을 생성하고 새로운 프로젝트를 설정합니다.

2. Pub/Sub 서비스 생성

다음으로, 구글 클라우드 플랫폼의 Pub/Sub 서비스를 생성합니다. 이 서비스는 메세지를 주고받을 수 있는 메세징 시스템입니다.

3. 지하철 API 키 발급

서울시 지하철 도착 정보를 조회하기 위해, 서울교통공사(Seoul Metro)에서 제공하는 API 키를 발급받아야 합니다. 해당 API 키로 실시간 도착 정보를 가져올 수 있습니다.

4. 웹훅 서비스 구현

실제로 웹훅 서비스를 구현하기 위해 파이썬 Flask 프레임워크를 사용합니다. Flask는 간단하고 가벼운 웹 프레임워크이며, 웹 API를 쉽게 구현할 수 있습니다.

구현 단계

1. Flask 프로젝트 초기화

먼저, 새로운 디렉토리를 만들고 가상 환경을 설정합니다. 그리고 Flask를 설치하여 기본 구조를 생성합니다.

mkdir subway_arrival_service
cd subway_arrival_service
python -m venv venv
source venv/bin/activate
pip install flask

2. Flask 웹 서비스 생성

이제 Flask를 이용하여 웹 서비스를 생성합니다. app.py 파일을 생성하고 아래와 같이 코드를 작성합니다.

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return "Hello, World!"

if __name__ == '__main__':
    app.run()

3. Pub/Sub 메세지 전송

Pub/Sub 서비스를 사용하여 지하철 도착 정보를 전송하는 핸들러를 추가합니다. app.py 파일에 다음 코드를 추가합니다.

from google.cloud import pubsub_v1

def publish_message(message):
    publisher = pubsub_v1.PublisherClient()
    topic_path = publisher.topic_path('your-project-id', 'your-topic-name')
    publisher.publish(topic_path, message.encode('utf-8'))

@app.route('/arrival_info')
def get_arrival_info():
    # 실시간 도착 정보 조회 및 메세지 전송
    message = "지하철 도착 정보입니다."
    publish_message(message)
    return "도착 정보 요청이 전송되었습니다."

4. 서비스 배포

이제 웹 서비스를 구동하기 위해 GCP에 배포합니다.

gcloud app create --project=your-project-id
gcloud app deploy

결론

이렇게 구축한 파이썬 웹훅 서비스를 통해 실시간 지하철 도착 정보를 제공할 수 있습니다. 사용자는 원하는 시간에 웹훅을 통해 도착 정보를 받을 수 있으며, 이를 알림 서비스 등에 활용할 수 있습니다.

#python #webhook #googlecloud #flask #subwayarrivalservice