Crawl the main issues on the portal site. Create a real-time search term site based on the acquired data.
포털 사이트인 다음은 2020년 2월에, 네이버의 실시간 검색어 기능은 2021년 2월 5일부로 사라졌다.
실시간 검색어로 이슈에 대한 정보를 얻었는데 사라져서
여러 포털 사이트에서 정보를 모아서 실시간 검색어 (실검) 기능을 만들어 보려고 한다.
- 데이터 수집 예전에 노마드 코더에서 파이썬의 Beautiful Soup을 이용해 웹 크롤링을 했었다. 이를 바탕으로 자바에서 Jsoup라이브러리를 활용하여 크롤링 할 것이다.
크롤링할 사이트는 다음과 같다.
네이버 뉴스 랭킹 (1시간 간격 업데이트) 구글 트렌드 (1시간 마다 업데이트) 네이트 (인기검색어 + 실시간 이슈 키워드) (실검 기능 존재) 다음 ( 검색어 하단 인기 검색어) 줌 (이슈 검색어) (실검 기능 존재)
API를 제공하는 페이지에서는 API를 활용할 예정이며 순위는 1 ~ 10위 초기에 구성할 시스템으로는 과거의 데이터를 바탕으로 일일 인기검색어 top 10을 제공하고 이후 당일 데이터로 1시간 간격으로 인기 검색어 top 10을 제공하는 것을 목표로 한다. 데이터를 가져오는 시간간격은 30분 정도로 생각하고 있다.
- 데이터 가공
데이터 가공은 자바에서 할 예정이다. 가져온 데이터를 어떻게 가공할지가 고민거리 자체적으로 포털사이트별로 우선순위를 매기거나 트래픽을 구할 수 있으면 그걸 바탕으로 차등을 두어 가공하려 한다. 1차적으로 가공되지 않은 데이터를 각 포털별로 쌓아둔다. row는 id, potalSite, content, rank ,date로 구성 id unique, autoincrement 옵션을 주고 나머지는 not null 정도로 하려고 한다.
- 순위별 정렬
- 각 순위에서 가장 많이 노출된 문자열 솎아내기 (counting) 2-1 -> 각 순위에서 솎아낸 문자열중에 겹치는 부분이 없다면? -> 우선순위 -> 네이버 뉴스 랭킹 or 구글 트렌드 우선하기
- 솎아낸 문자열 랭킹 기준으로 나만의 랭킹 재정의
정도로 생각하고 있다. 재정의한 데이터를 다른 테이블에 넣어서 데이터 베이스 구축 구축한 데이터 베이스 기반으로 웹에 띄우기 and api제공
- 검색 기능
검색어를 어떤식으로 제공할지도 생각중이다. 단순히 내가 재정의한 데이터가 존재하면 순위와 일자를 포함하여 return할지 혹은 포털사이트에서 가져온 1차적인 데이터도 포함시켜 해당 순위와 일자 그리고 링크까지 제공할지 -> 가져온 소스 -> too much
4.회원기능
외부 서비스를 기반으로 회원기능 (네이버 카카오 구글) + 이메일 기반 자체 회원기능
- client side
모바일 & pc 대응
- 사용할 기술
Language Java 11, JavaScript es6
Web Framework Springboot SpringbootSecurity Spring jpa
Test junit
VCS GIT
Crwaling Library Jsoup
SPA대응으로 node.js 및 react는 훗날 만들 수도 있고 아닐 수도 있습니다.