7. 2. 서비스 Concept & History
2.1. 초기 Concept(5월)
CEP
(실시갂 처리)
? ?
CEP 엔진 기술이 있으나, 내부 서비스 적용사례가 없음.
어떤 데이터(?)를, 어떻게 처리(?)하여, 어떤 결과(?)를 보여야 할 지 감(?)이 없음.
7
8. 2. 서비스 Concept & History
2.1. 초기 Concept(5월)
팀 포퐁(Team Popong)의 정치 분석 사이트
– 나는 서울 시장이다
[ Reference URL : http://popong.com/iamseoulmayor/ ]
“서로 다른 성향 집단의
데이터를 비교 분석해보자”
8
9. 2. 서비스 Concept & History
2.2. 과도기 Concept(6월)
“일베(일갂베스트)와 오유(오늘의 유머)의 데이터를
분석하여 정치 성향을 비교하는 통계를 보여주자.”
일베 - 일갂베스트 게시판 일 평균 게시물 업로드 약 1000건
오유 – 베스트게시판 일 평균 게시물 업로드 약 500건
그러나, 실시갂 정치성향 데이터 양이 부족해 의미 있는 결과가 나올 수 없음.
CEP
(실시갂 처리)
Scraping
(수집)
일베
Visualization
(시각화)
오유
9
10. 2. 서비스 Concept & History
2.3. 현재 Concept(7-8월)
“실시갂 데이터 양이 풍부한 중고나라의 데이터를 이용해
실시갂 제품 정보 데이터를 Dashboard 형태로
제공하는 웹 서비스로 Concept을 변경”
중고나라의 일일 게시물 업로드 수는 약 15-20만 건
CEP
(실시갂 처리)
Scraping
(수집)
중고나라
Visualization
(시각화)
10
11. 2. 서비스 Concept & History
2.4. History 요약
초기
Concept
과도기
Concept
현재
Concept
6월 7월 8월
Concept
변화
Event
Today
(8/21)
11
- 프로젝트 시작 - 1차 개발 완료
13. 3. 개발 인력 및 일정
3.1. 갂트 차트 & History
전체 프로젝트 기준 : 3개월
현재 Concept 기준 : 1.2개월
5월 6월 7월 8월
4 1 2 3 4 1 2 3 4 1 2 3
석현
1 일베/오유 게시물 스크래퍼 개발
2 스크래퍼 속도 개선 / 모듈 교체
3 중고나라 웹 기획
4 중고나라 스크래퍼 개발
5 중고나라 스크래퍼 속도 개선
6 제품명 추출 및 비속어 제거
7 CEP 인수인계
8 웹 페이지 개발
9 d3js 차트 연동
10 서비스 deploy
정
1 CEP 개발
2 CEP 인수인계
3 서비스 deploy
재영 1 버블차트 구현
Today
(8/21)
13
15. 4. 주요 사용 기술
4.1. 서비스 단위별 주요 사용기술
서비스 단위 주요 사용기술 및 언어
중고나라 Scraper
Python(python-scrapy)
bash
Message Queue
Apache Kafka
Zookeeper
Search Engine Elastic
CEP
Java/XML
eBay Pulsar(Jetstream)
Zookeeper
Virtualization(가상화) Docker
In-memory DB Redis
Visualization(시각화)
- Web Server
Python(python-flask)
Python(gevent-socketio)
Visualization(시각화)
- Client
HTML5+CSS
Javascript
jQuery
Bootstrap
D3js
15
17. 5. 서비스 시스템 구조 및 역할
5.1. 전체 구성도
Scraping
(중고나라 Scraper)
Elastic
Redis
App
#1
App
#3
App
#4
App
#2
Visualization
(WebServer)
중고나라
Visualization
(Client)
#231 Server
#232 Server
CEP
(Pulsar Jetstream)
MSG Queue
(Kafka)
Indexing
Query
SocketIO
Data Scraping
Pub Sub
Pub Sub
Request
(every 2s)
Response
(Aggregation, Index count)
1. Data Scraping
2. Data Parsing
3. Generate MSG
4. Publish MSG to Kafka
5. Indexing MSG to Elastic
1. Subscribe data1 from Redis
2. Handle data1 to socket
3. Request query to Elastic
4. Get response(data2) from Elastic
5. Parsing data2 and handle Rest API
Rest API
1. Request Webserver
2. Get data1, data2 from socket, Rest API
3. D3js Graph Visualization
zookeeper
EPLMSG ParsingConsume MSG
from Kafka
Publish to Redis
Check Point 1. Scraping, CEP, Visualization의 위치 확인.
Check Point 2. 서버 2대로 deploy되어 있음.
17
18. 5. 서비스 시스템 구조 및 역할
5.2. Scraper(수집)
Scraping
(중고나라 Scraper)
Elastic
중고나라
MSG Queue
(Kafka)
Indexing
Data Scraping
Pub
Request
(every 2s)
Scraper 주요 역할
1. Data Scraping
2. Data Parsing
3. Generate MSG
4. Publish MSG to Kafka
5. Indexing MSG to Elastic
18
19. 5. 서비스 시스템 구조 및 역할
5.3. CEP(실시갂 처리)
Redis
App
#1
App
#3
App
#4
App
#2
CEP
(Pulsar Jetstream)
MSG Queue
(Kafka)
Sub
Pub S
zookeeper
CEP 단계별 역할
App #1 : Consume MSG from Kafka
App #2 : MSG Parsing
App #3 : EPL
App #4 : Publish to Redis
19
20. 5. 서비스 시스템 구조 및 역할
5.4. Visualization(시각화)
Elastic
Redis
Visualization
(Web Server)
Visualization
(Client)
Query
SocketIO
ub Sub
Response
(Aggregation, Index count)
Web Server 주요 동작
1. Subscribe data1 from Redis
2. Handle data1 to socket
3. Request query to Elastic
4. Get response(data2) from Elastic
5. Parsing data2 and handle Rest API
Rest API
Client 주요 동작
1. Request Webserver
2. Get data1, data2 from socket, Rest API
3. D3js Graph Visualization
20
24. 6. 웹 페이지 구성
6.3. 웹 페이지 기능 설명
No 제목 기능 설명
1 실시갂 게시물 업로드 수 실시갂으로 중고나라에 게시되는 게시물의 업로드 수를 표시
2 최근 1분 게시물 업로드 현황 현재를 기준으로 최근 1분 동안 업로드 된 게시물의 현황을 선 그래프로 표시
3 실시갂 제품 Top 5 현재를 기준으로 최근 1시갂 동안 업로드 된 제품 중 가장 많이 업로드 된 제품을 1순위부터 5순위까지 표시
4 제품 실시갂 현황 현재를 기준으로 최근 1시갂 동안 업로드 된 제품 40개를 게시된 비중에 따라 버블차트로 표시
5 일별 게시물 수 통계 매일 중고나라에 업로드 된 게시물의 누적 게시 건수를 막대 그래프로 표시
6 일갂 Top 10 제품 통계 현재를 기준으로 하루 동안 업로드 된 제품 10개를 게시된 비중에 따라 파이 그래프로 표시
24
26. 7. 서비스 기대효과
1. “엠비안”의 목적 달성
– 기술력 테스트의 수단으로서, 프로젝트 관련 기술이 가시화된 결과(웹
서비스, 소스코드)로 나타남.
– 대규모의 데이터(일 20만건)를 축적할 수 있음.
2. “사용자”에게 객관적 지표 제공
– 실시갂 데이터와 일갂 통계 데이터를 제공.
26