용어집

CAPTCHA란 무엇인가요?

CAPTCHA(Completely Automated Public Turing test to tell Computers and Humans Apart, 컴퓨터와 인간을 구별하기 위한 완전 자동화 튜링 테스트)는 웹사이트가 인간 방문자와 자동화된 봇을 구별하기 위해 사용하는 챌린지 응답 시스템으로, 일반적으로 방문자에게 인간에게는 쉽지만 소프트웨어에게는 어려운 퍼즐을 풀도록 요청하는 방식입니다.

CAPTCHA가 어떻게 작동하는지, 왜 나타나는지, 최신 변형(이미지, 오디오, 보이지 않는 형태, 행동 기반)은 무엇인지, 그리고 스크래핑 시 이를 유발하지 않는 방법을 이해합니다.

설명

CAPTCHA는 웹사이트가 당신의 트래픽이 자동화된 것일 수 있다고 판단할 때 나타나는 봇 탐지 챌린지입니다. 고전적인 형태는 읽어야 하는 왜곡된 텍스트 이미지이며, 최신 형태는 이미지 그리드 퍼즐('신호등이 있는 모든 사각형 선택'), 오디오 챌린지, 그리고 페이지와 상호작용하는 방식을 관찰하여 체크가 있다는 것을 알기도 전에 조용히 인간인지 봇인지 판단하는 행동 기반 / 보이지 않는 CAPTCHA입니다.

오늘날 주요 CAPTCHA 공급업체는 Google reCAPTCHA(v2, v3 및 Enterprise 등급)와 hCaptcha이며, 둘 다 Cloudflare 및 Akamai와 같은 안티봇 스택 뒤에서 널리 사용됩니다. Cloudflare는 또한 reCAPTCHA / hCaptcha 대안으로 자체 Turnstile 챌린지를 운영합니다. 각 시스템은 이미지 퍼즐, 브라우저 핑거프린팅, 마우스/키보드 움직임 분석, IP 평판을 서로 다른 비율로 조합하여 '인간일 가능성' 점수를 계산합니다.

스크래핑 및 데이터 수집 워크플로에서 CAPTCHA 챌린지에 대한 올바른 답은 이를 푸는 것이 아니라, 애초에 이를 유발하지 않는 것입니다. CAPTCHA는 요청이 의심스러워 보일 때(데이터센터 IP, 누락된 헤더, 불일치하는 핑거프린트, 불규칙한 요청 속도) 발생하므로, 가장 깔끔한 해결책은 위생 관리입니다: 레지덴셜 / 모바일 IP, 최신 브라우저 헤더, 현실적인 타이밍, 적절한 TLS 핑거프린트. CAPTCHA가 나타나더라도 새로운 IP로 전환하면 일반적으로 깨끗한 경로에 도달할 수 있습니다.

작동 방식

요청이 도착하면 웹사이트(또는 해당 안티봇 벤더)는 다음과 같은 신호를 사용하여 위험 점수를 계산합니다: 소스 IP 평판(데이터센터인지? 최근 남용 이력이 있는지? 국가는 어디인지?), 브라우저 핑거프린트(User-Agent, sec-ch-ua, 화면 크기, 플러그인), TLS 핸드셰이크 핑거프린트(JA3/JA4), 행동 신호(마우스 움직임, 키 입력 타이밍, 페이지 체류 시간), 그리고 쿠키/토큰의 과거 평판.

점수가 인간 신뢰 임계값보다 낮으면 시스템은 응답에 CAPTCHA 챌린지를 삽입합니다. 이 챌린지는 클라이언트가 작업(텍스트 읽기, 일치하는 이미지 클릭, 보이지 않는 행동 검사 통과)을 수행하고 토큰을 서버에 다시 제출하도록 요구합니다. 유효한 토큰이 없으면 서버는 이후의 요청을 거부합니다.

타입

텍스트 기반 CAPTCHA

사용자가 읽고 입력해야 하는 왜곡된 텍스트 이미지입니다. 고전적인 형태이며, OCR과 ML이 이를 풀 수 있게 되면서 오늘날에는 대부분 퇴출되었습니다.

이미지 그리드 CAPTCHA (reCAPTCHA v2)

'신호등 / 횡단보도 / 소화전이 포함된 사각형을 모두 선택하세요.' 보이지 않는 reCAPTCHA가 요청을 플래그로 지정할 때 대체 수단으로 흔히 사용됩니다.

보이지 않는 / 행동 기반 CAPTCHA (reCAPTCHA v3, Turnstile)

대부분의 경우 사용자 상호작용이 필요하지 않습니다. 시스템은 페이지와 방문자를 수동적으로 핑거프린팅하여 점수를 반환합니다 (0.0 = 봇, 1.0 = 사람). 어떤 임계값을 적용할지는 사이트가 결정합니다.

오디오 CAPTCHA

음성 숫자 또는 단어 챌린지, 대부분 시각적 CAPTCHA에 대한 접근성 대체 수단입니다.

hCaptcha

Cloudflare와 여러 개인정보 보호 중심 사이트에서 사용하는 reCAPTCHA의 대안입니다. 이미지 그리드 챌린지와 행동 신호를 결합한다는 점에서 기능적으로 유사하지만, 정책과 경제적 구조는 다릅니다.

일반적인 사용 사례

가입 및 문의 양식의 스팸 방지
크리덴셜 스터핑에 대한 로그인 스로틀링
댓글 / 포럼 봇 방어
예약봇 방어 (티켓, 스니커즈, 예약)
보호된 API 및 페이지에서의 스크래퍼 차단
자주 묻는 질문

자주 묻는 질문

다음에 대한 일반적인 질문 captcha.

트래픽이 '봇처럼 보임' 신호를 유발하고 있습니다. 가장 흔한 원인은 데이터센터 IP(즉시 플래그됨), 누락되거나 불일치하는 브라우저 헤더, 사이트가 예상하는 JavaScript 엔진 부재, 동일 IP에서의 폭발적인 요청 속도, 오래된 TLS 지문 등입니다. 레지덴셜 프록시로 전환하고, 최신 헤더를 전송하고, 요청 속도를 조절하세요.

해결보다 회피가 우선입니다. 레지덴셜 또는 모바일 프록시를 사용하고, 적절한 위생 관리로 IP를 로테이션하며(세션 클래스별로 새로운 IP, 최신 User-Agent, 일치하는 `sec-ch-ua` 헤더), 요청 속도를 몇 초 단위 지연으로 유지하고, TLS 핑거프린트가 올바른 HTTP 클라이언트를 사용하세요. CAPTCHA가 나타나면 해결하려 하지 말고 새로운 IP로 로테이션하세요.

대부분의 스크래핑 작업에서는 아니요. CAPTCHA 해결 서비스(2Captcha, Anti-Captcha 등)는 느리고 비용이 많이 들며, 트래픽 프로필이 잘못되었다는 신호입니다. 업스트림 신호(IP 유형, 헤더, 핑거프린트, 페이싱)를 수정하면 CAPTCHA는 대부분 발생하지 않게 됩니다. 솔버는 피할 수 없는 드문 챌린지에 대한 최후의 수단으로만 사용하세요.

이는 발생률을 극적으로 낮춥니다. 레지덴셜 IP만으로는 CAPTCHA가 사라지지 않으며, 행동 패턴과 핑거프린트도 중요합니다. 하지만 데이터센터에서 레지덴셜로 전환하는 것은 대체로 CAPTCHA 발생률을 가장 크게 개선할 수 있는 단일 요소입니다.

v2는 명시적인 'I'm not a robot' 체크박스와 이미지 그리드 대체 방식입니다. v3는 0.0–1.0 사이의 점수를 반환하는 보이지 않는 행동 기반 검사이며, 사이트가 임계값을 결정합니다. 오늘날 많은 사이트가 기본적으로 v3를 사용하며, v3 점수가 낮을 때만 v2 챌린지로 대체됩니다.

CAPTCHA를 푸는 행위 자체를 금지하는 법률은 없습니다. 합법성 여부는 무엇을 스크래핑하는지, 그리고 어떻게 하는지에 달려 있습니다. 공개 데이터를 스크래핑하는 것은 대체로 합법이지만, CAPTCHA 솔버를 사용하여 인증, 서비스 약관 통제, 또는 컴퓨터 오남용 관련 법률을 우회하는 것은 그렇지 않습니다. 사용량이 많은 특정 사례에 대해서는 법률 자문을 구하시기 바랍니다.