프로젝트 소개
# 실시간 클릭스트림 분석 대시보드
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 통합
- 역사적 분석을 위한 영구 데이터베이스 저장소
- 세션 수준 분석
- 사용자 행동 예측 모델
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.