개요
검색어·인기 영상에서 출발해 추천 영상을 탐색하는 채널 수집 시스템. 데이터 수요에 맞춰 봇을 늘리고, 공유 작업 목록과 중복 확인·갱신 중단 시 복구를 통해 수집을 이어가도록 설계
담당 업무
인턴 기간에 분산 채널 수집 시스템을 개발했고, 이후 핵심 수집 작업에 활용됨. 여러 봇의 공유 작업 목록, 중복 확인과 갱신 중단 후 회복 조건을 구현
- 탐색 방식
- 수집한 영상에서 추천 경로를 따라가며 새 채널을 발견
- 대상 갱신
- 같은 조건의 봇들이 목록을 공유하고 갱신 중 상태를 관리
- 운영 관찰
- 봇·날짜별 탐색 수와 요청 수, 신규 채널 수를 기록
- 이전 대비 일별 수집량
- 100배
- 수요에 따른 봇 추가
- Scale-out
- 작업 분배·갱신 관리
- 공유 목록
구조
- 01검색어·인기 영상한국 · 미국의 시작점 확보
- 02공유 탐색 목록조건이 같은 봇의 대상 공유
- 03추천 영상 탐색깊이 · 조회 수 · 순위 조건
- 04중복 확인기존 채널 + 신규 대기 목록
- 05신규 채널 저장수집 결과 · 운영 지표
문제 및 해결
여러 봇의 대상 갱신이 겹치는 문제
- 문제
- 같은 조건으로 수집하는 봇들이 공통 목록을 다시 만드는 시점에 충돌할 수 있음
- 해결
- 준비·갱신 상태를 나누고 조건부 갱신으로 작업자를 선점. 소진·날짜 변경·대기 초과를 구분
- 결과
- 봇을 늘려도 공통 작업 목록을 함께 소비하고 갱신할 수 있는 구조를 구성
기존 채널과 신규 대기 데이터의 중복
- 문제
- 본 저장소에 있는 채널뿐 아니라, 수집했지만 아직 반영되지 않은 채널도 중복될 수 있음
- 해결
- OpenSearch의 기존 채널을 먼저 확인하고 MongoDB의 신규 수집 목록을 다시 확인
- 결과
- 두 저장 단계의 중복을 나눠 처리해 신규 채널 수집 흐름을 구성
구현 내용
- 시작점 생성
- 기존 태그·해시태그, 직접 지정한 검색어, 인기 영상을 활용. 같은 조건의 봇이 생성 결과를 공유
- 갱신 선점
- MongoDB의 상태를 조건부로 갱신해 목록 생성 주체를 정함. 갱신 중단은 대기 시간 조건으로 회복
- 대상 소비
- 공유 목록에서 대상을 꺼내 개별 봇의 탐색을 시작. 직접 고정 배정하는 부담을 줄임
- 중복 조회
- OpenSearch mget으로 기존 채널을 확인한 뒤 MongoDB에서 신규 대기 채널을 확인
- 운영 지표
- 대상 사용·프록시 요청·영상 탐색·신규 채널 수를 봇·날짜별로 남겨 탐색 비용과 수집 결과를 나눠 확인