Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

중고나라 거래 통계 서비스 1차 개발 완료 보고

3,523 views

Published on

중고나라 거래 통계 서비스 1차 개발 완료 보고 자료입니다.

Published in: Software
  • Login to see the comments

중고나라 거래 통계 서비스 1차 개발 완료 보고

  1. 1. 중고나라 거래 통계 서비스 1차 개발 완료 보고 2015. 8. 21. 조석현(zoe@embian.com) 개발 1본부 / Embian
  2. 2. 목차 1. 서비스 정의 및 목적 2. 서비스 Concept & History 3. 개발 인력 및 일정 4. 주요 사용 기술 5. 서비스 시스템 구조 및 역할 6. 웹 페이지 구성(Demo) 7. 서비스 기대 효과
  3. 3. 1. 서비스 정의 및 목적
  4. 4. 1. 서비스 정의 및 목적 1.1. „중고나라 거래 통계 서비스‟란? 네이버 “중고나라” 까페 회원들이 업로드 하는 게시물, 제품의 실시갂 정보를 수집, 처리, 시각화하여 Dashboard 형태로 거래 통계 정보를 열람하는 웹 서비스 4
  5. 5. 1. 서비스 정의 및 목적 1.2. 서비스의 목적 • “엠비안의 기술력”을 테스트하기 위한 수단 1. 데이터 수집 기술 2. 실시갂 처리 기술 3. 데이터 시각화 기술 CEP (실시갂 처리) Scraping (수집) Visualization (시각화) 5
  6. 6. 2. 서비스 Concept & History
  7. 7. 2. 서비스 Concept & History 2.1. 초기 Concept(5월) CEP (실시갂 처리) ? ? CEP 엔진 기술이 있으나, 내부 서비스 적용사례가 없음. 어떤 데이터(?)를, 어떻게 처리(?)하여, 어떤 결과(?)를 보여야 할 지 감(?)이 없음. 7
  8. 8. 2. 서비스 Concept & History 2.1. 초기 Concept(5월) 팀 포퐁(Team Popong)의 정치 분석 사이트 – 나는 서울 시장이다 [ Reference URL : http://popong.com/iamseoulmayor/ ] “서로 다른 성향 집단의 데이터를 비교 분석해보자” 8
  9. 9. 2. 서비스 Concept & History 2.2. 과도기 Concept(6월) “일베(일갂베스트)와 오유(오늘의 유머)의 데이터를 분석하여 정치 성향을 비교하는 통계를 보여주자.” 일베 - 일갂베스트 게시판 일 평균 게시물 업로드 약 1000건 오유 – 베스트게시판 일 평균 게시물 업로드 약 500건 그러나, 실시갂 정치성향 데이터 양이 부족해 의미 있는 결과가 나올 수 없음. CEP (실시갂 처리) Scraping (수집) 일베 Visualization (시각화) 오유 9
  10. 10. 2. 서비스 Concept & History 2.3. 현재 Concept(7-8월) “실시갂 데이터 양이 풍부한 중고나라의 데이터를 이용해 실시갂 제품 정보 데이터를 Dashboard 형태로 제공하는 웹 서비스로 Concept을 변경” 중고나라의 일일 게시물 업로드 수는 약 15-20만 건 CEP (실시갂 처리) Scraping (수집) 중고나라 Visualization (시각화) 10
  11. 11. 2. 서비스 Concept & History 2.4. History 요약 초기 Concept 과도기 Concept 현재 Concept 6월 7월 8월 Concept 변화 Event Today (8/21) 11 - 프로젝트 시작 - 1차 개발 완료
  12. 12. 3. 개발 인력 및 일정
  13. 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
  14. 14. 4. 주요 사용 기술
  15. 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
  16. 16. 5. 서비스 시스템 구조 및 역할
  17. 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. 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. 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. 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
  21. 21. 6. 웹 페이지 구성
  22. 22. 6. 웹 페이지 구성 6.1. 기획 및 구현 [최초 설계 Mock-up] [구현] 최초 설계한 Dashboard 모양과 유사하게 구현함. 22
  23. 23. Demo http://joonggo.embian.com/ 6. 웹 페이지 구성 6.2. Demo 23
  24. 24. 6. 웹 페이지 구성 6.3. 웹 페이지 기능 설명 No 제목 기능 설명 1 실시갂 게시물 업로드 수 실시갂으로 중고나라에 게시되는 게시물의 업로드 수를 표시 2 최근 1분 게시물 업로드 현황 현재를 기준으로 최근 1분 동안 업로드 된 게시물의 현황을 선 그래프로 표시 3 실시갂 제품 Top 5 현재를 기준으로 최근 1시갂 동안 업로드 된 제품 중 가장 많이 업로드 된 제품을 1순위부터 5순위까지 표시 4 제품 실시갂 현황 현재를 기준으로 최근 1시갂 동안 업로드 된 제품 40개를 게시된 비중에 따라 버블차트로 표시 5 일별 게시물 수 통계 매일 중고나라에 업로드 된 게시물의 누적 게시 건수를 막대 그래프로 표시 6 일갂 Top 10 제품 통계 현재를 기준으로 하루 동안 업로드 된 제품 10개를 게시된 비중에 따라 파이 그래프로 표시 24
  25. 25. 7. 서비스 기대 효과
  26. 26. 7. 서비스 기대효과 1. “엠비안”의 목적 달성 – 기술력 테스트의 수단으로서, 프로젝트 관련 기술이 가시화된 결과(웹 서비스, 소스코드)로 나타남. – 대규모의 데이터(일 20만건)를 축적할 수 있음. 2. “사용자”에게 객관적 지표 제공 – 실시갂 데이터와 일갂 통계 데이터를 제공. 26
  27. 27. END

×