inhainho 아빠님의 블로그 메인 배너

AI 자동화

셀레니움, 자동화의 축복인가 저주인가?

inhainho 2026. 7. 9. 09:02
반응형
셀레니움, 자동화의 축복인가 저주인가?
DEV.NOTES // automation & security
WEB AUTOMATION DEEP DIVE

셀레니움, 업무를 대신하는 로봇일까
서비스를 위협하는 봇일까?

클릭 한 번으로 반복 업무를 끝내주는 만능 자동화 도구, 셀레니움(Selenium). 같은 기술이 어떤 손에서는 생산성 혁신이 되고, 어떤 손에서는 매크로·크롤링 어뷰징이 됩니다. 도구는 죄가 없다지만, 사용 방식에 따라 완전히 다른 이야기가 되는 이유를 정리했습니다.

READING TIME · 7 MIN TOPIC · SELENIUM / WEB AUTOMATION LEVEL · BEGINNER~INTERMEDIATE
webdriver.selenium.dev — automated_session.py 실행 중
코드가 표시된 개발자 화면
01 · WHAT IS SELENIUM

셀레니움이란 무엇인가

셀레니움은 웹 브라우저를 사람 대신 자동으로 조작하게 해주는 오픈소스 라이브러리입니다. 버튼 클릭, 폼 입력, 페이지 이동, 화면 검증까지 코드 몇 줄로 재현할 수 있어 개발자와 QA 엔지니어에게는 사실상 표준 도구로 자리 잡았습니다.

핵심은 WebDriver — 크롬, 파이어폭스 같은 실제 브라우저를 코드로 원격 조종하는 인터페이스입니다. 문제는 이 힘이 “정상적인 사용자처럼 보이는 자동 행동”을 아주 쉽게 만든다는 점이고, 바로 여기서 선의와 악의가 갈립니다.

함께 코드를 리뷰하는 개발팀
02 · THE GOOD SIDE

좋은 방향으로 쓰면, 이렇게 유용합니다

본래 셀레니움이 만들어진 목적 그대로, 테스트와 반복 업무 자동화에 쓰일 때 진가를 발휘합니다.

QA

회귀 테스트 자동화

배포 때마다 사람이 일일이 클릭해보던 시나리오를 스크립트화해 몇 분 만에 전체 화면을 검증합니다.

반복 업무 자동화

정기적으로 같은 사이트에 로그인해 데이터를 내려받는 등 사람이 지루해하는 반복 작업을 대신합니다.

UI 크로스브라우징 검증

크롬·파이어폭스·엣지 등 여러 브라우저에서 화면이 동일하게 보이는지 자동으로 비교합니다.

공개 데이터 수집

이용약관과 robots.txt를 준수하는 선에서, 공개된 정보를 리서치·아카이빙 목적으로 수집합니다.

A11y

접근성 점검

스크린리더 흐름, 키보드 탐색 등 접근성 요소가 실제로 동작하는지 자동으로 확인합니다.

내부 워크플로 연결

API가 없는 레거시 사내 시스템을 다른 자동화 도구와 이어주는 브리지 역할을 합니다.

“사람이 하던 반복적인 클릭을, 사람이 시킨 대로만 정확히 하는 것” —
여기까지가 셀레니움 본연의 목적입니다.
03 · THE DARK SIDE

나쁜 의도로 쓰면, 왜 문제가 될까

같은 기능이 “정상 사용자처럼 위장하는 데” 쓰이는 순간, 서비스 운영자 입장에서는 심각한 위협이 됩니다. 아래는 실제로 자주 보고되는 악용 유형입니다.

ABUSE PATTERNS

흔히 보고되는 악용 사례

  • RISK
    매크로를 이용한 선점 어뷰징 티켓팅, 한정판 구매, 이벤트 응모처럼 선착순 서비스에서 실제 이용자보다 압도적으로 빠르게 자원을 선점합니다.
  • RISK
    대량 계정 생성 및 스팸 가입 폼을 자동으로 반복 제출해 가짜 계정을 대량으로 만들고, 이를 스팸·조작에 악용합니다.
  • RISK
    무단 대량 크롤링 이용약관과 robots.txt를 무시한 채 콘텐츠·가격 정보를 대량 수집해 저작권·데이터베이스권을 침해합니다.
  • RISK
    서버 과부하 유발 병렬로 수많은 브라우저 세션을 띄워 실질적인 트래픽 폭주를 일으켜 정상 이용자의 접속을 방해합니다.
  • RISK
    계정 탈취 시도 자동화 유출된 아이디·비밀번호 목록을 로그인 폼에 자동으로 대입해보는 크리덴셜 스터핑에 동원됩니다.

핵심은 이겁니다 — 셀레니움은 실제 브라우저를 움직이기 때문에, 일반적인 API 스팸 요청보다 “사람처럼 보이는 트래픽”을 만들기가 훨씬 쉽습니다. 그래서 탐지가 어렵고, 피해 규모도 커지기 쉽습니다.

04 · HOW TO RESPOND

서비스 운영자를 위한 대응 방법

완벽한 차단은 없지만, 아래 방법들을 겹겹이 쌓으면 악용 비용을 크게 높일 수 있습니다.

1

자동화 시그널 탐지

navigator.webdriver 값, 비정상적으로 일정한 마우스 이동, 브라우저 지문(fingerprint) 등 자동화 도구 특유의 흔적을 서버·클라이언트 양쪽에서 확인합니다.

2

행동 기반 이상 탐지

클릭 간격, 페이지 체류 시간, 요청 패턴 등 사람과 봇의 행동 차이를 학습한 모델로 실시간 이상 트래픽을 걸러냅니다.

3

속도 제한 & WAF 적용

IP·계정·세션 단위로 요청 빈도를 제한하고, 웹 애플리케이션 방화벽으로 알려진 봇 패턴을 실시간 차단합니다.

4

단계적 CAPTCHA & 2단계 인증

의심스러운 요청에만 CAPTCHA나 추가 인증을 요구해, 정상 사용자 경험은 유지하면서 자동화 스크립트의 통과를 어렵게 만듭니다.

5

이용약관·법적 근거 정비

크롤링·자동화 금지 조항을 명확히 하고 robots.txt를 정비해, 악용 발생 시 기술적 대응과 별개로 법적 대응 근거를 확보합니다.

6

모니터링 & 지속적 업데이트

봇 탐지는 창과 방패의 싸움입니다. 트래픽 로그를 주기적으로 분석하고 탐지 규칙을 계속 업데이트해야 효과가 유지됩니다.

반대로 셀레니움을 사용하는 개발자 입장이라면, 대상 사이트의 이용약관과 robots.txt를 반드시 확인하고, 과도한 요청 대신 충분한 딜레이를 두며, 가능하다면 공식 API를 우선 사용하는 것이 가장 안전하고 지속 가능한 방법입니다.

도구는 중립적입니다. 방향을 정하는 건 결국 사람입니다

셀레니움 자체는 잘못이 없습니다. 다만 이 힘을 어떤 목적으로, 어떤 선을 지키며 쓰느냐가 생산성 도구와 위협 도구를 가르는 유일한 기준입니다.

#셀레니움 #Selenium #웹자동화 #QA자동화 #크롤링 #매크로어뷰징 #봇탐지 #웹보안 #개발자블로그 #WebDriver
© DEV.NOTES — 웹 자동화와 보안에 대한 이야기
반응형