Mbbrowser + Selenium 자동화: 초보자 가이드
Python을 작성할 수 있거나 학교에서 Selenium을 배운 적이 있다면, "Mbbrowser + Selenium"은 다계정 자동화를 위한 가장 좋은 시작점입니다.
이 튜토리얼 시리즈는 "한 번도 접해보지 못한 상태"에서 "안정적인 자동화 스크립트를 독립적으로 작성할 수 있는 상태"까지 쉬운 용어로 안내해 드립니다.
1. Mbbrowser 핑거프린트 브라우저란?
Selenium을 배우기 전에, 전체 솔루션의 "기반"이 되는 Mbbrowser가 무엇인지 잠시 살펴보겠습니다.
왜 핑거프린트 브라우저가 필요한가요?
이런 시나리오를 상상해 보세요: 당신은 아마존에서 20개의 상점 계정을 운영하는 글로벌 셀러입니다.
- 일반 크롬을 사용하는 경우: 같은 컴퓨터에서 20개의 계정에 로그인하면, 아마존의 위험 관리 시스템은 이 계정들의 IP와 브라우저 핑거프린트가 동일하다는 것을 감지합니다. 즉시 이를 '연관 계정'으로 판단하여 트래픽 제한을 걸거나, 최악의 경우 일괄 정지 처리를 합니다.
- Mbbrowser를 사용하는 경우: 각 계정은 독립적인 "브라우저 신분증"을 가집니다. 브라우저 핑거프린트, 프록시 IP, 쿠키 데이터, 시간대/언어 등의 정보가 완전히 격리됩니다. 아마존의 눈에는 이 20개의 계정이 전 세계 곳곳에 흩어져 있는 20명의 서로 다른 사람으로부터 온 것으로 보이기 때문에 연관되지 않습니다.
Mbbrowser는 각 계정에 맞춰 최적화된 "가상 컴퓨터"를 만드는 것과 같습니다.
Mbbrowser는 어떤 부분들로 구성되나요?
핵심 구성 요소를 이해하면 자동화가 어떻게 작동하는지 더 잘 이해할 수 있습니다.
| 구성 요소 | 설명 |
|---|---|
| Mbbrowser 메인 프로그램 (mbbrowser.exe) | 모든 브라우저 환경을 관리하는 "본부"입니다. 여기서 각 핑거프린트 환경을 생성, 구성 및 실행합니다. |
| 크롬 커널 (chrome.exe) | Mbbrowser는 커스텀 크롬 커널을 사용합니다. 각 환경은 독립적인 크롬 인스턴스를 실행합니다. |
| CDP 서비스 (cdp.exe) | Chrome DevTools Protocol 서비스로, 자동화가 브라우저 제어권을 가져오는 기술적 진입점입니다. |
| ApiServer (apiserver.exe) | 당신의 스크립트와 Mbbrowser 사이의 "API 접견원"입니다. 스크립트로부터 HTTP 명령을 받고 브라우저 디버깅 포트를 반환합니다. |
2. Selenium이란?
Selenium은 20년의 역사를 가진 세계에서 가장 인기 있는 브라우저 자동화 프레임워크로, SeleniumHQ에서 관리합니다.
핵심 능력: 코드를 통해 브라우저를 제어하여, 실제 사람처럼 웹페이지에 접속하고, 버튼을 클릭하고, 양식을 채우고, 데이터를 읽는 것입니다.
Selenium 4.x의 개선 사항
현재 주류 버전은 **Selenium 4.x (2024-2026 적극 지원)**이며, 구버전에 비해 크게 개선되었습니다.
- ✅ 내장 Selenium Manager: 더 이상 ChromeDriver를 수동으로 다운로드할 필요가 없습니다. Selenium이 자동으로 버전을 맞춥니다.
- ✅ 개선된 상대적 위치 지정 (Relative Locators):
above(),below(),near()등을 사용하여 위치 기반으로 요소를 찾을 수 있습니다. - ✅ 기본 크롬 개발자 도구(CDP) 지원: CDP 프로토콜을 통해 네트워크 요청을 가로채거나 장치를 직접 시뮬레이션할 수 있습니다.
- ✅ 향상된 대기 메커니즘: 더욱 안정적인 명시적 대기(Explicit Wait)를 통해 네트워크 속도로 인한 스크립트 중단을 줄입니다.
3. Mbbrowser + Selenium은 어떻게 함께 작동하나요?
이것이 전체 자동화 솔루션의 핵심 개념입니다. 꼭 이해해 두세요:
역할 분담
사용자 Python 스크립트
↓ HTTP 요청 (Mbbrowser에 "어떤 환경을 열 것인지" 알림)
Mbbrowser ApiServer
↓ debuggerAddress 반환 (예: 127.0.0.1:9222)
Selenium ChromeDriver
↓ 디버깅 포트를 통해 브라우저 "제어권 획득"
Mbbrowser 핑거프린트 환경 (핑거프린트, 프록시, 쿠키가 모두 적용된 상태)
↓ 실제 핑거프린트로 요청 전송
대상 웹사이트| 역할 | 구성 요소 | 책임 |
|---|---|---|
| Mbbrowser (본체/핑거프린트 레이어) | 메인 프로그램 + ApiServer | UA, Canvas, WebGL, 프록시 IP, 쿠키 격리 등 완벽한 핑거프린트 변장을 제공합니다. |
| ChromeDriver (신경/번역 레이어) | chromedriver.exe | "번역가" 역할을 하며, Selenium 명령(예: click())을 Chrome DevTools Protocol 명령으로 변환합니다. |
| Selenium (두뇌/실행 레이어) | Python/Java 스크립트 | 비즈니스 명령을 내립니다: 페이지 열기, 양식 채우기, 클릭, 스크린샷, 데이터 읽기 등. |
일반 Selenium과의 본질적인 차이점
| 차원 | 일반 Selenium | Mbbrowser + Selenium |
|---|---|---|
| 시작 방식 | webdriver.Chrome()이 빈 브라우저를 직접 시작함 | debuggerAddress가 기존의 Mbbrowser 환경을 인수하여 제어함 |
| 핑거프린트 | 표준 크롬 핑거프린트, 봇으로 감지되기 쉬움 | 각 환경마다 고유한 핑거프린트 보유, 실제 사용자와 동일함 |
| IP 주소 | 호스트 PC의 IP 사용, 계정 간 공유됨 | 각 환경마다 독립적인 프록시 IP 설정 가능 |
| 쿠키 (Cookie) | 실행될 때마다 초기화됨 | Mbbrowser 환경 내에 쿠키가 영구적으로 저장됨 |
| 관리 방식 | 수동 전환, 혼동하기 쉬움 | Session_ID로 매칭되어 절대 혼동되지 않음 |
TIP
한 줄 요약: Mbbrowser는 "각 계정의 역할을 연기"하는 책임을 지고, Selenium은 "그 역할이 당신을 위해 일하게 만드는" 책임을 집니다. 명확한 분업을 통해 완벽하게 협업합니다.
4. Selenium과 Puppeteer 중 무엇을 선택해야 할까요?
Mbbrowser는 Selenium과 Puppeteer를 모두 지원합니다. 둘 다 제어 작업을 수행할 수 있지만, 다음과 같은 차이가 있습니다:
| 차원 | Selenium | Puppeteer |
|---|---|---|
| 지원 언어 | Python, Java, C#, Ruby 등 다양함 | 주로 Node.js (JavaScript) |
| 학습 난이도 | Python 개발자에게 더 친숙함 | 프론트엔드/JS 개발자에게 더 친숙함 |
| 대기 메커니즘 | 강력한 명시적/암시적 대기 메커니즘 제공 | 수동으로 waitForSelector 작성 필요 |
| 커뮤니티 | 매우 방대함; 답변을 찾기 쉬움 | 상대적으로 리소스가 적지만 빠르게 성장 중 |
| 권장 용도 | 이커머스, 스크래핑, Python 개발자 | 스크린샷, 프론트엔드 테스트, JS 개발자 |
5. 전형적인 비즈니스 시나리오
- 🛒 글로벌 이커머스: Amazon, eBay, Shopify 자동 로그인, 주문 확인, 재고 갱신.
- 📱 소셜 미디어 운영: 일괄 포스팅, 좋아요, 팔로우 및 DM 전송.
- 🔍 SEO 데이터 수집: 로그인 보호 페이지에 접속하여 순위 데이터 수집.
- 👤 계정 육성 (Warming): 실제 사용자 브라우징 패턴을 모사하여 계정 권한 점수 향상.
- 🎮 대량 가입/로그인: 자동으로 계정을 생성하고 본인 인증 절차 완료.
TIP
준비되셨나요? 다음 장 설치 및 ApiServer 구성에서는 필요한 모든 환경을 설정하고 10분 이내에 첫 번째 스크립트를 실행하는 방법을 안내해 드립니다.
