URL: https://www.youtube.com/watch?v=mxsJo_Jjdi8 날짜: 2026-08-17 채널: Tech Bridge 원문 제목: [한글자막] AI 에이전트가 캡차를 인간처럼 뚫는 법 (웹 자동화의 어둠의 기술) 영상 ID: mxsJo_Jjdi8
📌 핵심 질문 / 이 발표가 다루는 핵심 논점
==AI 에이전트가 사람처럼 웹을 사용하려면, 모델이 모든 클릭을 직접 판단하게 만들기보다 CLI·Chrome DevTools Protocol(CDP)·감지-행동-검증 루프를 결합하고 페이지가 강제하는 만큼만 인간적인 입력 단계로 올라가야 한다.==
- CDP를 통해 발생한 클릭과 키 입력은 Chrome 내부에서 사람의 입력과 같은 경로를 거친다.
- CLI는 모델을 매 상호작용 사이에 두지 않으므로 MCP보다 재사용성·속도·토큰 비용에서 유리하다.
- 페이지가 합성 JavaScript 이벤트를 거부하면 신뢰된 CDP 입력으로, 마우스 움직임을 분석하면 실제 경로·지터·시각 판단으로 단계적으로 대응한다.
- 결정론적 코드가 반복 작업을 맡고 AI 에이전트는 눈과 두뇌가 필요한 판단만 맡으면 시간 제한이 있는 캡차도 빠르고 반복 가능하게 처리할 수 있다.
웹 자동화의 핵심은 캡차 하나를 억지로 우회하는 비법이 아니라, 브라우저의 구조·의미·픽셀·네트워크를 디지털 감각으로 읽고 필요한 입력 수준을 선택하는 엔지니어링 방법론이다. 한 번 탐색해 성공 경로를 찾은 뒤 코드나 에이전트 스킬로 기록하면 같은 문제를 매번 새로 추론하지 않아도 된다.
1. 문제의 출발점: 사람이 아닌 클릭에 웹페이지가 저항하는 이유
1.1. 계정 정지 위협과 자동화의 역설
-
불길한 시작
- 웹 자동화의 어두운 기술이라는 제목은 변호사가 필요할 것 같은 일을 다룬다는 농담으로 시작한다.
- 발표를 준비하던 중 OpenAI가 준비 과정에서 수행한 작업을 이유로 계정을 정지하겠다고 위협했고, 며칠 뒤 확인한 메일함에서 실제 경고를 발견해 큰 충격을 받았다는 배경이 제시된다.
- 웹 브라우저를 이용한 사이버 악용으로 계정 정지를 당하려면 어떤 행동을 해야 하느냐는 질문이 던져진다.
-
실제 목표
- 예약, 이메일 발송, 서류 작성처럼 사람이 브라우저에서 하는 일을 AI 에이전트가 대신 수행하면 직접 개입할 필요가 없어진다.
- 시연되는 각각의 문제는 사람의 개입 없이 AI 에이전트가 해결한다.
- 약 15분 안에 이 자동화가 가능한 구조와 캡차가 저항하는 지점을 이해할 수 있도록 설명이 이어진다.
1.2. 브라우저를 인간처럼 쓰게 만드는 중심 가설
-
페이지와의 싸움
- 사람이 아닌 무언가가 웹페이지를 클릭하기 시작하는 순간 페이지는 입력을 거부하거나 조용히 무시하거나 봇 검사를 시작한다.
- 자동화의 목표는 페이지의 저항을 무작정 속이는 것이 아니라, 저항이 발생한 지점을 감지하고 그에 맞는 입력 방식을 선택해 싸움에서 이기는 것이다.
-
마우스를 든 meatbag이라는 비유
- CDP로 구동되는 브라우저는 마우스를 단 인간형(meatbag)과 같다는 문장이 전체 논점을 한 장의 슬라이드로 압축한다.
- Google·Cloudflare 등 페이지를 운영하는 업체가 구별할 수 있는 범위에서 CDP로 브라우저를 제어하면 에이전트의 클릭과 키 입력이 Chrome 내부에서 사람의 클릭·키 입력과 정확히 같은 경로를 통과한다.
- 따라서 핵심은 브라우저를 별도 API로 조작하는 데 있지 않고, 사람이 실제로 사용하는 브라우저의 입력 경로와 관찰 경로를 에이전트가 사용할 수 있게 만드는 데 있다.
2. 세 가지 기반: CLI, CDP, 사다리 위의 루프
2.1. MCP 대신 CLI를 제공해야 하는 이유
-
능력은 비슷하지만 운영 특성이 다르다
- Arise AI의 최근 연구에서 같은 작업을 받은 CLI와 MCP의 성공률은 모두 약 83%로, 순수한 작업 수행 능력은 거의 비슷했다.
- CLI는 재사용성, 속도, 비용에서 MCP보다 우수하므로 실제 브라우저 자동화의 실행층에 더 적합하다.
- CLI는 셸 기반 도구이며, 에이전트가 명령을 직접 호출하고 반복 가능한 시퀀스를 프로그램으로 만들 수 있게 한다.
-
재사용성과 속도
- CLI 시퀀스는 한 번 작성한 뒤 모델을 루프 안에 넣지 않고도 1,000회 실행할 수 있다.
- MCP는 매 순간 모델을 호출해 다음 작업을 맞춰야 하므로 단계가 늘어날수록 왕복과 추론 비용이 누적된다.
- 동일 연구에서 MCP는 한 작업에 71번 왕복하고 8분이 걸렸지만, CLI는 7번의 전환만으로 1분도 걸리지 않았다.
- 각 단계 중간에 모델이 없다는 점이 CLI의 속도 우위를 만든다.
-
토큰 비용
- Anthropic은 CLI가 토큰 비용 면에서 최대 75배 저렴할 수 있다고 보고했다.
- 반복 실행이 필요한 브라우저 조작에서 매 클릭·매 관찰마다 모델을 호출하는 구조는 속도뿐 아니라 비용에서도 불리하다.
2.2. Chrome DevTools Protocol과 Chrome Agent
-
CDP의 역할
- 명령줄에서 실행하는 브라우저는 Chrome DevTools Protocol을 통해 구동된다.
- 브라우저에서 F12를 눌렀을 때 나타나는 개발자 도구 패널도 같은 프로토콜로 브라우저를 제어한다.
- 에이전트는 Chrome Agent 도구를 통해 CDP 명령을 사용하고, CDP 상호작용을 재생하는 코드를 쉽게 작성할 수 있다.
-
넓고 변하는 인터페이스를 줄이는 방법
- CDP는 표면적이 매우 넓고 자주 변하며, 당시 기준으로 57개 도메인과 수백 개의 메서드·이벤트를 포함한다.
- 모든 도메인을 외울 필요는 없고, 사람처럼 브라우저와 상호작용하는 데 필요한 작은 하위 집합만 이해하면 된다.
- 복잡한 도메인을 에이전트가 기억하기 쉬운 8개 범주로 묶어 생각하면 필요한 기능을 빠르게 고를 수 있다.
2.3. 디지털 감각과 감지-행동-검증 루프
-
에이전트의 디지털 감각
- 페이지의 구조는 DOM에서 읽을 수 있다.
- 요소의 의미론적 정보는 접근성 트리(Accessibility Tree)에서 읽을 수 있다.
- 구조나 의미만으로 부족하고 픽셀이 필요하면 스크린샷을 취한다.
- 페이지가 내는 소리는 네트워크 트래픽, 콘솔, 로그처럼 브라우저와 오가는 상태 정보로 관찰한다.
- 페이지 조작은 클릭, 키 입력, 탐색으로 수행한다.
-
루프의 세 단계
- 감지(Sense) 단계에서 DOM·접근성 트리·스크린샷·네트워크 등 하나 이상의 채널로 현재 상태를 파악한다.
- 행동(Act) 단계에서 한 번에 하나만 클릭하거나 입력하거나 선택한다.
- 검증(Verify) 단계에서 행동이 성공했는지 상호작용과 다른 채널로 확인한다.
- 클릭 자체에 성공했는지 묻지 말고 네트워크 상태나 화면을 확인해야 한다. 클릭 이벤트가 성공했다고 주장하는 것과 페이지가 실제로 상태를 바꾼 것은 다르기 때문이다.
- 현재 위치를 파악하고 한 번 움직인 뒤 제대로 도착했는지 확인하는 과정을 페이지가 원하는 상태에 도달할 때까지 반복한다.
-
루프가 닫히지 않을 때의 신호
- 감지-행동-검증을 반복해도 페이지가 원하는 대로 움직이지 않으면 페이지가 반격하고 있다는 뜻이다.
- 이때 더 복잡한 방법을 무작정 동원하지 말고, 페이지가 강제하는 만큼만 다음 단계로 올라가야 한다.
3. 고기 사다리(meatbag ladder): 필요한 만큼만 인간적으로 행동하기
3.1. 세 개의 단계
-
1단계 — 노출된 API와 합성 JavaScript 이벤트
- 페이지 내부에 노출된 API로 처리할 수 있다면 JavaScript에서 가상 클릭(synthetic click)을 발생시킨다.
- 가장 간단하고 무료이며 즉각적이므로 기본값으로 삼는다.
- 이 단계에서는 인간처럼 보이려는 시도를 하지 않는다.
-
2단계 — CDP Input 도메인의 신뢰된 입력
- 합성 이벤트가 더 이상 통하지 않을 때 CDP Input 도메인으로 실제 클릭과 키 입력을 보낸다.
- Chrome 내부에서 실제 마우스가 사용하는 것과 같은 입력 경로를 거치므로 페이지가 에이전트 입력과 사람의 입력을 구분하지 못한다.
-
3단계 — 사람의 행동과 시각을 재현하는 입력
- 페이지가 인간 행동까지 요구하면 실제 마우스 경로, 약간의 체류 시간, 미세한 떨림(jitter)을 추가한다.
- 시각 정보로 대상을 보고 해석해야 하는 문제에는 스크린샷과 비전 기능을 사용한다.
- 저렴한 1단계에서 시작하고 페이지가 다음 단계로 밀어 올릴 때만 한 계단씩 올라간다.
3.2. 탐색에서 영구 자동화로 넘어가는 절차
-
수동 탐색
- 먼저 브라우저와 페이지를 탐색하며 감지-행동-검증 루프를 손으로 실행한다.
- 실패하면 한 단계씩 사다리를 올라가 실제로 작동하는 수준을 찾는다.
-
해결 경로의 기록
- 성공한 경로를 발견하면 같은 문제를 다시 풀지 않도록 해결 방법을 기록한다.
- 기록 형식은 재생 가능한 코드, 에이전트 스킬, 또는 두 가지를 함께 사용하는 방식이 될 수 있다.
- 이 탐색-기록-재생 과정이 완전 자동화된 AI 에이전트 브라우징을 만든다.
-
안전한 시연 범위
- 뒤에서 소개되는 실제 브라우저 사용 사례는 실제 경험에서 가져왔지만, 자문에 따라 소유한 인프라와 직접 운영하는 계정에서만 실행된다.
- 이 제한은 타인의 계정이나 인프라에 자동화를 적용하는 사례와 구분되는 운영 경계다.
4. 단계별 사례: 이메일에서 장바구니까지
4.1. Outlook 웹 클라이언트 — 1단계 자동화
-
개인화된 대량 이메일
- Outlook 웹 클라이언트에서 수신자마다 다른 내용을 담은 개인화 이메일을 일괄 발송한다.
- 작성 상자에는 자동화가 물리쳐야 할 방어 장치가 없으므로 1단계의 합성 클릭을 사용한다.
- 첫 번째 가상 클릭으로 작성 창을 열고, 내용을 프로그램으로 채운 뒤, 두 번째 가상 클릭으로 전송한다.
-
한 번 해결하고 반복하기
- 실행이 매끄러운 이유는 에이전트가 각 클릭을 즉석에서 다시 추론하는 것이 아니라 실행 프로그램을 사용하기 때문이다.
- 이메일 시퀀스를 한 번 캡처하면 20개든 200개든 같은 명령 하나로 반복할 수 있다.
- 에이전트는 발송할 문구를 실시간으로 개인화하며 즉흥적으로 대응하지만, 상호작용의 진행은 이미 작성된 프로그램이 통제한다.
-
웹 UI가 범용 API가 되는 상황
- Office 365 테넌트 API를 사용하려면 앱 등록과 관리자 승인이 필요하다.
- 일반 직원은 관리자 승인을 받기 어려울 수 있다.
- 반면 이미 가진 웹 로그인만으로 화면에서 수행하는 작업을 그대로 실행할 수 있으므로, 웹 UI가 사실상 권한 없는 범용 API처럼 작동한다.
4.2. Amazon을 가상의 “Demon”으로 부른 이유 — 2단계 신뢰된 입력
-
합성 클릭의 조용한 실패
- Outlook에서 작동한 같은 JavaScript 클릭을 온라인 대형 쇼핑몰의 장바구니 담기 버튼에 적용하면 아무 일도 일어나지 않는다.
- 오류 메시지도 실패 신호도 없고, 페이지가 입력을 조용히 무시한다.
- 페이지는 해당 클릭이 사람에게서 온 것인지 확인하고, Chrome은 모든 이벤트에 신뢰 여부를 표시한다.
- JavaScript로 발생시킨 클릭에는
untrusted표시가 붙으므로 페이지가 해당 입력을 버린다.
-
CDP Input으로 장바구니에 담기
- 2단계로 올라가 Chrome Input 도메인을 사용하면 실제 마우스와 동일한 입력 경로로 클릭할 수 있다.
- 해당 입력에는
trusted표시가 붙고 페이지는 사람의 마우스와 에이전트의 클릭을 구분하지 못한다. - 결과적으로 상품이 장바구니에 정상적으로 담긴다.
- 하단 로그 패널을 보면 신뢰되지 않은 클릭은 모두 실패하고 신뢰된 클릭은 통과하는 차이를 확인할 수 있다.
-
시각화용 커서의 한계
- 시연 중 움직이는 마우스 커서는 관객이 CDP 입력을 볼 수 있도록 프로그램으로 덧씌운 시각화다.
- 실제 발표자의 마우스가 움직이는 것이 아니라 Chrome Agent와 CDP가 브라우저에 전달한 입력을 보여주는 표시다.
5. 3단계의 캡차: 구조를 관찰하고 인간적인 입력을 재현하기
5.1. Cloudflare Turnstile — 숨은 체크박스를 좌표로 클릭하기
-
일반 자동화가 요소를 찾지 못하는 구조
- 겉보기에는 단순한 체크박스지만 가장 어려운 대상 가운데 하나다.
- 체크박스는 닫힌 Shadow DOM 아래에 캡슐화되어 있다.
- 전체 위젯은 cross-origin iframe 안에 있고, iframe 내부에도 또 다른 Shadow DOM이 있다.
- 세 겹의 격리 경계 때문에 일반적인 웹 자동화로 잡을 수 있는 요소가 존재하지 않는다.
-
요소를 잡지 않고 화면 위치를 계산하기
- 숨은 체크박스 요소를 직접 선택하려는 시도를 중단하고 브라우저에 iframe이 화면 어디에 놓였는지 묻는다.
- iframe의 위치와 체크박스의 상대 위치를 계산한 뒤 유리 표면에 해당하는 화면 좌표로 신뢰된 클릭을 보낸다.
- Chrome이 좌표 아래의 실제 위젯에 이벤트를 전달하고 체크박스가 선택되면서 다음 작업이 시작된다.
- 사람의 개입은 없으며, 핵심은 보이지 않는 요소를 붙잡는 것이 아니라 브라우저가 렌더링하는 공간과 좌표를 이용하는 데 있다.
5.2. MTCaptcha — 스크린샷과 시각 판독을 결합하기
-
문자 판독
- MTCaptcha 유형에서는 에이전트가 챌린지 화면을 스크린샷으로 캡처한다.
- 자체 시각 기능으로 노이즈 속 문자를 골라내고, 사람이 화면을 보고 읽는 행동을 시뮬레이션한다.
-
교차 출처 iframe에 실제 키 입력 보내기
- 판독한 답을 위젯의 cross-origin iframe으로 한 글자씩 입력한다.
- 키 입력은 사람이 보내는 것과 같은 신뢰된 키보드 입력이다.
- 서버가 답변을 받아 텍스트를 검증하고 동의하면 토큰을 발급한다.
5.3. Lemon — 마우스 궤적까지 검증하는 퍼즐
-
퍼즐의 구조
- Lemon 유형은 조각이 들어갈 빈 공간을 찾아 퍼즐 조각을 끌어다 놓는 작은 직소 퍼즐이다.
- Shadow DOM도 cross-origin iframe도 없고 퍼즐 조각이 페이지에 직접 노출되어 있다.
- 따라서 가장 어려운 부분은 요소를 찾는 것이 아니라 드래그하는 동작 자체다.
-
움직임의 궤적
- 캡차는 드래그 전체 구간의 마우스 움직임을 점들의 궤적으로 기록한다.
- 궤적에는 미세한 떨림, 속도 변화, 가속·감속 같은 특성이 포함된다.
- 퍼즐을 맞히는 것만으로 부족하고, “Moves Like Jagger”처럼 사람다운 움직임으로 맞혀야 한다.
-
손을 흉내 내는 경로
- 에이전트는 드래그를 시작할 때 부드럽게 진입하고 약간의 곡선을 만든다.
- 목표 조각을 일부러 조금 지나친 뒤 다시 천천히 제자리로 돌려놓는다.
- 시각 기능으로 빈틈을 식별하고, 사람의 손이 마우스를 움직이는 것과 비슷한 경로로 빈틈을 가로지른다.
- Turnstile, MTCaptcha, Lemon이라는 세 관문은 각각 구조 접근, 문자 시각 판독, 움직임 재현을 요구한다.
6. 최종 보스 reCAPTCHA v2: 결정론적 솔버와 AI 오퍼레이터
6.1. 시간 제한이 있는 격자 캡차
-
익숙한 형태
- 작은 체크박스를 누른 뒤 횡단보도나 신호등처럼 흐릿한 그림이 들어간 타일 격자를 고르는 유형이다.
- 사람도 흐릿한 이미지를 보기 위해 눈을 가늘게 뜨고 확인해야 할 정도로 난도가 있다.
-
전체 기계의 두 부분
- 한쪽에는 순수 코드로 작성된 솔버가 있고, 이 부분에는 에이전트나 모델이 없다.
- 솔버는 체크박스에 신뢰된 클릭을 보내고 challenge iframe 안으로 들어간다.
- 매 라운드 격자를 스크린샷으로 저장하고, 라운드가 어떤 이유로 만료되면 자동으로 다시 무장(re-arm)해 재시작한다.
- 체크박스 처리, iframe 접근, 라운드 재시작은 결정론적이며 빠르고 무료로 반복된다.
6.2. 코드가 못 하는 한 가지를 오퍼레이터에게 위임하기
-
시각과 사고의 경계
- 코드가 할 수 없는 단계는 흐릿한 타일 격자를 보고 목표 물체가 들어 있는 타일을 판단하는 일이다.
- “이 타일은 버스인가?” 같은 질문에는 눈과 뇌에 해당하는 시각과 추론이 필요하다.
-
오퍼레이터(Operator)의 최소 역할
- 솔버가 에이전트의 어깨를 두드리면 에이전트는 격자를 한 번 훑는다.
- 목표 물체가 있는 타일을 고르고 답을 솔버에 돌려준다.
- 솔버가 다음 라운드를 진행하는 동안 에이전트는 대기하며 다음 호출을 기다린다.
- 코드가 결정론적 운전을 담당하고 에이전트가 눈과 두뇌가 필요한 부분만 담당하므로 하나의 시스템으로 작동한다.
6.3. 속도가 검증 성공을 결정하는 이유
-
반복 라운드와 만료 시계
- 각 라운드에는 만료 시간이 있고 하나의 챌린지가 여러 라운드로 연속 구성될 수 있다.
- 일부 격자는 매우 어려워 사람이 못 본 자전거를 에이전트가 찾아내기도 하지만, 서버 검증까지 통과하려면 제한 시간 안에 답을 제출해야 한다.
-
모델 왕복의 패배
- 모든 클릭과 모든 화면 관찰마다 모델 왕복을 수행하면 시계를 소모한다.
- 여러 라운드가 끝나기 전에 챌린지가 만료되므로, 모델을 상호작용의 중심에 두는 구조는 정확해도 성공할 수 없다.
-
결정론적 실행과 라운드별 한 번의 AI 관찰
- 솔버는 기계 속도로 실행하고, 각 라운드에 AI가 빠르게 한 번만 격자를 확인한다.
- 이 구조가 reCAPTCHA v2를 통과시키는 핵심이며 CLI가 CDP를 실행해야 하는 이유이기도 하다.
- 캡차 해결은 우연한 시연이 아니라 반복 가능하고 신뢰할 수 있는 해결책으로 정착했다.
7. 방법론의 일반화와 결론
7.1. 캡차보다 중요한 것은 방법론이다
-
시연의 의미
- 캡차들은 방법론을 입증하기 위한 작고 까다로운 테스트 사례다.
- 성과를 만든 핵심은 세심하고 체계적인 엔지니어링이며, 그 결과 기본 상태의 에이전트가 전혀 할 수 없던 브라우저 작업을 수행하게 된다.
-
재사용 가능한 공식
- 에이전트가 프로그래밍될 수 있도록 CLI를 제공한다.
- CDP로 브라우저 전체를 구동하고 DOM·접근성 트리·스크린샷·네트워크 같은 디지털 센서를 사용한다.
- 감지-행동-검증 루프를 고기 사다리 위에서 실행한다.
- 페이지가 강제할 때만 다음 단계로 올라간다.
- 탐색을 통해 해결하고 성공한 경로를 코드와 스킬로 기록한다.
7.2. 한 번 해결한 경로를 오래 쓰는 구조
-
내구성
- 성공 경로를 기록하면 같은 문제를 매번 새로 풀지 않아도 된다.
- 한 번 터득한 해결법을 이후 반복 작업에 계속 적용할 수 있다는 점이 이 제품과 방법론을 내구성 있고 유용하게 만든다.
-
도구와 개인화 소프트웨어
- OpenAI 측과 조용히 대화한 뒤 계정 정지 위협과 관련된 게시글을 다시 받아 Codex에 계속 접근할 수 있게 되었다.
- Chrome Agent는 Python 생태계에 설치할 수 있으며, 제작자가 만든 도구는 해당 작업에 매일 사용된다.
- 특정 제품을 홍보하기보다 직접 도구를 만들어도 되고, 각자의 요구에 맞춘 소프트웨어를 무한히 만들어 쓸 수 있는 시대라는 결론을 제시한다.
- 추가 논의를 위해 X 팔로우와 대화를 권하고, AI로 웹을 자동화하는 방법을 더 이야기하고 싶다면 현장 허들 공간에서 대화할 수 있다고 안내한다.
주요 발언 모음
“CDP 브라우저는 마우스를 든 meatbag과 같다.”
“에이전트의 클릭과 키 입력은 Chrome 내부에서 사용자의 클릭과 키 입력이 거치는 것과 정확히 같은 경로를 거친다.”
“감지하고, 행동하고, 검증한 다음 페이지가 굴복할 때까지 반복한다.”
“페이지가 강제하는 만큼만 사다리를 올라가라.”
“한 번 탐색하고 해결하면, 그 해결책을 기록해 다시는 같은 문제를 풀지 않아도 된다.”
“결정론적 코드는 기계 속도로 실행하고, AI는 라운드마다 빠르게 한 번만 본다.”
“에이전트에 CLI를 주고, 디지털 센서로 CDP를 통해 브라우저 전체를 구동하라.”
핵심 데이터 & 수치
- 약 15분: CDP·CLI·사다리 루프가 캡차 자동화를 가능하게 하는 구조를 설명하는 데 제시된 시간.
- 약 83%: Arise AI 연구에서 동일 작업을 수행한 CLI와 MCP의 각각의 성공률.
- 71회와 8분: 연구에서 MCP가 한 작업을 수행하는 데 사용한 왕복 횟수와 시간.
- 7회와 1분 미만: 같은 작업을 CLI가 수행한 전환 횟수와 시간.
- 최대 75배: Anthropic이 보고한 CLI의 토큰 비용 절감 가능성.
- 57개 도메인: 당시 CDP가 제공하는 도메인 수.
- 수백 개 이상의 메서드와 이벤트: 57개 CDP 도메인 안에 포함된 기능 규모.
- 8개 범주: 복잡한 CDP 도메인을 기억하기 쉽게 묶은 개념적 분류.
- 1,000회: 한 번 작성한 CLI 시퀀스를 모델 없이 반복 실행할 수 있는 예시 횟수.
- 20개 또는 200개 이메일: Outlook 자동화 시 같은 시퀀스를 재사용할 수 있는 발송량 예시.
- 3단계 사다리: 합성 JavaScript 클릭, CDP 신뢰된 입력, 인간형 경로·시각 입력으로 올라가는 자동화 수준.
- 3개의 격리 경계: Cloudflare Turnstile 체크박스를 가리는 닫힌 Shadow DOM, cross-origin iframe, iframe 내부 Shadow DOM.
- 라운드별 1회 AI 관찰: reCAPTCHA v2의 시간 제한을 지키기 위해 모델 호출을 최소화한 구조.
결론 및 시사점
- 브라우저 자동화의 기본값은 가장 인간적인 동작이 아니라 가장 단순한 합성 이벤트이며, 페이지가 거부할 때만 신뢰된 입력과 시각·마우스 경로를 추가해야 한다.
- CLI는 모델 없는 반복 실행을 가능하게 해 MCP보다 빠르고 저렴하며, 성공한 브라우저 조작을 영구적인 프로그램으로 바꾸기 쉽다.
- CDP는 사람이 사용하는 브라우저의 입력 경로와 관찰 지점을 에이전트에 제공하는 핵심 계층이다.
- 감지와 상호작용을 같은 신호로 확인하지 않고, 클릭 뒤 네트워크나 화면처럼 다른 채널로 검증해야 자동화가 실제 상태 변화를 놓치지 않는다.
- Shadow DOM이나 cross-origin iframe 때문에 요소를 선택할 수 없을 때는 브라우저가 알고 있는 화면 좌표와 신뢰된 입력 경로를 활용할 수 있다.
- 문자 캡차는 스크린샷·시각 판독·신뢰된 키 입력을 결합하고, 드래그 캡차는 지터·속도 변화·곡선·미세한 오버슈트까지 포함한 궤적을 요구한다.
- 시간 제한이 있는 격자 캡차에는 결정론적 코드가 반복 운전을 맡고 AI는 시각과 추론이 필요한 타일 선택만 맡는 분업이 적합하다.
- 캡차를 통과한 사실보다 중요한 자산은 탐색 후 성공한 경로를 코드와 에이전트 스킬로 기록해 반복 가능한 능력으로 바꾸는 과정이다.
- 실제 자동화는 소유한 인프라와 승인된 계정에서 수행해야 하며, 페이지의 방어를 존중하는 운영 경계가 필요하다.
핵심 요약 (20줄)
-
AI 에이전트가 사람처럼 웹을 사용하려면 CLI, Chrome DevTools Protocol, 감지-행동-검증 루프를 결합해야 한다.
-
CDP로 구동한 브라우저의 클릭과 키 입력은 Chrome 내부에서 사람의 입력과 같은 경로를 통과한다.
-
Arise AI 연구에서 CLI와 MCP의 작업 성공률은 모두 약 83%로 비슷했다.
-
CLI는 모델을 매 단계 사이에 두지 않아 같은 작업을 MCP의 71회 왕복·8분보다 7회 전환·1분 미만에 수행했다.
-
Anthropic은 CLI가 토큰 비용 면에서 최대 75배 저렴할 수 있다고 보고했다.
-
CDP는 57개 도메인과 수백 개의 메서드·이벤트를 제공하지만 사람 같은 조작에는 작은 하위 집합만 필요하다.
-
DOM, 접근성 트리, 스크린샷, 네트워크, 콘솔, 로그가 에이전트의 디지털 감각을 구성한다.
-
감지-행동-검증 루프는 한 번에 하나의 동작만 수행하고 다른 관찰 채널로 결과를 확인한다.
-
첫 번째 사다리 단계는 노출된 API와 합성 JavaScript 클릭을 이용하는 가장 단순한 방식이다.
-
합성 이벤트가 거부되면 CDP Input 도메인의 신뢰된 클릭과 키 입력으로 두 번째 단계에 올라간다.
-
세 번째 단계는 실제 마우스 경로, 체류 시간, 지터, 시각 판단처럼 인간 행동을 재현한다.
-
Outlook 작성 창은 방어 장치가 없어 합성 클릭만으로 개인화 이메일 20개나 200개를 반복 발송할 수 있다.
-
Office 365 API에 앱 등록과 관리자 승인이 필요할 때 웹 로그인은 권한 없는 범용 API처럼 작동한다.
-
Amazon의 장바구니 버튼은
untrustedJavaScript 클릭을 조용히 버리지만 CDP Input의trusted클릭은 통과시킨다. -
Cloudflare Turnstile은 닫힌 Shadow DOM과 두 겹의 cross-origin 격리 때문에 좌표 계산과 신뢰된 화면 클릭이 필요하다.
-
MTCaptcha는 스크린샷에서 노이즈 속 문자를 읽고 cross-origin iframe에 신뢰된 키 입력을 한 글자씩 보낸다.
-
Lemon 퍼즐 캡차는 지터, 속도 변화, 곡선, 목표를 살짝 지나쳤다가 돌아오는 드래그 궤적을 검증한다.
-
reCAPTCHA v2 솔버는 체크박스·iframe·라운드 재시작을 결정론적 코드로 처리하고 격자 판독만 AI 오퍼레이터에게 맡긴다.
-
모델을 모든 클릭과 관찰에 호출하면 여러 라운드의 만료 시계를 소모하므로 라운드마다 한 번의 빠른 AI 관찰이 효과적이다.
-
성공한 자동화 경로를 코드나 에이전트 스킬로 기록하면 한 번 해결한 브라우저 작업을 반복 가능한 개인화 소프트웨어로 사용할 수 있다.
