본문 바로가기
AI 튜토리얼

browser-use 사용법: AI 에이전트 웹 자동화 정리 (2026)

by 정부우르사 2026. 6. 13.
반응형

"Playwright 스크립트가 사이트 리뉴얼 한 번에 또 깨졌습니다. 셀렉터 말고 그냥 화면 보고 알아서 클릭하면 안 되나요?"



📌 핵심 3줄 요약

  • browser-use는 LLM이 페이지 스크린샷과 DOM을 같이 보고 클릭/입력 액션을 결정하는 Python 라이브러리다.
  • 설치는 pip install browser-useuvx browser-use install 두 줄이면 끝나고, browser-use 사용법의 핵심은 Agent(task=..., llm=...) 한 줄로 작업을 지시하는 것이다.
  • 대신 토큰 비용과 캡차·인증 같은 한계가 있어, 모든 자동화를 LLM에 맡길 필요는 없다.

1. browser-use가 Playwright와 다른 점

기존 Selenium·Playwright 스크립트는 page.click("#login-button") 같은 CSS 셀렉터에 강하게 묶여 있다. 사이트가 클래스명을 한 번 바꾸면 즉시 전부 깨진다. browser-use는 매 단계마다 페이지 스크린샷과 접근성 트리를 LLM에 넘기고, 모델이 "지금 로그인 버튼을 누른다" 같은 액션을 직접 결정한다.

DOM 셀렉터 대신 시각 정보로 동작하므로, 디자인이 바뀌어도 작업 설명만 같으면 같은 흐름이 계속 돈다.

항목 Playwright / Selenium browser-use
액션 결정 주체 개발자가 셀렉터로 명시 LLM이 화면 보고 판단
디자인 변경 내성 낮음 (셀렉터 깨짐) 상대적으로 높음
한 작업 비용 사실상 무료 LLM 토큰 0.02~0.20 USD
대표 용도 반복형 E2E 테스트 탐색·조사·1회성 작업

💡 핵심 한 줄

셀렉터를 정확히 쓸 수 있는 작업은 Playwright가 더 싸고 빠르다. browser-use는 "사이트 구조를 매번 다 외울 수 없는 탐색형 작업"에 어울린다.


2. 설치와 첫 실행 (5분 가이드)

browser-use는 Python 3.12 가상환경에서 가장 안정적이다. uv 패키지 매니저를 쓰면 가상환경 + 라이브러리 + Chromium까지 한 흐름에 해결된다.

install.sh · Bash

# 1. uv 설치 + 3.12 가상환경
pip install uv
uv venv --python 3.12
.venv\Scripts\activate   # macOS/Linux는 source .venv/bin/activate

# 2. browser-use + Chromium
uv pip install browser-use
uvx browser-use install

마지막 한 줄인 uvx browser-use install이 Chromium을 내려받는다. 사내 프록시 등으로 막힐 때는 playwright install chromium으로 대체할 수 있다.

설치가 끝나면 OpenAI API 키를 .env에 넣고 첫 에이전트를 실행해 본다.

first_run.py · Python

from browser_use import Agent, ChatOpenAI
from dotenv import load_dotenv
import asyncio

load_dotenv()  # OPENAI_API_KEY=...

async def main():
    llm = ChatOpenAI(model="gpt-4.1-mini")
    agent = Agent(
        task="Hacker News 첫 페이지에서 1위 글의 제목과 점수를 알려줘",
        llm=llm,
    )
    result = await agent.run()
    print(result.final_result())

if __name__ == "__main__":
    asyncio.run(main())

실행하면 Chromium 창이 떠서 페이지를 직접 클릭·스크롤하는 모습이 보이고, 콘솔에는 모델이 어떤 액션을 골랐는지 단계별로 출력된다. Claude를 쓰려면 ChatOpenAI 대신 ChatAnthropic(model="claude-sonnet-4-0"), Gemini는 ChatGoogle로 바꾸면 끝이다.


3. 실전: 가격 비교 에이전트 만들기

실제 활용에서는 단순 검색이 아니라 "여러 사이트를 돌며 정보를 모아 정리"하는 작업이 가장 가치 있다. 아래는 노트북 모델명을 받아 두 쇼핑몰의 가격을 비교하는 예시다.

price_compare.py · Python

from browser_use import Agent, ChatOpenAI, BrowserProfile
import asyncio

async def compare(model_name: str):
    task = f"""
    1) 쿠팡에서 '{model_name}' 검색
    2) 상위 3개 상품의 제목과 가격 기록
    3) 같은 작업을 11번가에서 반복
    4) 최저가 상품과 가격, 출처 URL을 표로 정리
    """
    agent = Agent(
        task=task,
        llm=ChatOpenAI(model="gpt-4.1-mini"),
        browser_profile=BrowserProfile(
            headless=False,
            allowed_domains=["*.coupang.com", "*.11st.co.kr"],
        ),
    )
    history = await agent.run()
    return history.final_result()

print(asyncio.run(compare("LG 그램 16 2025")))

allowed_domains로 도메인을 화이트리스트해두면 모델이 광고 링크를 따라 엉뚱한 사이트로 가는 사고를 막을 수 있다. await agent.run()이 반환하는 history 객체에는 단계별 스크린샷·액션·LLM 메시지가 모두 들어 있어 디버깅이 수월하다.

📘 알아두기

같은 작업을 여러 번 돌릴 거라면 첫 실행에서 history를 저장해 액션 순서를 추출한 뒤, 이후엔 Playwright 스크립트로 옮기는 방식이 비용 면에서 가장 합리적이다.


4. 한계와 비용

browser-use는 만능 도구가 아니다. LLM이 매 단계 화면을 해석하므로 비용과 시간이 모두 든다. 보통 한 작업당 0.02~0.20 USD 정도가 청구되고, 단계가 길어지면 1달러를 넘기도 쉽다.

⚠️ 흔한 실패 케이스

  • 캡차·SMS 인증이 걸린 로그인 — 사람 개입 없이는 대부분 막힌다.
  • 봇 차단이 강한 항공·티켓 사이트 — IP 차단 또는 무한 로딩.
  • 무한 스크롤 페이지 — 모델이 "끝까지 봤다"고 잘못 판단하기 쉽다.
  • 비용 폭주 — max_steps 미지정으로 30단계 이상 도는 사고.

반복적이고 셀렉터가 안정적인 작업이라면 Playwright를 그대로 쓰는 편이 빠르고 싸다. browser-use는 "사람이 매번 손으로 하던 탐색 작업"을 줄이는 용도로 쓸 때 가치가 가장 크다.

✅ 핵심 정리

  • browser-use는 LLM이 화면을 보고 액션을 결정하는 Python 브라우저 자동화 라이브러리다.
  • 설치는 uv 가상환경 + uvx browser-use install로 5분이면 끝난다.
  • Agent(task=..., llm=...) 한 줄로 작업 지시, OpenAI·Anthropic·Google 모델 모두 지원.
  • 반복형 작업에는 비용이 부담이므로, 탐색·1회성 작업 위주로 활용한다.

🚀 지금 바로 할 일

  1. Python 3.12 가상환경을 만들고 uv pip install browser-use로 라이브러리를 설치한다.
  2. OpenAI 또는 Anthropic API 키를 .env에 추가하고, 위 first_run.py 예제를 그대로 실행해 첫 자동화 흐름을 눈으로 확인한다.
  3. 본인이 매주 손으로 하던 웹 작업 하나를 골라, task 문자열을 5~7줄로 풀어쓴 뒤 BrowserProfile(allowed_domains=[...])로 범위를 좁혀 돌려본다.

💬 의견

browser-use 같은 'AI 우선' 자동화 도구가 기존 Playwright 스크립트를 얼마나 대체할 수 있다고 보시나요? 댓글로 의견 부탁드립니다.


참고 자료


작성자: AI·개발 도구를 직접 설치·검증해 한국어로 정리하는 기술 블로그 운영자. 이 글은 browser-use 공식 README·AGENTS.md(GitHub) 최신본과 docs.browser-use.com을 1차 출처로, 2026-06-13 기준 Python 3.12 환경에서 정리했습니다. API 시그니처와 명령어는 공식 저장소 기준이며, 향후 마이너 버전 업데이트로 일부 옵션명이 변경될 수 있습니다.

반응형