본 프로젝트에서는 최소한의 사용자 정보만을 수집하여 서비스를 제공하고자 했습니다.
이는 사용자의 개인 정보 보호를 중시하고, 실제로 결제나 본인 인증과 같은 민감한 기능이 없는 서비스의 특성을 반영한 결정입니다.
하지만 중요한 정보를 수집하지 않더라도, 인증 기능은 반드시 필요합니다.
그 이유는, 악의적인 봇(bot)을 이용한 무차별 회원가입, 스팸 유저 생성, 사이트 도배와 같은 어뷰징 행위를 막기 위함입니다.
그렇다면 이런 공격을 어떻게 예방할 수 있을까요?
제가 생각한 간단한 방법은 다음 두 가지입니다
- 캡차(CAPTCHA)를 이용한 봇 가입 방지
- 이메일 인증을 통한 고유 식별 기반 가입 제한
캡차를 이용한 인증방식
캡차를 사용하면 이메일 없이도 간편하게 봇 가입을 막을 수 있어, 개인정보 수집 최소화라는 측면에서 사용자에게는 매우 좋은 접근입니다. 하지만 최근 AI 기술의 발전으로 인해, 캡차 우회 사례도 보고되고 있습니다. 실제로 AI가 "로봇이 아닙니다" 체크박스를 우회하거나, 이미지 선택형 캡차를 뚫는 뉴스도 본 적이 있습니다. 결국, 캡차만으로는 악성 사용자 또는 AI 봇을 완전히 차단하기 어렵습니다. 유지 관리가 소홀한 사이트의 경우, 불법 도박 사이트나 성인 사이트의 홍보글이 봇에 의해 대량으로 등록되는 사례도 많습니다. 이런 도배성 스팸은 사용자 경험을 크게 해치고, 사이트 품질을 떨어뜨리는 주요 원인입니다.
https://www.aipostkorea.com/news/articleView.html?idxno=3839
로봇이 아닙니다, 그런데 인간도 아닙니다…AI, '캡차' 테스트 100% 통과했다
스위스 취리히 연방 공과대학교 연구진이 '캡차(CAPTCHA)' 테스트를 100%의 확률로 통과하는 이미지 인식 인공지능(AI) 모델을 개발했다. 연구진은 최근 아카이브에 캡차 테스트를 완벽하게 통과하
www.aipostkorea.com
이메일 인증을 이용한 인증방식
이메일 인증은 고유한 메일 계정 기반으로 가입을 제한하는 방식이라, 봇의 자동 회원가입을 훨씬 더 강력하게 차단할 수 있습니다. 물론 이메일도 여러 개 생성할 수 있지만, 실제 메일함에 접속해 인증코드를 확인해야 하는 절차는 AI 봇이나 매크로가 뚫기 매우 어렵다는게 제 생각이며 또한, 인증 실패 시 가입을 막거나, 메일 발송 횟수 제한 등 다양한 제어 장치도 도입할 수 있을 것 같습니다
예시:
- 인증코드 3회 틀릴 경우 1시간 제한
- 같은 이메일로 하루 3회 이상 요청 시 차단
- Redis 등 캐시 서버를 통해 인증코드 TTL 관리 (예: 5분 유효)
이처럼 이메일 인증 방식은 보안성과 통제력 측면에서 캡차보다 우수하며, 스팸 유저를 효과적으로 관리할 수 있습니다.
결과적으로, 이번 프로젝트에서는 이메일 인증 방식을 채택하여 간단하면서도 효과적인 사용자 인증을 구현하였는데요 이 방식은 사용자에게는 과한 개인정보 입력 없이도 서비스를 이용할 수 있게 해주면서 개발자 입장에서는 봇 가입 방지와 스팸 차단을 효율적으로 처리할 수 있는 장점을 제공할 수 있습니다 이메일 인증은 경량화된 서비스에 적합하면서도 안전한 인증 수단이라는 점에서 좋은 선택이었다고 개인적으로 생각합니다