프로젝트 소개

# 실시간 클릭스트림 분석 대시보드 Apache Kafka, Python, Pandas, Matplotlib으로 구축된 실시간 웹사이트 트래픽 분석 대시보드입니다. 시스템은 클릭스트림 트래픽 데이터를 시뮬레이션하고, Kafka를 통해 스트리밍하며, 실시간 분석 시각화를 렌더링합니다. ## 주요 기능 - 실시간 클릭스트림 데이터 스트리밍 파이프라인 - Kafka Producer 및 Consumer 아키텍처 - 애니메이션 그래프가 있는 실시간 Matplotlib 기반 대시보드 - 국가별 트래픽 분포 추적 - 시간 경과에 따른 고유 방문자 성장 - Kafka 인프라용 Docker Compose 설정 ## 기술 스택 Python, Apache Kafka, Docker, Pandas, Matplotlib, NumPy ## 프로젝트 구조 ``` kafka-project/ ├── consumer.py # Kafka consumer + Matplotlib 대시보드 ├── producer.py # 클릭스트림 이벤트를 전송하는 Kafka producer ├── generate_data.py # 합성 클릭스트림 데이터 생성기 ├── docker-compose.yml # Kafka 스택 구성 └── README.md ``` ## 동작 방식 1. `generate_data.py`는 합성 클릭스트림 레코드(사용자 세션, 페이지 뷰, 국가 코드, 타임스탬프)를 생성합니다. 2. `producer.py`는 해당 레코드를 읽고 Kafka 토픽(`clickstream-topic`)에 게시합니다. 3. `consumer.py`는 Kafka에서 메시지를 소비하고 100개 메시지마다 실시간 Matplotlib 필드를 업데이트하여, 막대 차트로 국가 분포와 선 차트로 고유 사용자 성장을 표시합니다. 4. Kafka는 Docker Compose를 통해 Docker 컨테이너 내에서 실행됩니다. ## 프로젝트 실행 방법 1. Kafka 서비스 시작: ```bash docker compose up -d ``` 2. 토픽 생성: ```bash docker exec -it kafka /opt/kafka/bin/kafka-topics.sh --create --topic clickstream-topic --bootstrap-server localhost:9092 ``` 3. 데이터셋 생성: ```bash python generate_data.py ``` 4. Producer 실행: ```bash python producer.py ``` 5. 두 번째 터미널을 열고 Consumer 대시보드 실행: ```bash python consumer.py ``` Kafka 메시지가 도착하면 Matplotlib 창이 실시간으로 업데이트됩니다. ## 향후 개선 계획 - 웹 기반 대시보드(예: Streamlit 또는 Dash) - Apache Spark Streaming 통합 - 역사적 분석을 위한 영구 데이터베이스 저장소 - 세션 수준 분석 - 사용자 행동 예측 모델