locale(7) — 크롤러는 어느 나라에서 오는가
같은 URL이 사용자 국적에 따라 다른 페이지를...
전 세계 웹 트래픽을 한 번 펼쳐 놓고 들여다보면, 생각보다 훨씬 큰 몫을 사람이 아니라 봇이 차지하고 있다는 데에 새삼 놀라게 되는데, 근래의 업계 보고서로는 2025년 자동화 트래픽이 전체의 53%를 넘겼다고 한다[1]. 물론 그 봇들이 다 같은 봇은 아니어서, 검색엔진의 크롤러처럼 제 신원과 목적을 밝히고 다니는 valid한 것들부터, DDoS 공격처럼 아예 문 앞에서 걷어내야 하는 invalid한 트래픽까지 한데 섞여 있다.
오랫동안 봇이라 하면 검색엔진이 세상의 문서를 미리 훑어 두려 도는 crawl이 대부분이었는데, 요즘은 누군가 무언가를 물어보면 그 자리에서 웹을 뒤져 답을 짜내는 fetch가 빠르게 늘고 있다는 조사들이 보이고, 이는 요즘 LLM 서비스들이 사용자의 질문 앞에서 답을 구하느라 실시간으로 여기저기를 들추는 그 과정이 반영되었음이리라. 여기서 다시 그 AI 크롤을 목적으로 갈라 보면 절반 남짓(52.3%)은 모델 학습용 수집이고, 검색 색인용이 10.1%, 여러 목적이 섞인 크롤이 3분의 1쯤이며, 정작 사람의 물음에 그 자리에서 답하러 오는 fetch는 2.6%에 그친다는 집계가 있으니[2], 긁어 가는 일과 답하러 오는 일은 앞으로도 한동안 같이 늘어갈 것이다. 예전 검색이라면 결과가 한 박자라도 늦으면 큰일이었는데, 이제는 live fetch를 대행해 주는 것을 기꺼이 기다리고 있다는 것도 꽤나 달라진 풍경이다.
그런데 봇이 어디서 들어오느냐를 따지는 일은 LLM이 나오고서야 생긴 게 아니다. 한국 검색을 맡아 일하던 시절, google.co.kr과 google.com이 하나로 합쳐지던 무렵에도 같은 쿼리를 같은 사람이 넣더라도 그가 한국에 있느냐 미국에 있느냐에 따라 검색 결과를 어디까지 다르게 내어 주어야 하는가 하는 질문이 있었고, 그중 가장 높은 우선순위 중 하나는 결과를 눌렀을 때 not found나 not allowed가 떠서는 안 된다는 것이었다. walled content라 담장에 막히거나, 공개 설정이 아닌 post라 들어갈 수 없거나, 사이트 자체가 geo-block으로 한국 사용자에게 아예 닫혀 있다면 거의 dead link와 같은 수준으로 검색 결과에서 피하려는 일이었다.
같은 URL인데도 사이트가 접속한 위치를 슬쩍 보고 다른 페이지를 내미는 geo-cloaking은 생각보다 흔했다. 미국에서 긁어 온 페이지를 한국 사용자에게 그대로 건네면 그가 막상 눌러 마주할 화면과 영 딴판인 경우가 생기곤 했고, 그래서 한국 사용자에게 줄 결과는 원칙적으로는 한국에서 돌린 crawler가 모아 온 것이어야 했다. 나라를 가리지 않는 사이트의 경우는 상관이 없지만, 안에 로직이 있는 경우, 같은 구글의 크롤봇이라도 사이트들이 미국에서 출발한 것과 한국에서 출발한 것을 가려 대했기에, 결국 나라별로 크롤러를 운영하는 것으로 답을 삼았다. 여러모로 자원을 '투자'해야 하는 것이었고, 여러 가지 설득의 과정이 필요했으며, 아쉬운 상황들이 꽤 많이 벌어졌다.
한동안은 한국의 좋은 사이트를 찾아내 하나하나 crawl quota를 확보하는 일을 맡기도 했는데, 어려웠던 기억들이 많다. 그 무렵엔 외국 회사가 한국 사이트의 콘텐츠를 빼 간다는 선입견이 공개된 사이트에까지 적잖이 깔려 있어 문을 두드리는 일부터 조심스러웠고, 검색이란 광고처럼 돈을 받고 자리를 내주는 게 아니라 사용자의 클릭이라는 선택을 받아야 비로소 값이 매겨지는 것이라 어느 사이트를 골라 넣느냐가 그만큼 무거웠으며, 정작 한국 사이트들은 w3 같은 웹 표준을 충분히 따르지 않는 경우가 많아 crawler가 그 안을 온전히 읽어 내는 것조차 수월치 않았다.
물론 이렇게 문을 가려 여는 데에는 사이트마다 제 사정이 있다. 미국의 보험 사이트가 한국에서의 접속을 막아 두는 것도, 넷플릭스가 나라마다 현지에서 볼 수 있는 것들만 보여 주는 것도 라이선스와 규제의 사정이다. 그런데 이 가림을 공공 데이터나 잘 알리고 싶은 것에까지 거꾸로 적용하면 이야기가 달라진다. 우리 세금으로 만든 것이니 외국에는 보여 주면 안 된다는 식의 접근은, 크롤러가 세상을 읽어 가는 시대에는 스스로 문을 걸어 잠그는 쇄국에 가까워진다. 그렇다고 모든 사이트를 모든 나라에서 긁을 수는 없는 노릇이라, 어떤 사이트에 그만한 수고와 트래픽을 들일 것인가 하는 저울질이 따라왔고, 그것은 자연스레 그 사이트가 그럴 값어치가 있는가 하는 site quality의 판단과 맞물리곤 했다.
게다가 이름이 조금씩 알려지기 시작하면 어디서 오는지도 모를 crawler와 bot들이 무자비하게 문을 두드려 대고, 검색엔진에게는 더없이 귀한 자산인 바로 그 크롤이 정작 사이트 주인에게는 고스란히 유지 비용이자 관리 부담으로 돌아오곤 했다. 실제로 요즘의 한 실측으로는 사이트 문을 두드리는 트래픽 가운데 신원과 목적이 확인된 봇은 1%뿐이고 48%는 정체를 밝히지 않은 봇이라 하고[3], 2025년 상반기에만 2,780만 건의 DDoS 공격이 완화되었는데 이는 2024년 한 해 전체의 1.3배에 해당한다[4]. 누군가에게는 세상에 닿는 통로가, 누군가에게는 감당해야 할 청구서가 되는 것이다.
그 시절 SEO나 웹 표준 같은 것들은 아무나 넘기 어려운 장벽이었고 더러는 꼼수의 영역이기도 했는데, AI의 도움으로 표준에 맞는 페이지를 짓는 일이 더 이상 장벽도 꼼수도 아니게 된 지금은, 그 자리에 AEO, GEO 같은 새 패러다임의 이름들이 오르내리고 있다. 돌이켜 보면 그때 한국 사이트들이 구글의 크롤러에 품던 그 경계심은, 지금 온 세상이 AI 학습용 크롤러를 두고 벌이는 실랑이의 예고편이었던 셈이다. 사이트들의 기대치는 그대로이겠지만, 다른 한편으로 소버린이 화두인 지금도 정보 공개는 해외 유출로 취급되고 있음이 안타깝다.
봇이 사람보다 더 많이 웹을 돌아다니고 그 봇마저 crawl과 fetch로 갈라지는 지금은, 크롤러가 어디서 무엇을 긁어 오는가 하는 그 오래된 물음이 오히려 더 무거워졌다. AI가 그 자리에서 fetch해 온 페이지로 답을 지어 주는 시대에, 그 페이지가 정작 질문한 사람의 자리에서는 닿을 수 없는 것이라면 그 답은 누구의 자리에서 본 세상인가. 전통적인 검색에서 한 발 떠난 지 오래인 지금도, 클릭하면 보여야 한다던 그 오래된 원칙을 누가 이어받고 있는지 궁금해지곤 한다.
참고 문헌
[1] Thales(Imperva). "Bad Bot Report 2026: Bots in the Agentic Age." Imperva Blog, 2026. https://www.imperva.com/blog/bad-bot-report-2026-bots-agentic-age/
[2] Cloudflare Radar — AI Insights (2026-06-22까지 28일 집계: AI 크롤러 요청 중 학습용 52.3%, 검색 색인용 10.1%, 실시간 user action 2.6%, 복합 목적 34.2%). 정리: TechnologyChecker, "AI Crawler Statistics in 2026." https://technologychecker.io/blog/ai-crawler-statistics
[3] Fastly 트래픽 분석(2026.1, 고객 애플리케이션·API 요청 수조 건 기준: 사람 51%, 확인된 봇 1%, 미확인 봇 48%). 보도: SC Media, "Report: 99% of bot traffic is unwanted." https://www.scworld.com/news/report-99-of-bot-traffic-is-unwanted-as-bots-make-up-49-of-traffic
[4] Cloudflare. "DDoS Threat Report, Q2 2025"(2025년 상반기 2,780만 건 완화 = 2024년 전체의 130%, 초대형 공격 일평균 71건, HTTP DDoS의 70%+가 알려진 봇넷). 보도: Cyber Risk Leaders. https://cyberriskleaders.com/ddos-report-reveals-a-40-yoy-increase-and-largest-attack-ever-recorded/
원문은 브런치에 있습니다 → https://brunch.co.kr/@chaesang/191
