김건형Portfolio
← 전체 프로젝트

회사 프로젝트

분산 크롤링 기반 신규 채널 수집 봇

여러 수집 봇이 작업을 나눠 신규 유튜브 채널을 확보하는 시스템

기간
2025.01 - 2025.02
소속
버즈앤비
담당
분산 수집 시스템 단독 설계·개발

개요

검색어·인기 영상에서 출발해 추천 영상을 탐색하는 채널 수집 시스템. 데이터 수요에 맞춰 봇을 늘리고, 공유 작업 목록과 중복 확인·갱신 중단 시 복구를 통해 수집을 이어가도록 설계

담당 업무

인턴 기간에 분산 채널 수집 시스템을 개발했고, 이후 핵심 수집 작업에 활용됨. 여러 봇의 공유 작업 목록, 중복 확인과 갱신 중단 후 회복 조건을 구현

탐색 방식
수집한 영상에서 추천 경로를 따라가며 새 채널을 발견
대상 갱신
같은 조건의 봇들이 목록을 공유하고 갱신 중 상태를 관리
운영 관찰
봇·날짜별 탐색 수와 요청 수, 신규 채널 수를 기록
이전 대비 일별 수집량
100배
수요에 따른 봇 추가
Scale-out
작업 분배·갱신 관리
공유 목록

구조

  1. 01검색어·인기 영상한국 · 미국의 시작점 확보
  2. 02공유 탐색 목록조건이 같은 봇의 대상 공유
  3. 03추천 영상 탐색깊이 · 조회 수 · 순위 조건
  4. 04중복 확인기존 채널 + 신규 대기 목록
  5. 05신규 채널 저장수집 결과 · 운영 지표

문제 및 해결

여러 봇의 대상 갱신이 겹치는 문제

문제
같은 조건으로 수집하는 봇들이 공통 목록을 다시 만드는 시점에 충돌할 수 있음
해결
준비·갱신 상태를 나누고 조건부 갱신으로 작업자를 선점. 소진·날짜 변경·대기 초과를 구분
결과
봇을 늘려도 공통 작업 목록을 함께 소비하고 갱신할 수 있는 구조를 구성

기존 채널과 신규 대기 데이터의 중복

문제
본 저장소에 있는 채널뿐 아니라, 수집했지만 아직 반영되지 않은 채널도 중복될 수 있음
해결
OpenSearch의 기존 채널을 먼저 확인하고 MongoDB의 신규 수집 목록을 다시 확인
결과
두 저장 단계의 중복을 나눠 처리해 신규 채널 수집 흐름을 구성

구현 내용

시작점 생성
기존 태그·해시태그, 직접 지정한 검색어, 인기 영상을 활용. 같은 조건의 봇이 생성 결과를 공유
갱신 선점
MongoDB의 상태를 조건부로 갱신해 목록 생성 주체를 정함. 갱신 중단은 대기 시간 조건으로 회복
대상 소비
공유 목록에서 대상을 꺼내 개별 봇의 탐색을 시작. 직접 고정 배정하는 부담을 줄임
중복 조회
OpenSearch mget으로 기존 채널을 확인한 뒤 MongoDB에서 신규 대기 채널을 확인
운영 지표
대상 사용·프록시 요청·영상 탐색·신규 채널 수를 봇·날짜별로 남겨 탐색 비용과 수집 결과를 나눠 확인