주요 변경 사항
잘못된 요청은 이제 FourA의 503이 아닌 클라이언트의 400 에러로 반환됩니다. Single, Proxy Finder 및 Browser는 문제가 있는 필드를 각각 명시하며, 비용을 청구하지 않고, 동작할 수 없는 불필요한 재시도를 유도하지 않습니다. 또한 Budget 뷰에서 구매한 크레딧과 요청에 사용된 크레딧이 분리되어 표시되며, 비밀번호를 변경하면 다른 모든 Dashboard 세션에서 로그아웃됩니다. 처음 두 가지 항목은 changelog에서 확인할 수 있습니다.
새로운 기능
잘못된 요청에 대한 구체적인 에러 안내
Single, Proxy Finder 또는 Browser에 실행할 수 없는 body(누락된 url, 숫자가 아닌 timeout_ms 등)를 전송하면 HTTP 400이 반환됩니다. error는 Invalid request:로 시작하며 문제가 발생한 각 필드와 그 이유를 최대 5개까지 나열합니다. 이는 client_error 결과로 처리되며 0 크레딧이 청구됩니다.
이번 주 전까지 이러한 요청은 일반적인 503 에러로 반환되어 FourA 측의 문제처럼 보였고 재시도 루프가 계속 동작하게 만들었습니다. 클라이언트가 400을 최종 실패로 처리한다면(error reference의 샘플 코드처럼), 이제 오타가 발생했을 때 첫 번째 호출에서 즉시 실행이 중단됩니다.
import requests
r = requests.post(
"https://api.foura.ai/api/single",
headers={"X-API-Key": "pk_live_..."},
json={"url": "https://example.com/data", "timeout_ms": "fast"},
)
if r.status_code == 400:
# "Invalid request: timeout_ms: ..." means fix the call, don't retry it
raise ValueError(r.json()["error"])
Auto는 이전과 동일하게 작동합니다. 허용되지 않는 필드는 시도하기 전 비용 발생 없이 status: 400 및 error에 사유가 담긴 HTTP 200으로 반환됩니다.
청구 크레딧과 사용 크레딧 비교
Metrics의 Budget 뷰에서는 성공한 request에만 사용되는 청구 크레딧이 먼저 표시되며, 바로 아래에 총 사용량이 "of N spent" 형식으로 표시됩니다. request당 비용도 청구 크레딧 기준으로 표시됩니다. 또한 키, 도메인, 클라이언트 IP별 분석에는 각 수치에 대한 정렬 가능한 열이 제공됩니다.
실패한 request라도 실패 여부를 확인하기 위해 exit이나 브라우저를 거쳐야 하므로, 사용 크레딧에는 모든 결과가 집계됩니다. 따라서 두 열 사이의 차이를 통해 성공하지 못한 request에 도메인별로 얼마나 많은 리소스가 소모되었는지 파악할 수 있습니다.
완전한 로그아웃 처리
Settings에서 비밀번호를 변경하거나, 로그인 페이지에서 비밀번호를 재설정하거나, Sign Out Others를 누르면 계정에 로그인된 다른 모든 브라우저에서 로그아웃됩니다. 변경을 수행한 브라우저는 로그인 상태가 유지됩니다. 이제 로그아웃 시 브라우저뿐만 아니라 당사 서버 측에서도 해당 세션이 종료됩니다.
비밀번호 재설정 페이지에서도 이제 로그인 및 회원가입과 동일한 인증 단계를 요구합니다. 확인이 필요한 경우가 아니라면 표시되지 않습니다.
Proxy Finder 및 게이트웨이 리디렉션
일부 exit은 회사 네트워크 게이트웨이 뒤에 위치합니다. 지난 다이제스트에서는 자체 로그인 페이지로 응답하는 유형을 다루었습니다. 이제 Proxy Finder는 로그인 서비스로 리디렉션하는 유형도 감지하여 해당 리디렉션을 사이트의 응답으로 반환하는 대신 실패한 시도로 처리하고 다른 exit으로 전환합니다.
기타 Dashboard 수정 사항
- 선택한 소유자(Everything, Personal 또는 조직)에 아직 API 키가 없는 경우, Overview와 Metrics의 기간 표시 아래에 안내가 나타나며 키 생성 화면으로 연결됩니다.
- Overview의 모든 숫자는 동일한 크기로 라벨 바로 아래에 배치되어 어떤 화면 너비에서도 패널 행을 깔끔하게 확인할 수 있습니다. Auto attempts 패널은 항상 표시되며, Auto 호출이 없는 기간에는 0으로 표시됩니다.
- Subscribe에서는 한 가지 결제 주기만 지원하는 요금제의 경우 Monthly/Annual 전환 스위치를 표시하지 않습니다.
- 당사에서 설정해 드린 체험판을 이용 중인 경우, 업그레이드 페이지에서 다른 요금제를 선택하면 카드 정보를 요청하며 당일부터 전체 기간이 시작됩니다. 결제가 완료되면 체험판은 종료됩니다.
내부 구현 개선 사항
api.foura.ai 및 eu.api.foura.ai 호출을 단일 서버 대신 여러 서버가 동시에 처리합니다. 한 서버의 응답이 중단되면 몇 분 내에 새로운 호출이 다른 서버로 전달됩니다.
Auto의 부하를 줄였습니다. 호출 시 저장된 세션을 선택하는 내부 조회 수가 수십 번에서 4번으로 줄었으며, 각 서버가 이전보다 더 많은 Auto 용량을 처리하므로 트래픽이 몰리는 시간대에도 Auto 호출 대기 시간이 단축됩니다.
10월 보안 릴리스를 통해 모든 엔진이 최신 LTS(장기 지원) 런타임으로 이전되었으며, API, Dashboard, 문서, 블로그 전반의 라이브러리 패치를 완료했습니다. Single 및 Proxy Finder에서는 새 런타임 덕분에 request 도중 읽기를 중단한 단일 출구로 인해 동일 서버의 다른 request 처리가 지연되지 않습니다. 서버는 새 버전 적용을 위해 재시작하기 전 신규 호출 수신을 중단하며, 상태 점검을 통과한 후 다시 클러스터에 합류합니다.
재시도는 사용자 측 request 오타가 아닌, 응답 지연이 발생하는 사이트를 위해 작동해야 합니다.