스크레이핑을 통해 각 응모 페이지들의 데이터를 수집
- 10 ~ 20개 정도 응모가 가능한 페이지를 리스팅후 분석
- http패킷 (Network tab)에서 확인 가능
- get post 메서드를 비교하는게 첫번째 관점
- 스크레핑 기술은 crontab이나 cron 성격을 가진
batch system을 활용해서 구현
그렇다면 20개 정도의 페이지를 최적화 하는데 필요한 요구 조건은 뭘까?
1개의 페이지마다 3~5초가 걸린다면 20개의 사이트를 스크래핑한다면
100초 이상이 걸림 이 부분을 병렬적 즉 비동기적으로 처리해줘야함
이 부분을 처리할 수 있는 기술 목록으로는 아래와 같다
.- promise와 async await
- 노드의 Worker Threads, 큐잉시스템(레디스를 활용하여 구현가능)
- 프로젝트 고도화 시키려면 레디스 필수
스크레이핑에서 한발 더 나아간 elastic stack 활용
- elastic stack은 dbms와 차이점은 없는데 검색에 특화된 dbms
- 즉, 스크레이핑된 데이터를 저장하고, 검색에 특화된 dbms로 활용가능
- 여기에 logstash 기술을 활용하면 elasticSearch로 전송할 수 있는 데이터
파이프라인 구축이 가능
docker와 docker compose 활용
- 웹어플리케이션을 컨테이너화하여 환경 격리 후 배포할 수 있게됨
- docker compose 사용시 여러개의 도커 컨테이너를 한번에 관리 가능
즉, elasticSearch, logStash를 함께 관리 가능
[TIL] 2024.03.26 최종프로젝트 응모했슈? 구상 (1) | 2024.03.27 |
---|---|
[TIL] 2024.03.25 Collaboration-Tools KPT 회고 (0) | 2024.03.25 |
[TIL] 2024.03.20 보드 승낙 거절 API (0) | 2024.03.21 |
[TIL] 2024.03.14 NestJS 구성요소의 역할 (0) | 2024.03.15 |
[TIL] 2024.03.05 NEST.JS (0) | 2024.03.06 |