Browser Harness: LLM이 직접 Chrome을 제어하는 자기 치유형 브라우저 자동화 프레임워크 완벽 가이드 [2026]

Browser Harness LLM 브라우저 자동화 관련 대표 이미지

Browser Harness LLM 브라우저 자동화는 기존의 Selenium이나 Playwright와 근본적으로 다른 접근 방식을 취합니다. LLM 에이전트가 Chrome DevTools Protocol(CDP)을 통해 브라우저를 직접 제어하면서, 필요한 기능이 없으면 스스로 코드를 작성해 해결하는 자기 치유(Self-Healing) 구조를 갖추고 있습니다.

Browser Harness LLM 브라우저 자동화 — Browser Harness란 무엇인가? 관련 설명 이미지

Browser Harness란 무엇인가?

Browser Harness는 약 592줄의 최소주의적 Python 코드로 구성된 브라우저 자동화 프레임워크입니다. 핵심 철학은 단순합니다. LLM에게 “도구를 사용하는 능력”뿐 아니라 “도구를 만드는 능력”까지 부여하는 것입니다.

기존 LLM 기반 브라우저 자동화 도구들은 미리 정의된 액션 세트(클릭, 입력, 스크롤 등)에 의존합니다. 하지만 Browser Harness에서는 에이전트가 예상치 못한 상황을 만나면 helpers.py 파일을 직접 수정해 새로운 함수를 구현하고, 이후 같은 상황에서 재사용합니다.

Browser Harness LLM 브라우저 자동화 — 기존 브라우저 자동화와 무엇이 다른가 관련 설명 이미지

기존 브라우저 자동화와 무엇이 다른가

항목 Selenium / Playwright Browser-Use 등 LLM 도구 Browser Harness
제어 방식 WebDriver 프로토콜 미리 정의된 Action Set CDP WebSocket 직접 연결
장애 대응 수동 수정 필요 Retry + 프롬프트 보정 LLM이 코드 자체를 수정
확장성 플러그인/라이브러리 추가 도구 정의 추가 에이전트가 자동으로 함수 생성
코드 규모 수만 줄 수천 줄 약 592줄
브라우저 접근 범위 DOM 중심 DOM + 일부 API CDP 전체 (네트워크, JS, 렌더링)

가장 큰 차이점은 자기 치유 메커니즘입니다. Selenium에서 셀렉터가 바뀌면 테스트가 깨지고 사람이 고쳐야 합니다. Browser Harness에서는 LLM이 상황을 파악하고 대응 코드를 직접 작성합니다.

아키텍처 구조

Browser Harness의 내부 구조는 다음과 같습니다.

  • run.py — 에이전트의 메인 실행 루프. LLM과 대화하며 작업을 수행
  • helpers.py — LLM이 직접 수정 가능한 유틸리티 파일. 도메인별 함수가 누적
  • admin.py — Chrome 프로세스 관리 및 CDP 연결 설정
  • daemon.py — WebSocket을 통한 CDP 통신 데몬

데이터 흐름을 정리하면 다음과 같습니다.

LLM Agent → run.py → helpers.py (수정 가능) → admin.py + daemon.py → CDP WebSocket → Chrome

이 구조에서 helpers.py가 핵심입니다. LLM이 작업 중 필요한 기능을 발견하면 이 파일에 함수를 추가하고, 다음 호출부터 재사용합니다. 시간이 지나면 도메인별 자동화 라이브러리가 자연스럽게 성장합니다.

자기 치유 메커니즘의 동작 원리

Browser Harness의 자기 치유는 4단계로 작동합니다.

  1. 문제 감지 — 에이전트가 작업 중 예상치 못한 UI 변화나 에러를 만남
  2. 분석 — LLM이 현재 DOM 상태와 에러 원인을 CDP를 통해 파악
  3. 코드 생성 — helpers.py에 새 함수를 작성하거나 기존 함수를 수정
  4. 재실행 — 수정된 코드로 작업을 다시 시도. 성공하면 해당 함수가 영구 보존

이 과정이 반복되면서 helpers.py는 점점 풍부해지고, 에이전트의 자동화 역량이 누적됩니다. 처음에는 빈 파일이던 것이 수십 개의 도메인 특화 함수를 갖춘 라이브러리로 성장하는 셈입니다.

CDP 직접 연결의 장점

Browser Harness가 Selenium WebDriver 대신 Chrome DevTools Protocol(CDP)을 직접 사용하는 이유가 있습니다.

  • 네트워크 인터셉트 — 요청/응답을 가로채거나 수정 가능
  • JavaScript 실행 — 페이지 컨텍스트에서 임의의 JS 실행
  • 렌더링 제어 — 스크린샷, PDF 생성, 뷰포트 조절
  • 성능 모니터링 — 메모리, CPU, 렌더링 타임라인 접근
  • 무거운 의존성 없음 — WebSocket 하나로 전체 브라우저 기능에 접근

Selenium이나 Playwright는 이러한 기능의 일부만 API로 노출합니다. Browser Harness는 CDP 전체 스펙에 접근하므로 브라우저가 할 수 있는 모든 것을 LLM이 직접 활용할 수 있습니다.

실제 사용 방법

Browser Harness는 두 가지 방식으로 사용할 수 있습니다.

로컬 Chrome 연결

로컬에 설치된 Chrome을 디버그 모드로 실행한 뒤 CDP 포트에 연결합니다. 개발/테스트 환경에 적합합니다.

클라우드 브라우저 활용

cloud.browser-use.com에서 무료 클라우드 브라우저를 제공합니다. 카드 등록 없이 최대 3개의 동시 세션을 사용할 수 있어 빠른 프로토타이핑에 유용합니다.

주의사항

  • 보안 고려 — LLM이 코드를 직접 수정하므로, 프로덕션 환경에서는 샌드박스 격리가 필수입니다
  • 비용 — CDP 통신 데이터가 LLM 컨텍스트에 포함되므로 토큰 소비가 클 수 있습니다
  • 디버깅 — LLM이 생성한 helpers.py 코드의 품질이 모델 성능에 따라 달라집니다
  • 멱등성 — 자기 치유로 생성된 코드가 항상 최적은 아닐 수 있으므로 주기적 리뷰 권장

자주 묻는 질문

Browser Harness는 Selenium을 완전히 대체할 수 있나요?

범용 대체는 아닙니다. 대규모 CI/CD 파이프라인의 회귀 테스트에는 여전히 Selenium/Playwright가 적합합니다. Browser Harness는 탐색적 자동화, 웹 스크래핑, 비정형 작업에서 강점을 발휘합니다.

어떤 LLM을 사용해야 하나요?

코드 생성 능력이 강한 모델이 유리합니다. GPT-4 이상, Claude 3.5 이상, 또는 코딩 특화 모델이 추천됩니다. 모델의 코드 생성 품질이 자기 치유 메커니즘의 성능을 직접 결정합니다.

592줄로 정말 충분한가요?

핵심 프레임워크 자체는 592줄이지만, 에이전트가 생성하는 helpers.py가 시간이 지나면서 성장합니다. 즉 프레임워크는 최소한이지만, 실제 자동화 코드는 사용할수록 풍부해지는 구조입니다.


댓글 남기기