[파이썬] 웹 프레임워크를 이용한 실시간 물류 모니터링

실시간 물류 모니터링은 물류 업계에서 매우 중요한 역할을 합니다. 이를 통해 물류 과정을 실시간으로 추적하고 모니터링하여 효율적인 운영을 할 수 있습니다. 웹 프레임워크를 이용하여 실시간 물류 모니터링을 구현하는 방법을 알아보겠습니다.

웹 프레임워크 선택

Python은 다양한 웹 프레임워크를 제공하고 있습니다. 여기에서는 Flask를 사용하여 실시간 물류 모니터링을 구현해보겠습니다. Flask는 가볍고 간결한 구조로 개발할 수 있으며, 강력한 확장성을 가지고 있어 적은 노력으로 실시간 모니터링 시스템을 구축할 수 있습니다.

필요한 패키지 설치

먼저 필요한 패키지를 설치해야 합니다. 아래의 명령을 사용하여 패키지를 설치하세요.

pip install flask
pip install requests
pip install python-dotenv
pip install kafka-python

Flask 애플리케이션 설정

Flask 애플리케이션을 설정하기 위해 app.py 파일을 생성하고 다음과 같은 내용으로 작성합니다.

from flask import Flask, render_template
from kafka import KafkaConsumer

app = Flask(__name__)

@app.route('/')
def home():
    return render_template('index.html')

@app.route('/monitor')
def monitor():
    # Kafka Consumer 설정
    consumer = KafkaConsumer('logistics_monitoring', bootstrap_servers='localhost:9092')
    
    return render_template('monitor.html', consumer=consumer)

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

위 코드에서는 Flask 애플리케이션을 생성하고 “/” 경로에 대한 라우팅을 설정하여 index.html 파일을 렌더링하도록 했습니다. “/monitor” 경로에 대한 라우팅은 monitor.html 파일을 렌더링하며, 이때 Kafka Consumer를 생성하여 실시간 데이터를 수신합니다.

HTML 템플릿 작성

Flask는 Jinja2 템플릿 엔진을 사용하여 HTML을 렌더링합니다. 따라서 templates 폴더 아래에 index.htmlmonitor.html 파일을 생성하여 다음과 같은 내용을 작성합니다.

index.html

<!DOCTYPE html>
<html>
<head>
    <title>실시간 물류 모니터링</title>
</head>
<body>
    <h1>실시간 물류 모니터링</h1>
    <a href="/monitor">모니터링 시작</a>
</body>
</html>

monitor.html


<!DOCTYPE html>
<html>
<head>
    <title>실시간 물류 모니터링</title>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <script>
        $(document).ready(function() {
            var consumer = {{ consumer|safe }};
            consumer.subscribe();
            
            consumer.on('message', function(message) {
                var data = JSON.parse(message.value);
                $('#monitor').append('<p>' + data.message + '</p>');
            });
        });
    </script>
</head>
<body>
    <h1>실시간 물류 모니터링</h1>
    <div id="monitor"></div>
</body>
</html>

위 템플릿에서는 실시간으로 Kafka에서 전송되는 데이터를 수신하기 위해 JavaScript 코드를 작성했습니다. 이를 통해 새로운 메시지가 수신될 때마다 화면에 출력되도록 구현했습니다.

실행

모든 설정과 코드 작성이 완료되었다면, app.py 파일을 실행하여 Flask 애플리케이션을 실행할 수 있습니다. 다음과 같은 명령을 사용하세요.

python app.py

웹 브라우저에서 http://localhost:5000/에 접속하면 index.html 화면이 나타날 것입니다. “모니터링 시작” 링크를 클릭하면 monitor.html 화면으로 이동하며, 실시간으로 물류 모니터링 데이터가 출력될 것입니다.

마무리

이번 글에서는 Flask 웹 프레임워크를 이용하여 실시간 물류 모니터링을 구현하는 방법을 알아보았습니다. 이를 통해 물류 업계에서 효율적인 운영을 위한 실시간 데이터 추적과 모니터링 시스템을 구축할 수 있습니다. Flask 외에도 Django 등 다른 웹 프레임워크를 사용하여 동일한 기능을 구현할 수 있으니, 개발자들은 자신에게 맞는 프레임워크를 선택하여 사용하면 됩니다.