[파이썬] 웹 프레임워크를 이용한 실시간 은행 거래 내역

은행 거래 내역은 많은 사람들에게 중요한 정보이며, 실시간으로 이를 확인할 수 있다면 편리하고 안전합니다. 이를 위해 웹 프레임워크를 활용하여 실시간 은행 거래 내역을 구현할 수 있습니다.

Python은 많은 웹 프레임워크를 제공하고 있습니다. 여기에서는 Flask 프레임워크를 사용하여 실시간 은행 거래 내역을 구현하는 방법을 알아보겠습니다.

Flask를 설치하고 초기 설정하기

우선 Flask를 설치해야 합니다. 아래 명령어를 사용하여 Flask를 설치하세요.

pip install flask

Flask를 설치했다면, 다음과 같이 기본적인 설정을 해줍니다.

from flask import Flask, render_template
import requests

app = Flask(__name__)
app.config['SECRET_KEY'] = 'your_secret_key'

위 코드에서 SECRET_KEY는 보안을 위해 사용되는 키값입니다. 실제 프로젝트에서는 보안 이슈에 대해 고려하여 더 복잡한 키를 사용하는 것을 권장합니다.

은행 API와 연동하기

실시간으로 은행 거래 내역을 확인하기 위해서는 은행의 API와 연동해야 합니다. 여기서는 예시로 http://example.com/api/transactions의 API를 사용한다고 가정하겠습니다. 이 API는 GET 요청을 통해 최신 은행 거래 내역을 반환합니다.

@app.route('/transactions')
def get_transactions():
    response = requests.get('http://example.com/api/transactions')
    transactions = response.json()
    return render_template('transactions.html', transactions=transactions)

위 코드는 /transactions 경로로 들어오는 GET 요청을 처리하는 코드입니다. requests 라이브러리를 사용하여 은행 API에 GET 요청을 보내고, 받아온 응답을 JSON 형식으로 변환한 후 transactions.html 템플릿에 전달합니다.

실시간 업데이트하기

실시간으로 은행 거래 내역을 업데이트하기 위해 웹소켓을 사용할 수 있습니다. 여기에서는 예시로 flask-socketio 라이브러리를 사용하여 실시간 업데이트를 구현하겠습니다.

먼저 flask-socketio를 설치하세요.

pip install flask-socketio
from flask_socketio import SocketIO, emit

socketio = SocketIO(app)

# 최신 은행 거래 내역을 가져오는 함수
def fetch_transactions():
    response = requests.get('http://example.com/api/transactions')
    transactions = response.json()
    return transactions

@socketio.on('connect')
def handle_connect():
    emit('update_transactions', fetch_transactions(), broadcast=True)

@app.route('/transactions')
def get_transactions():
    return render_template('transactions.html')

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

위 코드는 실시간으로 은행 거래 내역을 업데이트하기 위해 소켓 연결 후, 최초 연결 시 update_transactions 이벤트를 브로드캐스트하여 최신 거래 내역을 클라이언트에 전달하는 코드입니다. 이후 클라이언트에서 최신 거래 내역을 받아와 화면을 업데이트합니다.

템플릿 파일 작성하기

마지막으로 실시간으로 업데이트된 은행 거래 내역을 보여주기 위한 템플릿 파일을 작성합니다.

<!DOCTYPE html>
<html>
<head>
  <title>은행 거래 내역</title>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/4.4.1/socket.io.js"></script>
</head>
<body>
  <h1>은행 거래 내역</h1>
  <ul id="transaction-list"></ul>

  <script>
    const socket = io();
    const transactionList = document.getElementById('transaction-list');

    socket.on('update_transactions', function(transactions) {
      transactionList.innerHTML = '';
      
      transactions.forEach(function(transaction) {
        const listItem = document.createElement('li');
        listItem.textContent = transaction;
        transactionList.appendChild(listItem);
      });
    });
  </script>
</body>
</html>

위 코드는 transaction-list라는 id를 가진 <ul> 태그에 은행 거래 내역을 동적으로 표시하는 JavaScript 코드입니다. WebSocket을 사용하여 서버로부터 받은 최신 거래 내역을 화면에 업데이트합니다.

이제 Flask 웹 프레임워크를 이용하여 실시간 은행 거래 내역을 구현할 수 있습니다. 위 코드를 참고하여 필요에 맞게 확장해보세요.