3가지 CAPTCHA 비교 (reCAPTCHA vs hCaptcha vs Turnstile)

choi·2026년 1월 6일
post-thumbnail

개요

웹 폼에서 봇을 막기 위해 CAPTCHA를 많이 씀. Django에서 사용할 수 있는 대표적인 CAPTCHA 3가지를 직접 테스트해봄.

CAPTCHA제공사Django 패키지
reCAPTCHA v2Googledjango-recaptcha
hCaptchaIntuition Machinesdjango-hcaptcha
TurnstileCloudflaredjango-turnstile

1. Google reCAPTCHA v2

Google에서 제공하는 가장 널리 사용되는 CAPTCHA 서비스임. "I'm not a robot" 체크박스 방식으로, 행동 분석 기반으로 봇을 탐지함. 의심스러운 경우 이미지 선택 챌린지가 나옴.

가장 높은 인지도와 풍부한 레퍼런스, 안정적인 서비스가 장점임. 다만 Google에 데이터가 전송되기 때문에 프라이버시 이슈가 있음.

from django_recaptcha.fields import ReCaptchaField
from django_recaptcha.widgets import ReCaptchaV2Checkbox

class MyForm(forms.Form):
    captcha = ReCaptchaField(widget=ReCaptchaV2Checkbox())

2. hCaptcha

reCAPTCHA의 프라이버시 친화적 대안으로 떠오른 서비스임. GDPR 준수가 잘 되어 있고, Cloudflare가 한때 이걸 기본 CAPTCHA 로 채택했었음. 무료 티어가 제공됨.

프라이버시 보호와 GDPR 친화적인 점이 장점임. 다만 reCAPTCHA보다 인지도가 낮고, 간혹 챌린지가 어려울 때가 있음.

from hcaptcha.fields import hCaptchaField

class MyForm(forms.Form):
    captcha = hCaptchaField()

3. Cloudflare Turnstile

Cloudflare에서 2022년에 출시한 최신 CAPTCHA임. 대부분의 경우 사용자 상호작용이 필요 없고, 완전 무료로 제공됨. 프라이버시 보호도 잘 되어 있음.

사용자 경험이 가장 좋고 완전 무료인 게 장점임. 다만 상대적으로 신생 서비스라 레퍼런스가 적음.

from turnstile.fields import TurnstileField

class MyForm(forms.Form):
    captcha = TurnstileField()

테스트 키 정보

개발 환경에서 테스트할 때 각 서비스에서 제공하는 테스트 키를 사용하면 됨. 테스트 키는 항상 검증을 통과함.

서비스Site KeySecret Key
reCAPTCHA6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe
hCaptcha10000000-ffff-ffff-ffff-0000000000010x0000000000000000000000000000000000000000
Turnstile1x00000000000000000000AA1x0000000000000000000000000000000AA

총평

항목reCAPTCHAhCaptchaTurnstile
UX보통보통최고
프라이버시낮음높음높음
가격무료~유료무료~유료완전 무료
레퍼런스많음보통적음
profile
늦게나마 정신을 차리려고 하는 개발 뭐시기하는 사람

0개의 댓글