콘텐츠로 이동

Session Lock과 IP 로테이션: 언제 무엇을 쓸까

Session Lock과 IP 로테이션: 언제 무엇을 쓸까

섹션 제목: “Session Lock과 IP 로테이션: 언제 무엇을 쓸까”

프록시 전략은 크게 두 가지입니다. 같은 IP를 유지하거나(session lock), IP를 자주 바꾸거나(로테이션). 대부분의 프록시 서비스는 둘 중 하나만 고르도록 강제합니다. HydraSkill은 둘 다 쓸 수 있게 해주며, 상황에 맞는 전략을 자동으로 선택합니다.

이럴 때 사용하세요: 대상 웹사이트와의 연속성이 필요한 작업일 때.

이커머스 결제 흐름:

탐색 → 장바구니 담기 → 배송지 입력 → 결제

“장바구니 담기”와 “결제” 사이에 IP가 바뀌면 장바구니가 비어버립니다. Session Lock은 전 과정에서 같은 IP를 유지합니다.

페이지네이션이 있는 다중 페이지 스크래핑:

1페이지 → 2페이지 → ... → 50페이지

일부 사이트는 IP로 세션을 추적합니다. 페이지네이션 도중 IP를 바꾸면 안티봇 탐지가 작동하거나 위치가 초기화될 수 있습니다.

계정 관리:

로그인 → 탐색 → 작업 수행 → 로그아웃

활성 세션 도중 IP가 바뀌면 계정에 플래그가 붙습니다.

proxy = client.get_proxy(
target="amazon.com",
session_lock=True,
session_ttl=3600 # 1시간 동안 유지
)
# 모든 요청이 같은 IP를 사용
for page in pages:
requests.get(page, proxies=proxy.to_dict())
proxy.release()

이럴 때 사용하세요: 여러 다른 사용자로 보여야 할 때.

지역별 가격 모니터링:

US IP로 가격 확인 → UK IP로 확인 → JP IP로 확인

요청마다 다른 위치에서 와야 합니다.

검색 결과 스크래핑:

쿼리 1 → 쿼리 2 → ... → 쿼리 1000

검색 엔진은 IP당 rate limit을 겁니다. 로테이션을 쓰면 한도에 도달하기 전까지 더 많은 쿼리를 보낼 수 있습니다.

광고 검증:

IP A로 광고 보기 → IP B로 보기 → IP C로 보기

서로 다른 사용자가 보는 화면을 확인해야 합니다.

# session_lock 미지정 = 매번 새 IP
for query in queries:
proxy = client.get_proxy(target="google.com", country="US")
requests.get(f"https://google.com/search?q={query}", proxies=proxy.to_dict())
proxy.release() # IP를 즉시 풀로 반환
시나리오전략이유
결제 흐름Session Lock장바구니에 IP 연속성이 필요
페이지네이션Session Lock크롤링 도중 탐지 회피
계정 작업Session Lock보안 플래그 방지
가격 비교로테이션여러 지역(geo)이 필요
대량 검색 쿼리로테이션IP당 rate limit 회피
광고 검증로테이션다양한 사용자 시뮬레이션
API 접근둘 다rate limit에 따라 다름

Context-Aware Routing을 쓰면 직접 결정하지 않아도 되는 경우가 많습니다:

# HydraSkill이 대상을 분석해 알맞은 전략을 선택
proxy = client.get_proxy(target="amazon.com")
# → 이커머스이므로 자동으로 session lock 사용
proxy = client.get_proxy(target="google.com/search")
# → 검색이므로 자동으로 로테이션

어떤 작업은 두 전략을 순차적으로 모두 필요로 합니다:

# 1단계: 리서치 (로테이션)
for product_url in discover_products():
proxy = client.get_proxy(target="amazon.com")
data = scrape(product_url, proxy)
proxy.release()
# 2단계: 구매 (session lock)
proxy = client.get_proxy(target="amazon.com", session_lock=True)
add_to_cart(proxy)
checkout(proxy)
proxy.release()

한 가지 전략을 기본값으로 고정하지 마세요. 프록시 동작을 작업 요구사항에 맞추는 것이 중요합니다. HydraSkill은 이 결정을 자동으로 처리해 주며, 더 잘 아는 경우에는 직접 재정의(override)할 수도 있게 해줍니다.

HydraSkill 시작하기 →