datacenter IP + Akamai 대응. 매 요청 IP 변경은 쿠키-IP 불일치로 재챌린지를 유발하므로, sticky 세션(일정 시간 같은 IP) + 주기적 회전 방식 사용. - search/proxy.DecodoProxy: username 에 -session-<시간창id>-sessionduration-<분> 부착 → 창 안에선 같은 IP, 창이 지나면 새 IP. 자격증명은 .env(DECODO_*), 4개 다 있어야 활성 - coupang/adapter: proxy 주입 + 세션창 경과 시 브라우저 재기동(IP 회전). 무프록시면 직접 연결 - worker_main: 쿠팡에만 DecodoProxy 경유(네이버는 공식 API라 미적용) - .env.example: DECODO_HOST/PORT/USERNAME/PASSWORD/SESSION_MINUTES 슬롯 - tests: 활성조건·sticky username·server형식·세션창 회전 4건 → 전체 43/43 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
25 lines
1.4 KiB
Plaintext
25 lines
1.4 KiB
Plaintext
# LPS 환경변수 (시크릿). 복사해서 .env 로 만들고 값을 채우세요:
|
|
# cp .env.example .env
|
|
# .env 는 커밋되지 않습니다(.gitignore). 값은 큰따옴표 안에 넣으세요.
|
|
# 앱/워커 기동 시 config/server_configs 가 이 파일을 환경변수로 로드합니다.
|
|
|
|
# ── 네이버 쇼핑 검색 오픈 API ─────────────────────────────────────────
|
|
# https://developers.naver.com/apps → 애플리케이션 등록 → 사용 API '검색'
|
|
NAVER_CLIENT_ID=""
|
|
NAVER_CLIENT_SECRET=""
|
|
# 로테이션(선택): 429/403 쿼터 회피용 추가 키는 _2, _3 ... 로 늘리면 자동 포함
|
|
# NAVER_CLIENT_ID_2=""
|
|
# NAVER_CLIENT_SECRET_2=""
|
|
|
|
# ── AI (상품 유사도 판정 / 검색어 생성) — OpenAI ──────────────────────
|
|
OPENAI_API_KEY=""
|
|
|
|
# ── DECODO residential 프록시 (쿠팡 전용, sticky 세션+주기적 회전) ─────
|
|
# DECODO 대시보드의 residential 게이트웨이/자격증명. 4개 다 채워야 활성화(비면 프록시 미사용).
|
|
# username 은 base 값만(코드가 -session-<id>-sessionduration-<분> 을 자동으로 붙임).
|
|
DECODO_HOST="" # 예: gate.decodo.com
|
|
DECODO_PORT="" # 예: 7000
|
|
DECODO_USERNAME=""
|
|
DECODO_PASSWORD=""
|
|
DECODO_SESSION_MINUTES="10" # 같은 IP 유지 시간(분) → 이 주기로 회전
|