이제 마우스에서 손 떼셔도 됩니다: Browser-use로 시작하는 진짜 'AI 에이전트' 라이프
☕️ 커피 한 잔하며 나누는 ‘요즘 자동화’ 이야기
여러분, 혹시 오늘도 Selenium이나 Playwright 잡고 씨름하셨나요? “아, 왜 갑자기 이 버튼 ID가 바뀐 거야?”라며 한숨 쉬며 Inspect Element를 열고 계시진 않았나요? 저도 사실 며칠 전까지만 해도 그랬거든요. 셀렉터 하나 바뀌었다고 애써 짠 코드가 터질 때면 정말 ‘이게 최선인가?’ 싶더라고요.
그러다 운명처럼 Browser-use라는 녀석을 만났습니다. 처음엔 “또 흔한 AI 래퍼(Wrapper)겠지” 싶었는데, 직접 써보고 나서 생각이 완전히 바뀌었어요. 이건 그냥 자동화 툴이 아니라, 내 브라우저를 대신 써줄 인턴 한 명을 고용한 기분이랄까요? 오늘은 제가 이 물건을 써보며 느꼈던 전율과, 솔직히 좀 아쉬웠던 부분까지 아주 가감 없이 털어놓아 보려 합니다.
🚀 한 마디로 요약하자면?
- 브라우저를 직접 ‘보고’ ‘이해해서’ 클릭하는 지능형 에이전트 프레임워크예요.
- CSS 셀렉터 노가다 없이 “구글에서 최신 AI 뉴스 5개 찾아서 정리해줘” 같은 자연어 명령만으로 충분합니다.
- Playwright의 강력함에 LLM의 두뇌를 얹은, 현시점 가장 섹시한 자동화 도구입니다.
🧠 Browser-use, 도대체 뭐가 다른 걸까요?
기존의 자동화는 ‘어떻게(How)’에 집중했습니다. “#submit-btn을 클릭하고, 3초 기다린 뒤에 .result를 긁어와.”라고 아주 상세하게 지시해야 했죠. 하지만 Browser-use는 ‘무엇을(What)’에 집중합니다.
이 라이브러리의 핵심은 LLM(두뇌) + Playwright(손) + Vision(눈)의 조합이에요. 단순히 HTML 코드를 읽는 게 아니라, 페이지의 스크린샷을 찍어서 시각적으로 분석합니다. 사람이 웹사이트를 볼 때처럼 “아, 저기 오른쪽 위에 로그인 버튼이 있네?”라고 인지하는 방식이죠.
📊 기존 도구 vs Browser-use 한눈에 보기
| 특징 | 기존 방식 (Selenium/Playwright) | Browser-use (Agentic) |
|---|---|---|
| 지시 방식 | 복잡한 코드 (XPath, CSS Selectors) | 자연어 (일상적인 말) |
| 유지보수 | UI 바뀌면 코드가 깨짐 (유지보수 지옥) | 스스로 판단해서 적응 (Self-healing) |
| 의사결정 | 고정된 로직만 수행 | 상황에 맞는 최선의 액션 결정 |
| 학습 곡선 | DOM 구조 공부 필수 | 프롬프트 잘 쓰면 끝 |
사실 이 ‘Self-healing’ 능력이 진짜 미쳤습니다. 버튼 이름이 ‘Submit’에서 ‘Confirm’으로 바뀌어도, Browser-use의 에이전트는 당황하지 않아요. “음, 문맥상 이게 제출 버튼이겠군” 하고 알아서 눌러버리거든요. 개발자 입장에선 정말 눈물 나게 고마운 기능이죠. 😂
💻 코드 5줄로 에이전트 만들기 (진짜예요!)
백문이 불여일코드죠. 파이썬 좀 하시는 분들이라면 아래 코드를 보고 무릎을 탁 치실 겁니다. 환경 설정? pip install browser-use 하나면 끝납니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import asyncio
from browser_use import Agent
from langchain_openai import ChatOpenAI
async def main():
# 1. 우리의 에이전트 '두뇌' 설정 (GPT-4o 추천!)
llm = ChatOpenAI(model="gpt-4o")
# 2. 수행할 작업 던져주기
agent = Agent(
task="애플 공식 홈페이지에 들어가서 최신 아이폰의 가격을 찾고, 삼성 공홈의 갤럭시 S24와 가격을 비교해서 표로 정리해줘.",
llm=llm,
)
# 3. 실행!
result = await agent.run()
print(result)
asyncio.run(main())
이 코드가 실행되는 걸 보고 있으면 정말 경이롭습니다. 브라우저가 혼자 뜨더니(Headless 설정 가능!), 마우스 커서가 애플 사이트를 뒤지고, 탭을 하나 더 열어서 삼성 사이트로 가고… 마지막엔 깔끔하게 정리된 텍스트를 내뱉더라고요. 마치 제 뒤에서 누군가 대신 일해주고 있는 것 같은 기분이 듭니다.
🤔 실무에서 어떻게 써먹을 수 있을까?
이걸 단순히 ‘크롤링’ 도구로만 생각하면 좀 아쉽습니다. 제가 머릿속으로 그려본 몇 가지 ‘에이전틱(Agentic) 시나리오’는 이렇습니다.
- 🎯 자동화된 경쟁사 모니터링: 매일 아침 경쟁사 쇼핑몰에 들어가서 신상품 가격을 확인하고, 우리보다 저렴하면 슬랙(Slack)으로 알림을 주는 에이전트.
- 🛠️ QA 엔지니어의 구원투수: “회원가입 폼에 이상한 데이터를 넣었을 때 에러 메시지가 잘 나오는지 확인해줘”라는 한 문장으로 E2E 테스트 완료.
- 💼 비즈니스 인텔리전스: 링크드인에서 특정 키워드를 가진 잠재 고객 리스트를 뽑아서 스프레드시트에 정리하는 작업.
사실 브라우저에서 일어나는 모든 반복 업무가 대상이에요. 저는 요즘 제 개인 블로그의 링크들이 깨진 게 없는지 검사하는 작업을 이 친구한테 맡기고 있는데, 아주 만족스럽더라고요. 👍
⚠️ 솔직한 리뷰: 장점만 있지는 않더라고요
기술에 열광하는 저이지만, 냉정하게 짚고 넘어갈 한계점도 분명히 있습니다. 여러분이 삽질하지 않도록 제가 먼저 겪은 아쉬운 점들을 공유할게요.
💸 토큰 비용은 각오하셔야 해요: 브라우저 화면을 LLM에게 계속 전달하다 보니, 토큰 사용량이 꽤 많습니다. 특히 비전(Vision) 기능을 켜면 비용이 훅 올라가죠. 단순한 데이터 추출이라면 기존 크롤러가 훨씬 경제적입니다.
⏳ 조금 느립니다: 사람처럼 생각하고 페이지를 분석하는 과정이 필요하다 보니, 쌩쌩 돌아가는 스크립트보다는 느려요. 실시간 응답이 중요한 서비스보다는 백그라운드 작업(Batch)에 적합합니다.
🤖 캡차(CAPTCHA)는 여전히 숙제: 아무리 똑똑한 AI라도 ‘로봇이 아닙니다’ 체크박스나 복잡한 퍼즐 앞에서는 주춤할 때가 있습니다. (물론 유료 우회 서비스를 붙일 수는 있지만요!)
✨ 마치며: ‘How’의 시대에서 ‘What’의 시대로
Browser-use를 써보면서 느낀 가장 큰 변화는 제 사고방식이었어요. 예전에는 “어떤 라이브러리를 써서 이 HTML 구조를 파싱할까?”를 고민했다면, 이제는 “어떤 작업을 자동화해서 내 시간을 더 가치 있게 쓸까?”를 고민하게 되더라고요.
이 기술은 아직 완벽하지 않습니다. 하지만 우리가 코드를 한 줄 한 줄 짜서 기계를 가르치던 시대에서, 기계가 우리의 의도를 이해하고 도구를 다루는 시대로 넘어가는 아주 중요한 변곡점에 있다는 사실은 분명해 보입니다.
동료 개발자 여러분, 이번 주말에는 반복적인 노가다 스크립트 대신 Browser-use로 나만의 작은 ‘웹 대리인’을 하나 만들어보시는 건 어떨까요? 처음 그 친구가 스스로 클릭에 성공하는 장면을 볼 때의 짜릿함, 여러분도 꼭 느껴보셨으면 좋겠습니다!
다음에 더 흥미로운 기술 이야기로 찾아올게요. 궁금한 점은 언제든 댓글로 남겨주세요! 😊
References
- https://github.com/browser-use/browser-use
- https://browser-use.com/
- https://playwright.dev/
