AI 에이전트로 여러 브라우저 테스트를 한꺼번에 병렬 실행
Playwright MCP는 도구 호출 하나당 브라우저 동작 하나씩, 느리고 토큰도 많이 씁니다. 이제 Claude Code나 Codex가 코드 몇 줄로 ego (lite)에서 테스트 전체를 실행합니다. 2.4배 더 빠르고, 각자의 Space에서 여러 테스트를 병렬로 실행합니다.
말만 하면 브라우저 테스트가 돌아갑니다
예를 들어 Codex에게 이 쇼핑몰 사이트에 버그가 있는지 확인해달라고 시킵니다. Codex가 테스트를 전부 돌리고, 버그를 고치고, 결과를 알려줍니다. 저는 그동안 TikTok이나 보면서 기다리면 끝입니다.
같은 페이지가 화면에서 바로 깨진 상태에서 정상으로 바뀝니다
상품 페이지가 깨진 채로 렌더링됩니다. 에이전트가 ego (lite)에서 화면을 확인하고 소스의 CSS를 고치면, 열려 있던 페이지가 화면에서 바로 정상적으로 다시 렌더링됩니다.
ego (lite)로 브라우저 테스트를 눈 깜짝할 새 끝내세요
브라우저 테스트를 돌리던 기존 방식은 Playwright MCP나 Chrome DevTools MCP처럼 도구 호출을 하나씩 실행하는 것이었습니다. 매 단계마다 모델이 이전 결과를 읽을 때까지 기다려야 해서 느리고 비쌌죠. 이제 에이전트는 ego (lite)에서 JS 코드 한 번 실행으로 여러 단계를 처리하기 때문에, 더 빨리 끝나고 토큰도 덜 씁니다.
| ego (lite) | Playwright MCP | Chrome DevTools MCP | |
|---|---|---|---|
| 에이전트가 브라우저를 조작하는 방식 | /ego-browser 스킬을 통해 | 외부 MCP 서버 방식. 동작 하나마다 도구 호출 한 번. | 외부 MCP 서버 방식. 동작 하나마다 도구 호출 한 번. |
| 설정 | 설정 불필요, 어떤 에이전트와도 작동합니다. | npx 설치, 실행 모드 설정, 자주 나는 실행 오류와 Chrome 탐색 오류. | 원격 디버깅, user-data-dir, 여러 호스트에 걸친 설정 작업. |
| 토큰 사용량 | 낮음. MCP 도구 스키마가 없고, 에이전트가 기록한 내용만 컨텍스트에 들어갑니다. 동작마다 스냅샷을 찍는 게 아니라 한 번의 실행에 스냅샷 하나면 충분합니다. | 높음. 사용자들은 토큰이 6배까지 늘고 20만 토큰 컨텍스트가 넘친다고 얘기합니다. | 높음. 스크린샷은 토큰을 많이 잡아먹습니다. |
| 로그인 상태 | 평소 로그인해서 쓰던 그 브라우저. Chrome의 로그인 상태 그대로 | 기본적으로 격리된 브라우저라, 로그인 상태를 유지하려면 확장 모드나 storage-state 설정이 따로 필요합니다. | 붙일 수는 있지만, 지금 쓰고 있는 탭을 가져가 버립니다. |
| iframe / Shadow DOM / SDK 위젯 | 페이지 스냅샷이 렌더링 엔진 자체에 내장돼 있어서, 그 안까지 전부 읽어냅니다. | 접근성 스냅샷은 iframe을 못 보는 사각지대가 있습니다. | 원시 DOM, 전부 직접 처리해야 합니다. |
| 콘솔 / 네트워크 / 트레이스 | 콘솔, 네트워크, 트레이스까지 Chrome DevTools 데이터에서 곧바로 읽어옵니다. | 콘솔, 네트워크, 스크린샷. | 가장 깊게: Lighthouse, 성능, 메모리까지. |
| 로케이터 안정성 | 시맨틱 레이블을 기준으로 요소를 잡기 때문에 클래스명이 바뀌어도 그대로 유지됩니다. | ref / 접근성 기반, 꽤 안정적입니다. | 원시 DOM 선택자. |
| 캡차 / 봇 탐지 | 실제 사람이 쓰는 세션이라 걸릴 확률이 가장 낮습니다. | 별도의 헤드리스 브라우저 방식이라 봇으로 걸리기 쉽습니다. | 붙여서 쓰면 낫지만, 대신 내 탭을 가져가 버립니다. |
| 동시 병렬 작업 | Space를 통해 여러 작업을 동시에 실행하도록 만들어졌습니다. | 서버당 세션 하나뿐이라, 병렬로 돌리려면 격리된 인스턴스를 따로 여러 개 관리해야 합니다. | 인스턴스가 하나뿐이라 탭이 많아지면 그대로 죽습니다. |
마찰의 원인은 브라우저가 아니었습니다. 그 사이에 낀 계층이었습니다.
개발자 포럼과 이슈 트래커를 보면 불만은 대부분 MCP에 쏠려 있습니다. 에이전트와 브라우저 사이에 낀 이 계층 때문에 연결이 끊기고, 승인 요청이 쌓이고, 세션이 끊어지고, 토큰만 불어납니다. ego (lite)는 필요한 게 다 갖춰져 있어서 이런 이상한 오류가 더는 나지 않습니다.
브라우저는 멀쩡합니다. 문제는 거기로 가는 연결입니다.
- 연결 방식: 도구는 보이는데 에이전트가 호출을 안 하거나, "승인 대기 중"에서 멈춰버리거나, 같은 서버인데 클라이언트마다 다르게 동작하는 문제
- 승인 횟수: "전체 실행" 옵션을 켜도 도구 호출마다 팝업이 뜨는데, 작업 하나에 보통 10~30개
- 안정성: 절반만 끝난 작업, 혹은 이미 성공했는데도 타임아웃으로 처리되는 이동
중간에 아무것도 없습니다. ego (lite)가 브라우저 그 자체입니다
- 설계 자체가 안정적: 에이전트가 자기 소유의 로컬 브라우저와 직접 대화하기 때문에, 중간에서 끊기거나 멈추는 MCP 전송 계층이 없습니다
- 승인 횟수 감소: 동작마다 도구를 하나씩 호출하는 대신 한 번의 실행으로 여러 단계를 처리
- 예측 가능성: 어떤 AI 에이전트든 매번 똑같은 방식으로 바로 연결
테스트 스크립트도, 관리할 선택자도 필요 없습니다. 확인할 내용만 말하세요.
Playwright, Cypress, Selenium 테스트는 직접 작성하고 선택자도 직접 관리해야 하며, 클래스명이 바뀌거나 레이아웃이 섞이면 그대로 깨집니다. ego (lite)는 평범한 말로 된 확인 요청을 받아서 요소의 의미로 위치를 찾기 때문에, UI가 바뀌어도 테스트가 깨지지 않습니다.
스펙도 직접 쓰고, 선택자도 직접 관리해야 함
- 직접 작성하고 버전 관리하는
.spec테스트하고 싶은 모든 흐름에 대해 - 다음과 같은 선택자를 고정해야 함
page.click(".btn-x7f3")UI가 다음에 바뀌면 바로 깨지는 - 불안정한 테스트를 잡으려고 대기와 재시도 로직을 직접 추가해야 함
- 로그인 뒤 화면을 테스트하려면 로그인 자동화나 storage-state 파일을 직접 구축해야 함
- 리디자인할 때마다 테스트 스위트를 다시 돌리고 고쳐야 함
확인할 내용만 말하면 됩니다
- 스펙 작성 불필요. 에이전트에게 확인할 내용을 한 문장으로 말하면 됩니다
- CSS 클래스가 아니라 요소의 의미로 위치를 찾기 때문에, 이름이 바뀌거나 구조가 섞여도 깨지지 않습니다
- 비동기 콘텐츠는 스마트 대기가 알아서 처리합니다. 직접 만든 sleep 코드는 필요 없습니다
- 로그인 자동화 없이 로그인 뒤 화면까지 테스트
- 시각적 회귀 테스트가 필요하신가요? 에이전트가 스크린샷을 비교합니다
CI에서 무인으로 도는 버전 관리된 헤드리스 스위트가 필요하거나 Firefox·WebKit까지 테스트해야 한다면, Playwright를 그대로 쓰세요. ego (lite)는 개발 중에 사용하는 빠르고 스크립트가 필요 없는 내부 테스트 루프입니다.
AI 에이전트가 ego (lite)를 조작하는 방식
에이전트는 완결된 JavaScript 코드 하나로 브라우저를 조작합니다. 스토어 열기, 상품 담기, 결제 대기까지 모든 단계를 호출 한 번에 묶어 브라우저 안에서 순서대로 실행하기 때문에, 한 동작의 결과를 기다렸다가 다음 동작을 보내는 일이 없습니다.
브라우저 테스트를 불안정하게 만드는 원인들을 알아서 처리합니다
개발자들이 자동화하기 가장 어렵다고 꼽는 시나리오들을 직접 돌려봤습니다. ego (lite)에서는 에이전트가 전부 처리했습니다. 시맨틱 Snapshot을 Chromium 렌더링 엔진 내부에서 직접 생성하기 때문에, 삽입 스크립트가 보지 못하는 Shadow root와 문서 간 iframe까지 들여다봅니다.
Shadow DOM
Acts inside web-component shadow roots, where injected scripts go blind.
Payment iframes
Fills card fields inside cross-document iframes, like a Stripe checkout.
Custom date pickers
Picks a date range in a custom calendar with no test ids.
Drag and drop
Real HTML5 drag: moves a kanban card, the board follows.
Infinite scroll
Scrolls a lazy feed until every item is loaded, no hand-tuned waits.
Paginated tables
Walks every page of an admin table and pulls each row.
Conditional modals
Cookie banners and dialogs that pop up mid-flow get handled, not tripped over.
Autocomplete
Types an address, waits for the suggestions, picks the right one.
가려지거나 비활성화된 버튼을 클릭하면 실제 테스트 프레임워크와 똑같이 통과가 아니라 실패로 보고됩니다.
로그인된 내 브라우저, 통제권은 여전히 나에게
로그인된 브라우저에 에이전트를 풀어놓는다는 게 꺼림칙할 수 있습니다. 그 경계가 어디인지 정리했습니다.
자기만의 Space에서 동작합니다
에이전트는 브라우저 안의 별도 작업 공간에서 실행됩니다. 로그인 상태는 공유하지만 당신의 탭과 창은 그대로 둡니다.
모든 단계가 눈에 보입니다
숨겨진 헤드리스 프로세스가 아니라 Mac 화면에 실제로 뜨는 브라우저입니다. 실행 과정을 실시간으로 지켜보고, 언제든 에이전트 CLI에서 중단할 수 있습니다.
Mac 밖으로 나가는 건 없습니다
방문 기록, 쿠키, 세션은 전부 내 컴퓨터에만 남습니다. ego (lite)는 이를 업로드하지 않습니다.
실제 결제가 일어나는 체크아웃이나 진짜 삭제되는 흐름처럼 실제 부작용이 있는 경우에는 에이전트를 localhost나 스테이징 환경으로 향하게 하세요. 직접 손으로 테스트할 때와 똑같은 방식으로.
사용법, 단계별로
웹 앱 테스트는 세 단계면 끝입니다. 에이전트를 localhost나 원하는 URL로 향하게 하고, 확인할 내용을 말하고, 실패한 내용을 확인하세요.
매일 쓰는 Chromium 브라우저입니다. 클릭 한 번으로 Chrome 로그인을 그대로 가져오기 때문에, 에이전트가 당신 계정으로 테스트합니다.
뭘 테스트하게 시켜야 하나요?
/ego-browser localhost:3000을 열고 체크아웃 과정을 밟아본 다음 뭐가 깨졌는지 알려줘
유형 /ego-browser 확인할 내용만 말하세요. 에이전트가 알아듣는 언어라면 뭐든 좋습니다.
| 페이지 | 결과 |
|---|---|
| /checkout | 알았어 |
| /product/gift-card | 콘솔 오류 |
| /product/camera | 이미지 404 |
깨진 페이지마다 단순히 통과·실패만이 아니라 원인이 되는 콘솔 오류나 실패한 요청까지 함께 알려줍니다.
ego (lite)가 맞는 경우, 맞지 않는 경우
개발하면서 바로바로 재현하고, 디버그하고, 검증하는 빠른 이너 루프를 위해 만들었습니다.
ego (lite)가 특히 강한 부분
진짜 브라우저에서 도는 이너 루프.
- 실제 로그인된 브라우저에서 버그를 재현하고 디버그하기
- 로그인 자동화 없이도 로그인 뒤 화면 테스트
- 콘솔 오류, 실패한 요청, 페이지 상태를 읽습니다
- 여러 페이지를 동시에 탐색적으로 점검
- 버그를 발견한 그 세션에서 바로 수정 사항까지 검증
Playwright를 써야 할 때
할 수 있는 일과 없는 일을 솔직하게 밝힙니다.
- CI에서 무인으로 도는 헤드리스 회귀 테스트 (ego (lite)는 화면이 보이는 Mac 브라우저입니다)
- Firefox·WebKit 크로스 브라우저 테스트 (ego (lite)는 Chromium 기반입니다)
- 버전 관리하고 직접 커밋해서 소유하는, 결과가 일정한 테스트 스위트
에이전트에게 테스트할 진짜 브라우저를 쥐여주세요
Mac용 ego (lite) 다운로드FAQ
아니요. 이미 쓰고 있는 Claude Code, Codex, Cursor 같은 AI 에이전트에게 확인할 내용을 평범한 말로 알려주기만 하면 됩니다. 브라우저 조작 단계는 에이전트가 알아서 작성하고 실행합니다. ego (lite)가 페이지의 시맨틱 스냅샷으로 요소 위치를 찾기 때문에 관리할 .spec 파일도, 직접 짤 CSS 선택자도 없습니다.
Playwright MCP는 동작 하나마다 도구 호출 한 번씩 왕복하는 MCP 서버라서, 15단계짜리 작업이면 모델과 15번을 왕복해야 합니다. 느리고 토큰도 많이 듭니다. ego (lite)는 브라우저 그 자체입니다. 에이전트가 짧은 JavaScript 코드 하나로 여러 단계를 한 번에 실행하며, 그것도 실제 로그인된 브라우저 위에서요. Claude Code에서 Opus 4.8로 같은 작업을 테스트했더니, ego (lite)는 모델 왕복 2번에 약 18초 만에 끝났지만 Playwright MCP는 9번 왕복에 약 43초가 걸렸습니다. 게다가 단일 MCP 브라우저로는 불가능한, 여러 테스트를 각자의 Space에서 동시에 병렬 실행하는 것도 됩니다.
네, 바로 이 지점에서 진가를 발휘합니다. ego (lite)는 이미 로그인돼 있는 평소 쓰던 브라우저라서, 로그인 자동화를 따로 만들지 않아도 에이전트가 대시보드, 사내 관리자 패널, 계정 관련 흐름까지 테스트할 수 있습니다. 실제 사람이 쓰는 세션처럼 동작하기 때문에 헤드리스 브라우저나 새로 띄운 브라우저보다 캡차나 봇 탐지에 걸릴 확률도 훨씬 낮습니다.
작업마다 같은 브라우저 안의 독립된 작업 공간인 Space에서 실행되는데, 같은 프로필의 별도 창이 여러 개 떠 있는 것과 비슷합니다. Space는 로그인 상태는 공유하지만 페이지는 각자 따로 유지하기 때문에, 병렬로 실행해도 서로 부딪히거나 당신이 쓰고 있는 탭과 충돌하지 않습니다. 웹사이트 입장에서는 그냥 탭을 여러 개 열어둔 로그인 사용자 한 명처럼 보입니다. 만약 앱이 계정당 세션을 하나만 허용한다면, 그런 흐름은 순서대로 하나씩 실행하거나 테스트 전용 계정을 쓰세요.
네, 다만 방식이 조금 다릅니다. 에이전트가 기준 스크린샷과 새 스크린샷을 찍어서 픽셀 단위로 비교하고, 뭐가 어디서 바뀌었는지 알려줍니다. 별도의 시각 테스트 제품을 설정하는 게 아니라 에이전트가 내 브라우저 안에서 직접 비교하는 것이라, Percy나 Chromatic을 따로 연결할 필요가 없습니다. 검토 워크플로와 CI 게이팅까지 갖춘 관리형 기준 서비스가 필요하다면, 전용 시각 테스트 도구가 여전히 더 알맞습니다.
아직은 아닙니다. ego (lite)는 개발하면서 테스트하도록 만든, Mac에서 화면이 보이는 진짜 브라우저입니다. 버그를 재현하고, 디버그하고, 수정 사항을 검증하고, 여러 페이지를 한 번에 점검하는 용도죠. CI에서 무인으로 도는 헤드리스 스위트나 Firefox·WebKit 크로스 테스트가 필요하다면 기존 Playwright 테스트 스위트를 그대로 쓰세요. ego (lite)는 빠른 이너 루프이지, CI 러너가 아닙니다.
실제 사용자가 마주칠 법한 기능·런타임 문제를 잡습니다. 중간에 끊기는 흐름, 눌러도 반응 없는 버튼, 처리되지 않은 JavaScript 오류, 실패한 네트워크 요청, 콘솔 오류, 잘못 나오는 값까지. 에이전트가 페이지 상태와 콘솔, 네트워크를 함께 읽기 때문에 단순히 성공·실패가 아니라 무엇이 어디서 잘못됐는지 알려줍니다.
에이전트는 자기만의 Space에서 작업하기 때문에 당신의 탭과 창은 그대로 유지되고, 모든 과정은 실제로 눈에 보이는 브라우저 창에서 일어나 언제든 지켜보거나 에이전트 CLI에서 중단할 수 있습니다. 브라우징 데이터는 내 컴퓨터에만 남습니다. ego (lite)는 방문 기록, 쿠키, 세션을 업로드하지 않습니다. 실제로 결제가 일어나는 체크아웃처럼 진짜 부작용이 있는 흐름이라면, 직접 테스트할 때처럼 에이전트를 localhost나 스테이징 환경으로 향하게 하세요. 외부 에이전트나 모델 제공사를 연결하면 그쪽의 데이터 정책이 별도로 적용됩니다.