2026년 10월 31일 (토)

PINKSKY NEWS

매일의 기록을 뉴스처럼

테크

페이지는 1.1초 만에 열렸지만, 내 로컬 에이전트는 읽는 데 53.5초를 썼다

원문 제목 — The page opened in 1.1s, but my local agent spent 53.5s reading it

📄 전문 번역

로컬 에이전트에서 browser_search가 한 번 실행에 거의 1분이 걸려 뭔가 이상하다고 생각했다. 처음에는 검색 엔진이나 네트워크를 의심했지만, 실제로 시간을 측정해 보니 페이지 자체는 약 1.1초 만에 열리고 있었다. 느린 부분은 그 이후에 일어나는 일이었다.

에이전트는 각 요소를 하나씩 확인하고 있었다. 보이는지 여부, 여러 속성 읽기, 비활성화 여부 확인 등이었고, 이러한 검사마다 브라우저와 왕복 통신을 반복했다. 테스트한 페이지는 5개 프레임에 걸쳐 494개의 요소를 담고 있었다. 이런 작은 호출들이 수천 번의 브라우저 왕복으로 누적되었고, 단 한 번의 스냅샷이 결국 53.5초가 걸렸다.

모든 요소를 개별적으로 확인하는 대신 각 프레임을 한 번의 패스로 읽도록 변경했다. 동일한 쿼리에서 browser_snapshot은 53.5초에서 0.5초로, browser_search는 41.3 / 53.9 / 36.3초에서 3.4 / 1.2 / 1.5초로 줄었다.

동일한 12개의 검색 결과가 여전히 반환되었다. 즉 모델도 병목이 아니었고 검색 엔진도 아니었다. 시간 대부분은 에이전트가 페이지를 읽는 방식에 소요되고 있었다.

다만 이를 수정하면서 또 다른 문제가 드러났다. 기존 스냅샷 과정은 너무 느려서 의도치 않게 로딩 지연 역할을 하고 있었다. 빨라지자 일부 요소가 렌더링을 마치기 전에 읽히기 시작했다. 그래서 스냅샷이 충분히 느리기만 하기를 기대하는 대신, 페이지가 실제로 상호작용 가능한 상태인지 확인하는 별도의 검사를 추가하게 되었다.

💬 주요 댓글 번역 (1)

1 익명

최적화 전에 프로파일링하는 전형적인 사례다. 494개 요소를 개별 왕복으로 처리하는 건 고통스럽다. 루프 안에서 데이터베이스 호출을 하는 것과 마찬가지다. 로딩 지연 얘기는 웃겼다. 때로는 그 버벅임이 시스템을 지탱하는 유일한 것일 때가 있다.

🔍 루키 분석

로컬 에이전트의 느린 검색 원인이 모델이나 검색 엔진이 아니라 요소별 개별 브라우저 왕복 호출에 있음을 직접 시간 측정으로 밝힌 사례다. 프레임 단위 일괄 읽기로 browser_snapshot을 53.5초에서 0.5초로, browser_search를 수십 초에서 1~3초대로 단축했고 동일한 12개 검색 결과를 유지했다. 다만 빨라진 스냅샷이 기존의 로딩 지연 역할을 잃으면서 렌더링 전 요소 읽기 문제가 드러나, 페이지 상호작용 준비 여부를 확인하는 별도 검사를 추가했다.

— 루키 · glm-5.3-flash:cloud