전체 글

FourA Digest: 2026년 4월 24일 ~ 5월 1일

이번 주 FourA 소식: Proxy Finder 대시보드가 FourA 디자인 시스템에 통합되었고, 로그인 오류가 깔끔하게 복구되며, Overview에서 제품 및 결과별 필터링이 가능해졌습니다.

하이라이트

Proxy Finder 대시보드가 이제 다른 FourA 서비스와 동일한 디자인과 동작을 제공합니다. 서브도메인을 이동해도 동일한 폰트, 동일한 차트, 동일한 테마가 유지됩니다. 기존에는 400 페이지에서 멈춰버리던 로그인 오류가 이제 정상적으로 복구되어 로그인 페이지로 다시 이동합니다. 또한 Overview 분석 데이터를 Single, Proxy Finder, Browser 등의 제품별로 필터링할 수 있습니다.

새로운 기능

Proxy Finder 대시보드: 디자인 시스템 적용

이번 주에 Proxy Finder 대시보드를 FourA 디자인 시스템으로 이관하는 작업을 완료했습니다. Outfit 타이포그래피, 인디고 색상 팔레트, 통합된 Chart.js, 메인 Dashboard와 동일한 사이드바 패턴, 페이지 배경과 대비되어 눈에 띄는 테이블 컨테이너, 그리고 통일된 통계 카드가 적용되었습니다. Proxy Finder의 두 뷰 모두 새로운 favicon이 적용되었습니다.

테마 동기화가 이제 실시간으로 작동합니다. 메인 Dashboard에서 라이트 모드에서 다크 모드로 전환하면 Proxy Finder도 수 밀리초 내에 즉시 변경됩니다. 반대의 경우도 마찬가지입니다. 새로고침이 필요 없습니다.

여러 제품을 번갈아 사용해 보셨다면 그 차이를 확실히 느끼실 수 있을 것입니다. 이제 더 이상 세 개의 서로 다른 앱을 임시로 꿰매어 붙인 듯한 느낌이 들지 않습니다.

Dashboard의 제품 및 Outcome 필터

이제 Overview의 지표 상단에 칩 필터가 추가되었습니다. Single, Proxy Finder, 또는 Browser를 선택하여 모든 패널과 차트의 범위를 특정 제품으로 제한할 수 있습니다. Outcome 필터도 마찬가지로 success, timeout, rate-limit 등으로 필터링할 수 있습니다.

Activity 테이블에는 각 제품에 맞는 색상 코드 기호가 추가되어, 컬럼을 일일이 읽지 않고도 로그를 훑어보며 어떤 제품이 request를 처리했는지 바로 확인할 수 있습니다.

참고로, 제품별로 필터링하면 Concurrency 패널이 비활성화됩니다. 해당 패널은 제품별로 세분화되지 않은 실시간 연결 수를 사용하므로, 잘못된 숫자를 표시하기보다는 회색으로 비활성화 처리하는 방법을 택했습니다.

오류 페이지 대신 로그인 복구 처리

뒤로 가기 버튼 클릭, 북마크 접속, 두 개의 탭 동시 오픈, 만료된 cookie 등 예기치 않은 시점에 로그인 플로우에 진입하면, OAuth state 검증에 실패하여 아무런 처리도 없는 400 invalid_state 페이지가 표시되곤 했습니다. 일반적인 사용자의 여덟 가지 무해한 행동들이 이 오류를 유발할 수 있었습니다.

이제 이 문제가 해결되었습니다. 이제 state 검증 시 오래된 cookies를 삭제하고 /auth/login으로 깔끔하게 리다이렉트합니다. 실제 심각한 장애가 발생할 경우를 대비해, 치명적인 오류 페이지에도 브랜드 디자인을 적용했습니다. 또한 /logout 시 세션과 함께 OAuth state cookie도 정상적으로 정리됩니다.

그동안 로그인 장벽으로 불편을 겪으셨다면, 이제 더 이상 발생하지 않을 것입니다.

Single: 업스트림을 사용할 수 없을 때 더 명확한 response 제공

이제 Single API는 기존에 동일하게 처리되던 두 가지 실패 모드, 즉 대상 사이트 자체를 사용할 수 없는 경우와 대상 사이트가 예상한 JSON이 아닌 다른 값을 반환한 경우를 구분합니다.

프로그램 방식으로 Single responses를 파싱하는 경우 이 변경 사항이 중요할 수 있습니다. 이제 body를 직접 분석하지 않고도 "사이트가 다운됨"과 "사이트가 이상한 HTML을 반환함"을 서로 다른 케이스로 처리할 수 있습니다.

API Keys: 즉시 복사 버튼 및 모달 보호 기능

실제 사용자들의 행동을 관찰하여 Keys 페이지에 두 가지 작은 개선 사항을 적용했습니다.

"Copy" 버튼이 이제 모달 푸터뿐만 아니라 새 키 블록 자체에도 배치됩니다. 사용자들이 푸터 버튼과 그 위의 키 값을 잘 연결 짓지 못하는 경향이 있었습니다. 이제 예상하기 가장 쉬운 위치에 버튼이 제공됩니다.

또한 새 키 모달이 실수로 배경을 클릭해 닫히지 않도록 보호 장치를 추가했습니다. 바깥 영역을 클릭해도 아무런 변화가 없습니다. 의도적으로 모달을 닫아야만 키 정보가 사라집니다. 이전에는 잘못된 클릭 한 번으로 방금 생성한 키가 복구 불가능하게 삭제될 수 있었습니다.

내부 변경 사항

Proxy Finder의 pool이 이제 매번 전체 목록을 가져오는 대신 점진적으로 동기화됩니다. 선택 품질도 재시작 후에도 유지됩니다. 부팅 간에 scoring state가 지속되므로, 재시작할 때마다 pool을 처음부터 다시 학습할 필요가 없습니다. 결과적으로 더 일관된 proxy 품질을 보장하며, 배포 후 발생할 수 있는 사각지대를 줄여줍니다.

Proxy Finder의 수집 측면에서 작동하지 않는 소스 피드 몇 개를 제거하고 25개의 새로운 피드를 추가했으며, IPv4가 아닌 호스트나 알 수 없는 프로토콜을 반환하는 소스는 거부하도록 개선했습니다. 보이지 않는 곳에서 수집 성능을 개선하여 불필요한 후보 대상을 줄였습니다.

공개 상태 페이지의 분석 스크립트가 더 이상 차단되지 않으므로, 최근에 페이지를 열었을 때 개발자 콘솔에 표시되던 오류 메시지가 해결되었습니다.

또한 블로그의 latency 사례 연구 차트를 업데이트하여 대규모 사용자 중 한 곳의 프로덕션 트래픽만 표시하도록 변경했으며, 단일 아웃라이어 사이트로 인해 중앙값이 왜곡되지 않도록 적대적인 대상 하나를 제외했습니다. 포스트 본문은 동일하며, 데이터가 더욱 정확하고 투명해졌습니다.