소개
이번 포스트에서는 파이썬 웹훅을 사용하여 실시간 지하철 도착 정보를 알려주는 웹 서비스를 구축하는 방법에 대해 알아보겠습니다. 이 서비스를 구축하는데에는 구글 클라우드 플랫폼(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