주식 투자자들은 주가의 움직임을 실시간으로 모니터링하는 것이 중요합니다. 이를 위해 실시간 주가 알림 서비스를 개발하는 것은 유용한 방법 중 하나입니다. 이 글에서는 파이썬 웹훅을 사용하여 주가 추세를 실시간으로 알림받을 수 있는 서비스를 개발하는 방법을 알아보겠습니다.
1. 웹훅(Webhook)이란?
웹훅은 서버에서 클라이언트로 실시간으로 데이터를 전송하는 방법 중 하나입니다. 이를 이용하여 주식 시장에서 실시간 주가 데이터를 받을 수 있습니다. 웹훅을 사용하면 주가가 변경될 때마다 서버가 클라이언트에게 필요한 정보를 전송하여 즉시 알림을 받을 수 있습니다.
2. 필요한 라이브러리 설치
웹훅을 구현하기 위해서는 몇 가지 파이썬 라이브러리가 필요합니다. 가장 기본적인 것은 Flask입니다. Flask는 파이썬 웹 프레임워크로, 웹 훅 엔드 포인트를 구현하는 데 사용됩니다.
pip install flask
또한, 주가 데이터를 가져오기 위해 yfinance라이브러리를 사용할 수 있습니다.
pip install yfinance
이 외에도 필요한 라이브러리가 있다면 추가로 설치해야 합니다.
3. 주가 데이터 수신 웹훅 엔드 포인트 생성
주가 데이터를 실시간으로 받기 위해 웹훅 엔드 포인트를 생성해야 합니다. Flask를 사용하여 간단한 예제를 작성해보겠습니다.
from flask import Flask, request
app = Flask(__name__)
@app.route('/webhook', methods=['POST'])
def webhook():
data = request.get_json()
# 받은 데이터를 처리하는 로직 작성
return 'Received', 200
if __name__ == '__main__':
app.run()
위 코드는 POST 요청으로 /webhook 엔드 포인트에 데이터를 전송하면, 해당 데이터를 받아서 처리하는 엔드 포인트를 생성하는 예제입니다.
4. 주가 데이터 가져오기
서버에서 실시간 주가 데이터를 가져오기 위해 yfinance라이브러리를 사용할 수 있습니다. 아래의 예제 코드는 주식 코드를 입력받고 해당 주식의 실시간 주가 데이터를 가져오는 함수를 작성한 것입니다.
import yfinance as yf
def get_stock_data(stock_code):
ticker = yf.Ticker(stock_code)
data = ticker.history(period='1d')
return data
get_stock_data 함수는 yfinance라이브러리를 사용하여 주식 코드에 해당하는 주가 데이터를 가져오는 함수입니다.
5. 알림 서비스 개발
서버에 실시간 주가 데이터를 받고, 필요한 데이터를 추출하여 해당하는 사용자들에게 알림을 보내는 로직을 개발해야 합니다. 이는 웹훅 엔드 포인트에서 처리하면 됩니다. 예를 들어, ‘일일 변동률이 5%이상인 주식’과 같은 필터를 적용하여 해당 주식의 코드, 이름, 가격 등을 알림으로 전송하는 기능을 구현할 수 있습니다.
# webhook 함수 내부의 데이터 처리 로직 예시
def webhook():
data = request.get_json()
stock_code = data['stock_code']
stock_data = get_stock_data(stock_code)
percent_change = (stock_data['Close'].iloc[-1] - stock_data['Close'].iloc[0]) / stock_data['Close'].iloc[0] * 100
if percent_change >= 5:
send_notification(stock_data['Code'], stock_data['Name'], stock_data['Close'].iloc[-1])
return 'Received', 200
위의 예시 코드는 주식 코드를 받아서 해당하는 주가 데이터를 가져오고, 일일 변동률이 5% 이상인 경우에만 알림을 보내는 함수입니다.
마치며
파이썬의 웹훅과 yfinance라이브러리를 사용하여 실시간 주가 추세 알림 서비스를 개발하는 방법에 대해 알아보았습니다. 이를 기반으로 자신만의 서비스를 구축하고 원하는 알림을 받을 수 있게끔 커스터마이징해보세요. 서버와 클라이언트 간의 연결을 통해 실시간 데이터를 주고받는 웹훅은 다양한 분야에서 유용하게 활용될 수 있습니다.
#주가 #웹훅