로테이팅 프록시는 작업 중에 매 요청마다 또는 설정된 간격마다 서로 다른 IP 주소를 제공합니다. 하나의 주소가 모든 트래픽을 감당하는 대신, 부하가 풀 전체에 분산되므로 어떤 단일 주소도 사이트가 주목할 만한 요청량을 쌓지 않습니다.
이 글에서는 로테이션이 실제로 어떻게 작동하는지, 백커넥트가 무엇을 의미하는지, 그리고 둘 다 어떻게 설정하는지를 다룹니다.
로테이션 작동 방식
주소 목록을 직접 관리하지 않습니다. 단일 게이트웨이 엔드포인트에 연결하면, 제공업체가 각 요청에 대해 풀에서 주소를 할당합니다. 스크래퍼 입장에서는 요청 사이에 아무것도 바뀌지 않습니다. 대상 사이트 입장에서는 각 요청이 서로 다른 방문자로부터 도착합니다.
로테이션 모드는 두 가지이며, 이 둘 중 선택하는 것이 주된 설정 결정 사항입니다.
**요청별 로테이션(Per-request rotation)**은 매번 새로운 주소를 발급합니다. 최대한의 분산이 이루어지지만 연속성은 없습니다. 상품 페이지, 검색 결과, 목록 페이지, 재고 확인처럼 독립적인 요청에 사용하세요. 요청 간에 이어지는 것이 없으므로 주소가 바뀌어도 문제가 생기지 않습니다.
**스티키 세션(Sticky sessions)**은 고정된 시간 동안, 일반적으로 1분에서 30분 사이 동안 하나의 주소를 유지합니다. 커서를 이용한 페이지네이션, 로그인 후 이어지는 모든 작업, 다단계 양식과 결제처럼 요청들이 서로 의존하는 경우에 사용하세요.
이 둘의 선택은 코드가 아니라 인증 정보에서 이루어집니다. 제공업체는 세션을 사용자 이름에 인코딩하므로, 일반적인 설정은 다음과 같은 형태입니다.
# per-request rotation: a new IP for every request
curl -x gate.shifter.io:8080 -U "customer-USER:PASS" https://example.com
# sticky session: same IP for the life of session id abc123
curl -x gate.shifter.io:8080 -U "customer-USER-session-abc123:PASS" https://example.com
# sticky, geo-targeted to Germany
curl -x gate.shifter.io:8080 -U "customer-USER-country-de-session-abc123:PASS" https://example.com
세션 id를 바꾸면 새로운 주소를 받게 됩니다. 그대로 유지하면 해당 시간 창이 만료될 때까지 같은 주소를 유지합니다. 정확한 파라미터 이름은 제공업체마다 다르므로 사용 중인 서비스의 문서를 확인해야 하지만, 그 원리는 일관됩니다.
로테이션 중 세션에 일어나는 일
이 부분은 대부분의 설명에서 생략되는 내용이며, 로테이션 관련 실패의 주된 원인입니다.
로그인된 세션은 사이트가 특정 주소의 브라우저에 발급한 쿠키입니다. 다음 요청이 같은 쿠키를 가지고 다른 국가에서 도착하면, 사이트는 순간이동한 세션을 보게 됩니다. 사이트가 얼마나 엄격하게 확인하느냐에 따라 재인증, 보안 검증, 또는 세션 완전 무효화가 발생할 수 있습니다.
로테이션은 여러분이 로그인 상태인지 알지도 못하고 신경 쓰지도 않습니다. 세션이 필요한 만큼 오래 주소를 유지하는 것은 여러분의 책임입니다. 흐름이 4분 걸린다면 5분짜리 스티키 윈도우로 충분합니다. 작업이 몇 시간 동안 실행된다면 로테이션은 잘못된 도구이며, 영구 주소를 제공하는 ISP 프록시가 올바른 선택입니다.
백커넥트 프록시
백커넥트는 로테이션을 가능하게 하는 게이트웨이 아키텍처입니다. 관리해야 할 주소 목록을 제공하는 대신, 제공업체는 여러분을 대신해 풀 안으로 역방향 연결을 수행하는 하나의 엔드포인트를 제공합니다.
정확히 짚어둘 필요가 있는데, 이 글의 이전 버전을 포함해 흔히 잘못 표현되기 때문입니다. 백커넥트는 레지덴셜의 동의어가 아닙니다. 백커넥트는 주소가 여러분에게 전달되는 방식을 설명합니다. 레지덴셜은 주소가 어디에서 오는지를 설명합니다. 이 둘은 독립적이며, 백커넥트 게이트웨이는 레지덴셜 풀뿐만 아니라 데이터센터 및 모바일 풀에도 똑같이 존재합니다.
백커넥트가 실제로 제공하는 것은 다음과 같습니다.
- 설정할 엔드포인트 하나. 스크래퍼는 프로젝트가 진행되는 동안 하나의 호스트와 포트만 가리키며, 그 뒤에서 풀이 어떻게 바뀌든 상관없습니다.
- 자동 교체. 죽었거나 차단된 주소는 여러분의 코드가 알아차리지 못하는 사이에 로테이션에서 제외됩니다.
- 파라미터를 통한 타겟팅. 국가, 도시, ASN 선택은 별도의 주소 목록을 관리하는 대신 인증 정보에서 이루어집니다.
- 풀 관리 불필요. 프록시 목록을 직접 만들거나 테스트하거나 갱신할 필요가 없습니다.
대안인, 개별 주소의 고정 목록을 사용하는 방식은 이 모든 것을 직접 처리해야 한다는 뜻이며, 이 때문에 백커넥트가 어느 정도 규모 이상의 풀에서는 표준적인 전달 방식이 되었습니다.
로테이션이 유용한 경우
여기서는 레지덴셜 IP 일반의 장점과 구별되는, 로테이션 특유의 장점을 다룹니다.
- IP별 요청 제한 회피. 주소당 시간당 60회 요청 제한은 대규모 풀 전체에서 보면 사실상 무제한이 됩니다. 이것이 로테이션의 가장 명확한 이점입니다.
- 대규모 수집 작업 지속. 하나의 주소를 소진시킬 만한 양이라도 수천 개로 나누면 눈에 띄지 않습니다.
- 개별 차단 극복. 주소가 차단되면 다음 요청은 그냥 다른 주소를 사용합니다. 감지할 것도 고칠 것도 없습니다.
- 저비용으로 다수 지역 샘플링. 20개국의 가격이나 광고를 확인할 때 국가별로 구매할 필요 없이, 요청마다 파라미터만 바꾸면 됩니다.
- 패턴 신호 감소. 하나의 주소가 하루 종일 10초마다 요청을 보내면 기계처럼 보입니다. 같은 트래픽을 풀 전체에 분산시키면 그렇지 않습니다.
로테이션이 하지 않는 일은 신뢰받지 못하는 주소를 신뢰받는 주소로 만드는 것입니다. 주소 소유권을 분류하는 사이트를 대상으로 데이터센터 IP를 로테이션해도 풀 안의 모든 주소에서 실패합니다. 로테이션은 신뢰를 얻는 것이 아니라 물량을 분산시키는 것에 관한 것입니다.
로테이션을 사용해야 할 때와 아닐 때
로테이팅 프록시를 사용해야 할 때: 웹 스크래핑과 가격 모니터링, SERP 및 순위 추적, 지역별 광고 검증, 재고 및 입고 확인, AI 학습이나 근거 확보를 위한 대규모 데이터 수집.
고정 프록시 또는 ISP 프록시를 사용해야 할 때: 계정 관리, 장시간 로그인이 필요한 모든 작업, 광고 플랫폼 접근, 그리고 동일한 방문자로 인식되는 것 자체가 목적인 모든 작업.
다음에 읽을 만한 두 글은 여러분이 어느 쪽에 해당하는지에 따라 달라집니다. 전체 비교를 원한다면 고정 프록시 대 로테이팅 프록시에서 이 트레이드오프를 자세히 다룹니다. 대상에 따라 프록시 유형을 선택하려면 웹 스크래핑 프록시를 참고하세요.
결론
로테이션은 제품 범주가 아니라 세션 길이 설정입니다. 요청별 로테이션은 독립적인 트래픽을 풀 전체에 분산시키며, 수집 작업의 올바른 기본값입니다. 스티키 세션은 여러분의 흐름이 필요로 하는 만큼 주소를 유지합니다. 백커넥트는 이 두 가지를 하나의 엔드포인트에서 제공하는 게이트웨이입니다.
작업에 맞는 로테이션 간격을 정확히 설정하면 대부분의 차단 문제가 사라집니다. 어느 방향으로든 잘못 설정하면 세션이 끊어지거나, 트래픽이 눈에 띄는 지점에 집중됩니다.
Shifter의 레지덴셜 프록시는 국가, 도시, ASN 타겟팅과 함께 두 모드를 모두 지원하며, 현재 요금은 가격 페이지에서 확인할 수 있습니다.