← 전체 글

FourA 다이제스트, 2026년 8월 7일 - 8월 14일

Auto는 사이트의 진입 페이지에서 발급한 세션을 가져와 원하는 딥 페이지를 엽니다. Browser는 동시 요청에 대한 체크박스 검증을 완료합니다.

주요 업데이트

많은 웹사이트가 메인 페이지는 누구에게나 공개하지만, 한 단계만 더 들어가면 접근을 차단합니다. 이제 Auto가 정문으로 직접 진입합니다. 진입 페이지에서 발급하는 세션을 확보한 뒤, 해당 세션을 유지한 상태로 요청한 페이지를 호출합니다. 이번 주에는 Browser에 더 큰 개선이 있었습니다. 동일한 페이지에 여러 요청이 동시에 몰릴 때 사이트의 체크박스 인증을 완료하며, 페이지가 끝내 열리지 않을 때도 단순한 단어 하나 대신 확인된 구체적인 상태를 보고합니다.

새로운 기능

Auto: 세션 기반 차단 페이지 접근 지원

eBay 상품 페이지는 FourA의 모든 라우트에서 초기 cold request를 거부합니다. 그러나 eBay 메인 진입 페이지가 일반 방문자에게 발급하는 cookie jar를 요청에 포함하면 동일한 URL이 정상적으로 열립니다. 로그인이나 대여 계정 없이, 브라우저 탭에서 수동으로 수행하는 작업 그대로 작동합니다.

이제 Auto가 이 작업을 자동으로 처리합니다. 출구 노드가 오리진 서버에 도달했음에도 내부 상세 페이지 접근이 거부되면, Auto는 동일한 출구를 통해 사이트 루트를 호출하고 반환된 모든 cookie를 보관한 뒤 다시 요청합니다. 이 과정의 수행 여부는 응답에 표시되며, 성공한 단계에 warmup가 기록됩니다.

주목할 부분은 비용입니다. 확보된 세션은 이식 가능하므로 특정 출구 노드에 고정되지 않습니다. 이후의 읽기 요청은 /api/proxy을 통해 재실행되어 2 크레딧으로 /api/single에 도달합니다. 이는 FourA가 Cloudflare clearance 글에서 다룬 단계적 에스컬레이션 및 재실행 방식과 동일하며, cf_clearance 대신 서비스 자체의 세션 cookie를 활용합니다.

의도적인 제한 규칙도 적용되어 있습니다. 내부 상세 URL 요청이 이미 실패했고 출구 노드가 오리진에 정상 도달했던 경우에 한해, 서로 다른 출구 노드에서 요청당 2회만 재시도합니다. 따라서 FourA를 전면 차단하는 사이트라도 무한 루프 없이 2회의 추가 하위 호출만 1회 발생합니다. 래더가 단계를 선택하는 세부 방식은 Auto 기술 문서에서 확인할 수 있습니다.

Browser: 동시 요청 시 체크박스 챌린지 해결

이제 Browser는 동일 페이지에 대한 동시 요청 상황에서도 체크박스 인증을 정상 완료합니다. Turnstile이 적용된 뉴스 사이트에 3개 요청을 동시 전송한 결과, 각각 5.2초, 5.8초, 9.1초를 기록했습니다.

두 가지 세부 개선 사항도 포함되었습니다. Cloudflare는 예상보다 자주 챌린지를 재발급하므로(첫 번째 클릭으로 끝나지 않는 경우가 빈번함), 위젯이 실제로 사라진 시점에만 클릭 성공으로 판정합니다. 또한 챌린지를 통과한 페이지는 해당 작업을 해결한 호출에 defenseSolved: true를 보고하며, 해결 비용도 해당 호출에만 청구됩니다.

차단된 페이지: solver가 감지한 정보 제공

"Timeout" 메시지만으로는 지연 시간 문제로 오인하기 쉽습니다. 대부분의 경우 지연 시간이 원인이 아니며, 출구 노드를 변경하는 것만으로 해결됩니다.

인증 서비스는 시도를 거부할 때 검사를 재발급하고 jar에 자체 재시도 마커를 남깁니다. Browser는 이 마커를 감지합니다. 무작정 타임아웃을 대기하는 대신 약 17초 내에 응답하며, 벤더명, 수행한 클릭 동작, clearance 부여 여부를 함께 명시합니다:

Timeout after 12s: the cloudflare challenge did not complete from this exit
(2 checkbox presses, clearance granted, challenge re-issued by the site)

그중 한 줄은 요청을 다른 방식으로 전송하라고 안내합니다. 다른 한 줄은 아무런 정보도 주지 않습니다.

API 계층의 에러도 더 직관적으로 표시됩니다. 대기 시간을 초과한 요청은 타임아웃으로 반환되고, 접근할 수 없는 서비스는 사용 불가로 반환되며, 프록시를 전혀 사용하지 않은 요청에 대해 프록시 문제로 표시되는 일은 없습니다. Browser 호출의 timeout_ms 설정은 API가 허용하는 최대 120초까지 그대로 적용되므로, 응답이 느린 대상에도 직접 설정한 제한 시간이 온전히 부여되며 게이트웨이가 아닌 엔진 자체의 결과를 확인할 수 있습니다. 매개변수 목록은 API reference에서 확인하실 수 있습니다.

청구 정보 및 발행 월 내 인보이스 수정

불가리아 인보이스는 수신자 란에 회사 대표자(MOL)를 표기합니다. 기존 시스템에서는 이를 수집하지 않아 해당 항목이 항상 빈칸으로 출력되었습니다. 이제 청구 정보에 해당 필드가 추가되었습니다.

또한 인보이스 테이블에서는 아직 발행 월 내에 있고 고정된 세부 정보가 현재 청구 프로필과 다른 인보이스에 대해 '세부 정보 업데이트' 기능을 제공합니다. 대화상자에는 변경되는 각 필드와 변경 후 내용이 명시되고, 인보이스 번호, 날짜, 금액은 그대로 유지된다는 점이 명확히 안내되며, 확인을 누르면 동의 내용이 당사 시스템에 기록됩니다. 수정할 내용이 없더라도 수정 가능 기간 내에 있는 인보이스에는 "Editable until"과 해당 날짜가 표시되므로, 기한을 나중에 확인하는 대신 미리 확인할 수 있습니다.

내부 구현 세부사항

Dashboard가 실행하는 모든 스크립트는 당사 자체 오리진에서 제공되며, 로그인 시 이 사이트 내부 경로로만 리디렉션됩니다.

렌더링 서비스 롤아웃은 서버 단위로 순차 진행되며, 각 서버가 실제 페이지를 정상 서빙하는 것이 확인된 후에만 다음 서버 작업이 진행됩니다.

상태 포털의 issues 엔드포인트는 공개 API를 통해 미해결 및 해결된 항목을 제공하며, 이는 페이지에 표시되는 목록과 일치합니다.

거부 사유가 명확히 기재된 실패는 한 번의 호출로 끝납니다. 반면 단순히 "Timeout"으로 끝나는 대기는 다음 시도를 추측해야 하므로 동일한 비용을 치르게 됩니다. 에러 역시 제품의 중요한 인터페이스이며, 이번 주부터 에러 처리를 제품 기능의 일부로 다루기 시작했습니다.