o2o-negosium-original/lps/tests
민헌 c955a8f367 feat(lps): 프록시 전송오류 IP회전 + 시작 프리플라이트 + DECODO/컴포넌트별 비용
프록시(DECODO) 포트/IP 사망(407/ERR_TUNNEL/ERR_HTTP_RESPONSE_CODE_FAILURE)이
봇차단과 구분 없이 예외로 튕겨 같은 죽은 포트로 재시도만 하다 DEAD 되던 문제를 고친다.

- browser_base: is_proxy_error(순수함수) + search 루프에서 프록시 전송오류 시 IP 회전 재시도
  (max_proxy_retries=2). 봇감지 회전과 통합. uses_proxy 프로퍼티.
- 쿠팡 어댑터를 BrowserSearchAdapter 로 통합 — 중복 machinery 제거, 회전 로직 한 곳에서 공유
  (detect_block 순수함수는 유지, 테스트 호환).
- proxy.healthcheck(): 시작 프리플라이트 — 살아있는 포트 선점 + egress IP 로그(빠른 실패·가시성).
  worker_main 기동 시 호출.
- 비용: DecodoConfig.cost_per_gb 추가. metrics 에 proxy_bytes(네이버 직접 제외) + 컴포넌트별
  cost{ai_usd, proxy_usd, total_usd}. FE 원가 타일에 AI/DECODO 분해·프록시 바이트.
- 테스트: is_proxy_error 8종 + 비용 분해 1종.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09 15:33:37 +09:00
..
fixtures feat(lps): G마켓·옥션·11번가 크롤 어댑터 + 브라우저 어댑터 베이스 2026-07-09 14:41:05 +09:00
test_bot_detection.py feat(lps): 봇 감지 시 IP 회전+재시도 + 감지 이력 기록 2026-07-09 11:04:07 +09:00
test_coupang_parser.py fix(lps): 쿠팡 차단 감지 다종화 — Edge Deny·권한제한·짧은HTML 폴백 2026-07-09 13:59:43 +09:00
test_health.py feat(lps): 인터넷 최저가 검색 솔루션 프레임워크 골격 추가 2026-07-08 15:18:27 +09:00
test_job_queue.py feat(lps): 작업 큐 엔진 — PostgreSQL 원자적 claim + lease + dead-letter 2026-07-08 16:37:32 +09:00
test_lps_api.py refactor(lps): job_type 명칭 정리 — 출처 기반(레거시 negowiz 제거) 2026-07-09 11:33:46 +09:00
test_naver_transform.py feat(lps): 네이버 어댑터 + 다중 소스 병합 검색 2026-07-09 08:38:15 +09:00
test_negative_cache.py feat(lps): 재시도/못찾음 완결 로직 — 재정제 루프 + not_found + 네거티브 캐시 2026-07-09 09:12:47 +09:00
test_openmarket_parser.py feat(lps): 프록시 전송오류 IP회전 + 시작 프리플라이트 + DECODO/컴포넌트별 비용 2026-07-09 15:33:37 +09:00
test_pipeline.py feat(lps): 네이버 몰별 최저가 분해(by_mall) — 오픈마켓 가시화 2026-07-09 13:59:15 +09:00
test_price_history.py feat(lps): 최저가 이력(price_history) — 트리거 기반 시계열 그래프 2026-07-09 11:13:28 +09:00
test_proxy.py feat(lps): 봇 감지 시 IP 회전+재시도 + 감지 이력 기록 2026-07-09 11:04:07 +09:00
test_search_handler.py feat(lps): 프록시 전송오류 IP회전 + 시작 프리플라이트 + DECODO/컴포넌트별 비용 2026-07-09 15:33:37 +09:00
test_worker.py feat(lps): 워커 루프 + LISTEN/NOTIFY — 큐 소비 파이프라인 가동 2026-07-08 16:58:58 +09:00