- Ruby : 2.5.3
- Ruby on Jets : 2.3.12
- Ruby on Jets [Officual Document]
- Ruby on Jets 개념 Tutorial [클릭]
- 안드로이드 Repository : https://github.com/samslow/popStarMomi-FE-V2
- API 통신 / 소개 페이지 렌더링 / Database Server : https://github.com/kbs4674/catchDeal-BE
- (Intro) 싼 것만 물어드려요 : 캐치딜 서비스!
- 캐치딜 백엔드 개발이야기 : 좌충우돌 서버운영 이야기
- 캐치딜 백엔드 개발이야기 : 문서화
- 캐치딜 백엔드 개발이야기 : 디자이너와의 협업
- 캐치딜 백엔드 개발이야기 : 크롤링
- 캐치딜 백엔드 개발이야기 : Restful API 설계의 다양한 고민
- 커뮤니티에는 매일 갖가지 할인행사에 대한 정보를 사람들이 올리면서 공유한다.
- 그런데 커뮤니티 한 곳이 아닌 여러곳에 정보가 퍼져있다.
- 그렇다보니 똑같은 정보에 대해 A, C 커뮤니티에는 정보가 있지만, 정작 B 커뮤니티에는 없는 경우가 있다.
- 백엔드 프로젝트의 역할은 각 커뮤니티에서 특가 정보를 크롤링 후, 앱(apk)과의 통신을 위해 JSON 형식으로 웹페이지에 결과물을 띄우는 것을 담당한다.
- 크롤링에 대해선 매 시간 단위로 CronJob을 활용하여 Background Job을 통해 크롤링이 진행된다.
- 기본적으로 크롤링을 담당한다.
- AWS Lambda에서는 정해진 Scheduler 시간에 따라 자동으로 크롤링 코드가 있는 함수가 돌아가게 한다.
- 오전 10시 ~ 오후 23시 사이에 사용자가 등록한 키워드를 기반으로 현 시간~과거 1시간 범위 내 데이터 검색 및 푸쉬알람이 작동되게 한다.
- 웹 내 크롤링 스케쥴러 작동 원리
app/jobs/hit_product_clien_job.rb[hitProductClienJob] 클리앙 사이트 크롤링 트리거app/jobs/hit_product_ruliweb_job.rb[hitProductRuliwebJob] 루리웹 사이트 크롤링 트리거app/jobs/hit_product_ppom_job.rb[hitProductPpomJob] 뽐뿌 사이트 크롤링 트리거app/jobs/hit_product_deal_bada_job.rb[hitProductDealBadaJob] 딜바다 사이트 크롤링 트리거app/jobs/hit_product_over_clien_job.rb[hitProductClienJob] 클리앙 사이트에 있어 크롤링/데이터 생성 목차의 다음 목차부터 크롤링/데이터 수정 Onlyapp/jobs/hit_product_over_ruliweb_job.rb[hitProductRuliwebJob] 루리웹 사이트에 있어 크롤링/데이터 생성 목차의 다음 목차부터 크롤링/데이터 수정 Onlyapp/jobs/hit_product_over_ppom_job.rb[hitProductPpomJob] 뽐뿌 사이트에 있어 크롤링/데이터 생성 목차의 다음 목차부터 크롤링/데이터 수정 Onlyapp/jobs/hit_product_over_deal_bada_job.rb[hitProductDealBadaJob] 딜바다 사이트에 있어 크롤링/데이터 생성 목차의 다음 목차부터 크롤링/데이터 수정 Onlyapp/jobs/auto_delete_job.rb[autoDelete] 게시글 삭제 트리거app/jobs/alive_check_job.rb[aliveCheck] 원본 게시글이 삭제되었는지 체크app/jobs/hit_product_over_clien_check_job.rb[overClienCheck] 원본 게시글이 삭제되었는지 체크app/jobs/keyword_alarm_job.rb[keywordAlarm] 오전 10시 ~ 오후 11시 사이에 사용자가 등록한 키워드에 따라 푸쉬알람이 전송됩니다.


