2026년 10월 7일 기준으로 Shifter는 Oxylabs와 Bright Data보다 많은, 가장 큰 규모의 실시간 미국 IP 풀을 보유하고 있으며, 비용은 그 일부에 불과합니다.Shifter는 이제 가장 많은 미국 라이브 IP 풀을 보유하고 있습니다

벤치마크 보기

데이터 수집 팀 구성: 역할, 비율, 그리고 가장 먼저 무너지는 것

웹 데이터 수집에는 실제로 몇 명이 필요할까요? 각 역할, 자신의 수치로 직접 돌려볼 수 있는 계획 모델, 그리고 규모가 커질 때 가장 먼저 무너지는 지점을 살펴봅니다.

엔지니어링 · 2026년 11월 4일에 업데이트됨 · 5분 읽기
3 사람50혼합7 사람200혼합22 사람200어려움
동일한 모델, 3가지 작업량. 호박색는 고장 난 것을 수리하는 것이며, 이것이 팀 규모를 결정합니다.
지식
이 페이지에서
  1. 인원 규모를 좌우하는 요소
  2. 역할들
  3. 계획 모델
  4. 가장 먼저 무너지는 것
  5. 필요한 인원 줄이기
  6. 결론
  7. 출처 및 참고자료

웹 데이터 수집을 위한 대부분의 계획은 스크레이퍼를 위한 예산은 세우지만 사람은 잊어버린다. 첫 번째 버전은 작성하는 데 몇 주밖에 걸리지 않으므로 한 사람으로 이루어진 팀으로도 충분해 보인다. 그러다 사이트가 변경되고, 물량이 늘어나고, 고객이 잘못된 수치를 발견하면 그제서야 이 일이 스크레이퍼를 작성하는 일이 아니었다는 것이 드러난다. 이 일은 스크레이퍼를 계속 정확하게 유지하는 일이었다.

이 작업에 몇 명이 필요한지에 대한 신뢰할 만한 공개 벤치마크를 찾을 수 없었고, 어차피 단일 비율은 오해를 불러일으킬 것이다. 그래서 이 가이드는 역할들, 여러분 자신의 수치로 돌려볼 수 있는 작은 모델, 그리고 각 규모에서 먼저 무너지는 경향이 있는 지점을 제시한다.

인원 규모를 좌우하는 요소

데이터 양은 생각보다 중요하지 않다. 같은 소스에서 열 배 더 많은 페이지를 가져오는 것은 대체로 예산과 인프라의 문제다. 인원 규모는 네 가지 요소를 따른다:

  • 소스의 수. 각 소스는 독립적으로 깨질 수 있기 때문이다.
  • 얼마나 자주 깨지는가. 이는 사이트가 얼마나 자주 변경되는지, 접근하기가 얼마나 어려운지에 달려 있다.
  • 얼마나 틀려도 괜찮은가. 주간 리서치 데이터셋은 기다릴 수 있다. 고객이 그에 따라 행동하는 가격 피드는 그럴 수 없다.
  • 새로 추가하는 소스의 수. 온보딩은 유지보수와 같은 인력을 두고 경쟁하기 때문이다.

역할들

이것들은 직함이 아니라 역할이다. 작은 팀에서는 한 사람이 여러 역할을 맡을 수 있으며, 각 역할에 이름이 명확히 붙어 있는 한 문제없다.

역할담당 업무흔히 누락되는 시점
수집 엔지니어스크레이퍼, 추출, 장애 수정결코 빠지지 않음
플랫폼 엔지니어스케줄링, 큐, 프록시, 브라우저, 스토리지, 비용여러 사람이 같은 배관 작업을 반복할 때
데이터 품질 책임자검증, 드리프트, “정확하다”의 의미고객이 오류를 먼저 발견할 때
제품 또는 데이터 책임자무엇을 수집할지, 우선순위, 소스 결정모든 것이 긴급할 때
법무 및 컴플라이언스 담당자범위, 약관, 개인정보, 승인새로운 소스가 아무도 답할 수 없는 질문을 제기할 때

마지막 역할은 정규직일 필요는 거의 없지만, 이름이 지정된 사람이어야 한다. 짧게라도 작성된 데이터 수집 정책이 있으면 그 사람이 같은 질문에 반복해서 답하는 것을 막을 수 있다.

계획 모델

이 스크립트는 반복되는 작업을 시간으로, 시간을 사람 수로 변환한다. Python 3.9 이상 외에는 아무것도 필요하지 않다. 모든 숫자는 여러분 자신의 수치로 교체해야 할 가정이다. 지난 분기에 몇 번의 수정을 했는지, 그리고 그것이 얼마나 걸렸는지 세어보라.

"""A planning model for how many engineers a data collection operation needs.

Every default is an assumption to replace with your own numbers.
"""
from __future__ import annotations

import math

HOURS_PER_FTE = 30  # focused engineering hours per person per week


def team_size(sources, breaks_per_source_per_month, hours_per_fix, new_sources_per_month,
              hours_per_new_source, weekly_platform_hours=20, weekly_support_hours=8):
    """Recurring hours become people; reserve a quarter of the time for project work."""
    fixes = sources * breaks_per_source_per_month * hours_per_fix / 4.33
    onboarding = new_sources_per_month * hours_per_new_source / 4.33
    weekly = fixes + onboarding + weekly_platform_hours + weekly_support_hours
    fte = weekly / (HOURS_PER_FTE * 0.75)
    return {"fixes": round(fixes), "onboarding": round(onboarding),
            "platform": weekly_platform_hours, "support": weekly_support_hours,
            "weekly_hours": round(weekly), "fte": round(fte, 1), "people": math.ceil(fte)}


if __name__ == "__main__":
    scenarios = {
        "10 sources, stable": (10, 0.25, 4, 1, 16),
        "50 sources, mixed": (50, 0.5, 4, 3, 16),
        "200 sources, mixed": (200, 0.5, 4, 8, 16),
        "200 sources, hard": (200, 1.5, 6, 8, 24),
    }
    print(f"{'scenario':22}{'fixes':>6}{'new':>5}{'platform':>9}{'support':>8}{'hrs/wk':>7}{'FTE':>6}{'people':>7}")
    for name, args in scenarios.items():
        r = team_size(*args)
        print(f"{name:22}{r['fixes']:>6}{r['onboarding']:>5}{r['platform']:>9}{r['support']:>8}"
              f"{r['weekly_hours']:>7}{r['fte']:>6}{r['people']:>7}")

출력:

scenario               fixes  new platform support hrs/wk   FTE people
10 sources, stable         2    4       20       8     34   1.5      2
50 sources, mixed         23   11       20       8     62   2.8      3
200 sources, mixed        92   30       20       8    150   6.7      7
200 sources, hard        416   44       20       8    488  21.7     22

이 시나리오들은 측정값이 아니라 예시적인 입력값을 사용하며, 스크립트의 인자에 각각이 나타나 있다. 안정적인 소스는 넉 달에 한 번 깨지고 수정하는 데 네 시간이 걸린다. 까다로운 소스는 한 달에 한 번 반 꼴로 깨지고 여섯 시간이 걸린다.

두 가지가 눈에 띈다. 소스 50개에서 200개로 늘어날 때(혼합 난이도), 소스 수는 4배가 되지만 팀 규모는 약 2.4배만 늘어난다. 플랫폼 작업이 공유되기 때문이다. 그런 다음 같은 200개의 소스가 단지 유지하기가 더 어려워졌다는 이유만으로 7명에서 22명으로 늘어난다. 소스 수보다 장애 발생률이 인원 규모를 더 크게 움직인다. 그러므로 이것이 가장 먼저 측정해야 할 수치다.

이 모델은 각 사람의 시간 중 4분의 1을 프로젝트 작업을 위해 남겨둔다. 이는 빠듯한 수준이다. Google의 SRE 책은 운영 작업이 아닌 엔지니어링 작업에 최소 50%의 시간을 쓰는 것을 목표로 제시하며, 그 비율이라면 이 팀들은 1.5배 더 커질 것이다. 근본 원인을 고칠 시간이 아무에게도 없다면, 같은 장애가 계속 되돌아온다.

가장 먼저 무너지는 것

1~2명. 버스 팩터 문제다. 모든 것이 한 사람의 머릿속에만 있고, 휴가가 곧 장애가 된다. 각 소스가 어떻게 작동하는지, 어떻게 고치는지 기록해 두라. 인프라는 직접 운영하기보다 구매하라.

3~5명. 품질 문제다. 팀은 눈에 보이는 장애를 고치느라 바쁜 동안, 200 상태 코드와 함께 잘못된 필드를 반환하는 셀렉터 같은 조용한 장애가 쌓여간다. 품질 책임자를 지정하고, 상태 코드뿐 아니라 콘텐츠에 대해서도 파이프라인을 모니터링하라.

6~10명. 중복과 우선순위 문제다. 각 엔지니어가 자신만의 재시도 로직과 프록시 처리 방식을 만들었고, 모든 이해관계자의 소스가 긴급하다. 이때 플랫폼 책임자가 제 역할을 하며, “아니오”라고 말할 수 있는 제품 책임자도 함께 필요하다.

10명 이상. 조율과 온콜 문제다. Google의 SRE 책에 따르면, 두 명이 온콜을 서고 일주일 단위 교대 근무를 하는 단일 사이트 팀은 최소 8명의 엔지니어가 필요하다고 계산한다. 그런 체계를 구축해야 하는 데이터 팀은 거의 없다. 파이프라인이 혼자서 복구하고 나중에 따라잡을 수 있도록 설계하고, 고객이 진정으로 의존하는 부분에 대해서만 24시간 대응 체계를 유지하라.

필요한 인원 줄이기

  • 범용 계층은 구매하라. 우리의 빌드 대 구매 가이드에서 직접 인프라를 운영하는 데 실제로 무엇이 필요한지 다룬다.
  • 소스를 줄여라. 가치가 가장 낮은 소스 열 개를 폐기하는 것이 흔히 가장 저렴한 채용이다.
  • 안정적인 경로를 선호하라. 공식 API, 피드, 구조화된 데이터는 HTML 셀렉터보다 덜 깨진다.
  • 장애의 유형을 고쳐라. 공유된 재시도, 공유된 검증, 공유된 파서는 여러 개의 작은 불을 하나로 줄여준다.

결론

비율로 인원을 배치하지 말라. 소스 수, 장애 발생률, 얼마나 틀려도 괜찮은지에 따라 인원을 배치하고, 다음 채용 논의 전에 그 수치들을 측정하라. 품질 책임자를 일찍 지정하고, 경쟁력이 아닌 부분은 구매하며, 성장함에 따라 병목 지점이 이동할 것을 예상하라.

출처 및 참고자료

  • Google, Site Reliability Engineering, Being On-Call: sre.google
  • Google, Site Reliability Engineering, Eliminating Toil: sre.google

자주 묻는 질문

웹 스크래핑 팀에는 엔지니어가 몇 명 필요한가?

데이터 양보다는 운영하는 소스의 수와 소스가 얼마나 자주 깨지는지에 더 좌우된다. 공식적으로 발표된 업계 비율은 없다. 이 가이드의 모델에서는 안정적인 소스 10개에 약 1.5명이 필요하고, 까다로운 소스 200개에는 20명 넘게 필요하다. 자신의 수치로 직접 계산해 보라.

스크래퍼 엔지니어 다음으로 채용해야 할 첫 번째 역할은 무엇인가?

보통은 데이터 품질을 책임지는 사람이다. 눈에 띄지 않는 오류가 눈에 보이는 장애보다 비용이 더 크고, 엔지니어들은 이를 자신의 일이 아니라고 여기는 경향이 있기 때문이다. 작은 규모에서는 이것이 명확히 지정되고 책임지는 한 기존 역할의 일부로 둘 수도 있다.

스크래퍼를 위한 24/7 온콜 체계는 언제 운영해야 하는가?

고객 대상 서비스 약속이 이를 요구할 때만 운영해야 한다. Google의 SRE 책에서는 온콜 담당자 2명을 두는 단일 사이트 팀의 최소 인원을 엔지니어 8명으로 제시하므로, 대부분의 데이터 팀은 업무 시간 대응과 스스로 복구되는 파이프라인을 기준으로 설계해야 한다.

데이터 수집은 구매하는 것이 나은가, 직접 구축하는 것이 나은가?

자신의 강점이 아닌 부분은 구매하라. 프록시 네트워크와 브라우저 인프라는 직접 운영할 가치가 거의 없는 반면, 제품과 연결된 추출 로직과 품질 검사는 대체로 그럴 가치가 있다. 구매는 인력 수요를 없애는 것이 아니라 그 위치를 옮길 뿐이다.

시작할 준비가 되셨나요?

205M개 이상의 IP, 195개 이상의 국가를 지원하는 Shifter의 레지덴셜 프록시를 $0.10/GB부터 이용해보세요.

시작하기