Monitordog는 자동차 관련 온라인 커뮤니티의 이슈를 실시간으로 모니터링하고 분석하는 데이터 엔지니어링 프로젝트입니다. 시간 단위로 커뮤니티 데이터를 수집하여 자동차 관련 이슈를 조기에 감지하고, 관련 부서에 알림을 제공합니다.
- 여러 자동차 커뮤니티(네이버 카페, DC인사이드 등) 데이터 수집
- 1시간 간격으로 실시간 데이터 수집 및 처리
- 수집된 데이터의 감성 분석 및 유사도 측정
- 중요 이슈 발생 시 알림 전송
- 대시보드를 통한 데이터 시각화
- Python
- PySpark
- Beautiful Soup (bs4)
- Flask
- Step Functions
- Lambda
- EMR (Elastic MapReduce)
- SQS (Simple Queue Service)
- SNS (Simple Notification Service)
- Redshift
- EC2
- S3
- CloudWatch
- EventBridge
-
데이터 수집
- EventBridge Scheduler를 통한 1시간 주기 작업 트리거
- Step Functions을 활용한 병렬 크롤링 워크플로우
- 각 커뮤니티별 전용 크롤러 구현
- SQS를 통한 메시지 전송
- S3에 데이터 저장
-
데이터 처리
- Lambda를 통한 데이터 전처리
- EMR을 활용한 대규모 데이터 처리
- 감성 분석 및 유사도 측정
- Redshift를 활용한 데이터 웨어하우징
-
데이터 서빙
- Tableau를 통한 데이터 시각화
- Slack을 통한 알림 전송
- 문제: JSON 파일을 개별적으로 저장하면서 발생한 S3 탐색 비용 증가와 파일 관리의 복잡성
- 해결: JSON Lines(JSONL) 형식을 도입하여 여러 JSON 객체를 하나의 파일로 집계
- 결과: 파일 수 감소, 관리 효율성 향상, 배치 처리 성능 개선
- 문제: Step Functions의 히스토리 이벤트 한도(25000) 초과
- 해결:
- Lambda 대신 SQS를 활용하여 페이로드 감소
- 데이터 수집과 저장 로직 분리
- 결과: 이벤트 수 감소, 컴포넌트 간 결합도 감소, 시스템 안정성 향상
- 자동차 관련 이슈의 조기 감지 시스템 구축
- 1시간 단위의 실시간 모니터링 및 알림 시스템 구현
- 이슈의 심각성과 유사도 분석을 통한 Actionable Value 제공
- 데이터 기반의 의사결정 지원 시스템 확립