대규모 데이터 환경에서 조회나 검색의 성능을 확인하고 개선하고자 하는 목표가 있었기에 1000만 건 이상의 데이터 확보를 목표로 진행
두 가지 방법 중 후자의 방식으로 데이터를 확보하는 것이 데이터의 다양성을 담보할 수 있고 실제 서비스 환경과 유사도를 높일 수 있는 방식이라고 판단하여 후자로 선택
무신사 데이터 크롤링
커머스 서비스를 구현하되 한정판 상품과 같이 대규모 트래픽을 동시에 유도할 수 있을만한 카테고리를 고민하던 중 ‘패션 커머스’를 선택하게 되었고 상품 종류가 굉장히 다양한 ‘무신사’에서 데이터를 수집하기로 결정
이슈 1. 크롤링 단계에서 시간이 너무 오래 소모되어 로컬 환경에서 크롤링 프로그램을 실행하면 다른 작업을 하기가 어려움
EC2 인스턴스에 크롤링 프로그램을 실행할 컨테이너를 띄워서 실행함으로써 문제 해결
이슈 2. 지속적인 데이터 수집
실제 커머스 서비스라면 계속해서 새로운 상품들이 추가될 것이기에 우리 DB에도 초기 확보한 1000만 건 외에도 지속적으로 데이터를 수집하고 저장할 필요고 있다고 판단
의견
초기 크롤링을 마친 후에 굳이 불필요한 데이터까지 크롤링할 필요는 없다고 판단하여 가능한 새로운 상품만 크롤링 할 확률이 높은 2번 방식으로 결정
이슈 3. 크롤링 프로그램 실행 자동화
매일 약속된 시간에 수동으로 크롤링 프로그램을 실행시키는 것은 비효율적이라고 판단하여 이를 자동화 → 현재 사용하고 있는 EC2 인스턴스가 Ubuntu 환경이므로 “Crontab” 이라는 리눅스용 작업 스케쥴러를 이용해서 프로그램 실행 자동화
crontab -e
0 4 * * * docker restart container_name