오늘 CatchPro 업데이트의 중심은 다시 기본 기능이었다. 앱의 목표는 분명하다. 꼭 필요한 오더를 최대한 빠르게 잡아서 시간당 매출 3만원 이상을 안정적으로 만드는 것. 그러려면 예쁜 화면보다 먼저, 오더리스트에서 상세로 들어가는 반응속도와 상세화면에서 확정까지 이어지는 성공률이 좋아야 한다.
오늘 확인한 문제
운행 로그를 보면 자동상세확정에서 가장 큰 병목은 단순한 클릭 실패가 아니었다. 접근성 ACTION_CLICK은 성공으로 반환됐는데, 실제 인성앱 상세화면은 열리지 않는 경우가 반복됐다.
로그에는 rowIndex=1/4, rowIndex=1/5 같은 형태가 많이 보였다. 이 값은 화면의 절대 1행이라는 뜻이 아니라, 현재 상단 또는 하단 오더리스트 영역에서 클릭 가능한 후보가 4개 또는 5개 있을 때 그중 1번째 후보를 시도했다는 의미다.
즉 오더가 계속 업데이트되는 현장에서는 매번 같은 오더를 누른다는 뜻은 아니지만, 전략상으로는 현재 화면의 첫 번째 후보를 계속 우선 시도하고 있었다. 첫 후보가 상세로 안 열리면 빠르게 다음 후보로 넘어가는 동작이 필요했다.
자동상세확정 반응속도 개선
오늘 수정은 오더리스트가 보이는 순간 상세 진입을 더 끈질기고 빠르게 시도하는 방향으로 진행했다.
ACTION_CLICK성공 후에도 상세화면이 열리지 않으면 350ms 뒤 같은 행 좌표를 보조 탭한다.- 상세 미진입 판단 시간을 700ms로 앞당겼다.
- 상세 미진입 상태가 오래 pending으로 남아 다음 오더 진입을 막지 않도록 정리했다.
- 리스트 재스캔을 예약해, 인성앱에서 새 접근성 이벤트가 오지 않아도 다음 후보를 다시 찾는다.
- 후보가 여러 개 있으면 1번째 후보 실패 후 같은 영역의 2번째, 3번째 후보로 넘어갈 수 있도록 후보 커서를 추가했다.
이 변경의 목적은 무작정 클릭을 많이 하는 것이 아니다. 실패한 클릭에 오래 묶이지 않고, 현재 보이는 후보 중 다음 가능성으로 빠르게 넘어가는 것이다.
반경 필터 상황에 대한 판단
현장에서는 반경을 좁게 설정하면 오더리스트에 오더가 한 개나 두 개만 잠깐 올라왔다가 사라지는 경우가 많다. 이런 상황에서는 후보 순환보다 첫 시도 자체의 반응속도가 더 중요하다.
그래서 이번 개선은 두 가지 상황을 나눠서 대응한다.
- 후보가 여러 개 보이면 첫 후보 실패 후 다음 후보로 이동한다.
- 후보가 하나뿐이면 빠른 보조 좌표탭과 짧은 상세 미진입 판단으로 다시 다음 스캔을 준비한다.
한 사이클 최대 상세 확인수 기본값 조정
오더조건 탭의 한 사이클 최대 상세 확인수 기본값은 30개로 정리했다. 기본 기능을 강화하는 방향에서는 지나치게 보수적인 제한보다, 실제로 보이는 후보를 충분히 빠르게 확인할 수 있는 여유가 필요하다.
다만 이 값은 속도를 위해 무한정 늘리는 값이 아니다. 조건이 맞지 않는 상세를 계속 확인하면서 앱이 무거워지는 것을 막기 위한 상한이기도 하다.
자주 가는 도착지 10km 권역 저장 UX 개선
전국 지역 도착지 선택 화면에서 자주 가는 도착지 10km 권역을 선택해도 첫 화면에서 바로 완료할 수 없는 문제가 있었다. 사용자는 권역을 이미 선택했는데도 다음 단계로 내려가야 하는 흐름이었다.
오늘 수정으로 첫 화면에서 자주 가는 권역을 선택하면 바로 완료 버튼이 활성화된다. 더 세부 지역을 고르고 싶으면 시/군/구 선택으로 들어가면 된다.
현재 자주 가는 권역은 다음 흐름을 기준으로 정리되어 있다.
- 이천 호법 퇴근권
- 오산 경기동로 퇴근권
- 용인 한숲 퇴근권
이 기능은 단순 편의 기능처럼 보이지만, 실제로는 운행 후반부의 도착지 조건 설정 시간을 줄이는 역할을 한다. 운행 중 조작을 줄이면 결국 오더 반응속도에도 도움이 된다.
오늘 업데이트의 기준
오늘 작업의 기준은 하나였다. 기본 기능을 약화시키지 않는 것.
CatchPro에서 가장 중요한 기능은 오더리스트에서 빠르게 상세로 들어가고, 상세화면에서 조건이 맞으면 빠르게 확정하는 것이다. UI나 부가 기능은 이 흐름을 방해하지 않는 선에서 붙어야 한다.
그래서 이번 업데이트도 화면을 화려하게 만드는 것보다, 로그에서 확인된 병목을 줄이는 쪽에 집중했다.
다음 운행에서 볼 로그
다음 운행 후에는 아래 지표를 중심으로 확인할 예정이다.
ACTION_CLICK성공 후 상세 미진입 횟수가 줄었는지rowIndex=1/4,1/5만 반복되던 패턴이 줄고rowCursor가 실제로 다음 후보로 이동하는지- 확정 클릭 후
unverified가 줄었는지 - 조건이 맞는 오더가 다른 기사 배정, 마감, 이미 배정 같은 실패 문구로 끝나는 비율이 어떤지
- 실패 캡처가 DB를 과하게 키우지 않는지
오늘 업데이트는 완성이라기보다, 현장 로그를 보고 기본 기능을 다시 한 단계 조정한 작업이다. 다음 검증에서도 기준은 같다. 시간당 3만원 이상을 만들기 위해, 가까운 오더를 더 빠르게 잡는 쪽으로 계속 줄여나간다.