[Python] 호기심에 만들어본 블로그 조회수 자동화 봇… 그리고 영구 삭제 후기
안녕하세요. 오늘만 벌써 두 번째 포스팅이네요 ㅎㅎ
방금 전 AI 성능 비교 포스팅을 올리고 나서, 습관적으로 방문자 통계를 새로고침하고 있었습니다. 그러다 문득 자동차 SW 검증 스크립트를 짜던 직업병이 도지더군요.
“이거 그냥 파이썬으로 HTTP 요청 무한으로 쏘거나 매크로 돌리면 숫자가 올라가나?” 하는 나쁜(?) 상상이 시작된 거죠 –;
결론부터 말씀드리면, 호기심을 참지 못하고 1시간 만에 뚝딱 만들어서 돌려봤습니다. 그리고 숫자가 올라가는 것만 딱 확인한 뒤, 미련 없이 ‘Shift + Delete’로 프로젝트 폴더를 날려버렸습니다.
오늘은 제가 이 봇을 어떤 원리로 설계했는지 간단히 짚어보고, 왜 이런 짓을 하면 블로그가 망가지는지에 대해 썰을 풀어보겠습니다. (기술적인 원리 파악용으로만 봐주세요!)
(.. ) 조회수 카운팅, 서버는 어떻게 판단할까?
블로그나 포털 사이트는 생각보다 똑똑합니다. 단순히 F5(새로고침)만 연타한다고 숫자가 무한정 올라가진 않죠. 보통 아래 정보들을 조합해서 ‘새로운 방문자’인지 판단합니다.
- IP 주소: 어디서 접속했나?
- User-Agent: 어떤 기기/브라우저로 들어왔나?
- Cookie & Session: 예전에 방문한 기록이 남아있나?
즉, 봇이 서버를 속이려면 “나는 방금 전 들어온 놈과 완전히 다른 사람이야!”라는 것을 증명해야 합니다.
핵심 알고리즘 (Conceptual Logic)
이 세 가지를 속이기 위해 제가 구상했던 봇의 핵심 파이프라인은 다음과 같았습니다.
1. User-Agent 위장
매번 똑같은 브라우저로 접속하면 봇인 게 금방 들통납니다. 파이썬 라이브러리를 써서 접속할 때마다 ‘아이폰’, ‘갤럭시’, ‘맥북’ 등 기기 정보를 랜덤하게 바꿔줍니다.
# 가짜 헤더 정보 생성 (개념)
from fake_useragent import UserAgent
ua = UserAgent()
headers = {
'user_agent': ua.random,
'referer': '[https://www.google.com/](https://www.google.com/)' # 구글 검색으로 들어온 척 위장
}
2. IP 세탁 (Proxy 활용)
집 IP로 100번 접속해봐야 1명으로 잡힙니다. 그래서 무료 프록시(Proxy) 서버 리스트를 긁어오거나 대역을 바꿔가며 접속 IP를 계속 세탁해주는 과정이 필요합니다.
3. 인간다운(?) 행동 모사 (Selenium)
요즘 검색 엔진 로직은 단순히 페이지를 호출하고 바로 나가버리면 ‘봇’으로 간주하고 조회수를 무효화합니다. 그래서 실제 사람이 마우스 휠을 내리는 것처럼 스크롤 이벤트를 발생시키고, 10~20초 정도 글을 읽는 척 대기하는 로직이 핵심입니다.
동작 확인 후 1초의 망설임 없이 삭제한 이유
위 로직들을 엮어서 제 블로그 주소를 넣고 돌려봤습니다.
로그창에 [성공] 메시지가 뜨더니, 구글 애널리틱스 실시간 접속자 수가 1명에서 15명으로 확 튀어 오르더군요.
“오, 진짜 되네?” 하는 성취감은 딱 5분짜리였습니다. 저는 바로 정지 버튼을 누르고 코드를 폐기했습니다. 이유는 명확합니다.
1. 포털 알고리즘은 나보다 훨씬 똑똑하다. 제가 짠 조잡한 프록시 IP 세탁이나 스크롤 매크로는 당장 숫자는 올려줄지 몰라도, 결국 패턴이 다 분석됩니다. 비정상적인 체류 시간과 이탈률 패턴이 쌓이면 제 블로그는 ‘저품질’로 낙인찍히고, 검색 결과에서 영원히 증발하게 됩니다. 조회수 좀 늘리려다 블로그 자체를 버리게 되는 거죠 ㅜㅜ
2. 개발자로서의 자존심 문제 굴착기 제어 로직 4년 개발하고, 지금은 자동차 SW 검증 업무를 하면서 수만 줄의 코드를 밤새워 검토하고 있습니다. 그런데 정작 내 블로그는 매크로로 숫자를 뻥튀기한다? 제 스스로가 용납이 안 되더라고요. 텅 빈 조회수 1,000보다, 제 글을 읽고 진짜 도움을 받았다는 ‘찐 조회수 1’이 훨씬 가치 있다는 걸 깨달았습니다.
마무리하며
결국 시스템의 허점을 찌르는 ‘어뷰징’은 기술적인 구현 재미는 있을지 몰라도, 장기적으로는 내 살을 깎아 먹는 행위입니다. 혹시라도 저처럼 방문자 수에 목말라 파이썬 스크립트를 만지작거리고 계신 분이 있다면, 당장 에디터를 끄고 양질의 포스팅을 하나 더 작성하시는 것을 강력히 추천합니다! ^^
오늘의 짧은 일탈(?) 후기는 여기까지입니다. 다음번엔 진짜 실무에 도움 되는 유익한 파이썬 자동화 툴 이야기로 돌아오겠습니다. (.. )v