웹이 개방적으로 잘 운영되도록 하려면 콘텐츠 제작자가 자신의 데이터가 어떻게 사용되기를 원하는지 알리는 동시에 개방적인 액세스를 허용하는 더 많은 도구가 필요합니다. 오늘날에는 이러한 균형이 너무 제한적입니다. 웹 사이트 운영자는 콘텐츠를 웹에 공개하여 사람들이 원치 않는 목적으로 사용할 위험을 감수하거나, 콘텐츠를 로그인 후에만 이용할 수 있도록 해서 방문객을 제한할 수 있습니다.
오늘날 크롤러와 데이터 스크래퍼가 자신의 콘텐츠를 어떻게 사용하는지에 대한 고객의 우려를 해결하기 위해, 저희는 콘텐츠 신호 정책을 도입합니다. 이 정책이 robots.txt에 새로 추가됨에 따라 콘텐츠에 액세스한 후 콘텐츠 사용 방법에 대한 선호도를 표현할 수 있게 되었습니다.
robots.txt
가 현재 하는 일과 하지 않는 일
robots.txt는 로봇 제외 프로토콜을 구현하는 도메인에서 호스팅되는 일반 텍스트 파일입니다. 이를 통해 어떤 크롤러와 봇이 귀 사이트의 어느 부분에 접근할 수 있는지 지시할 수 있습니다. 많은 크롤러와 일부 봇은 robots.txt 파일을 준수하지만, 모든 크롤러와 모든 봇이 준수하지는 않습니다.
예를 들어, 모든 크롤러가 사이트의 모든 부분에 접근할 수 있도록 하려면, 다음 내용을 포함한 robots.txt 파일을 호스팅할 수 있습니다.
User-agent: *
Allow: /
사용자 에이전트는 브라우저나 봇이 액세스하는 리소스에서 자신이 식별되도록 하는 방법입니다. 이 경우 별표를 사용하면 방문자에게 모든 사용자 에이전트가 어떤 장치나 브라우저에서도 콘텐츠에 접근할 수 있음을 표시하게 됩니다. Allow
필드에 '/'를 사용하면 방문자에게 사이트의 모든 부분에 액세스할 수 있음을 표시하게 됩니다.
robots.txt
파일에서는 # 기호 뒤에 문자를 추가하여 주석을 포함할 수도 있습니다. 봇과 기계는 이러한 주석을 무시하지만, 이는 파일을 검토하는 사람에게 더 많은 사람이 읽을 수 있는 메모를 남기는 한 가지 방법입니다. 다음은 한 가지 예입니다.
# .__________________________.
# | .___________________. |==|
# | | ................. | | |
# | | ::[ Dear robot ]: | | |
# | | ::::[ be nice ]:: | | |
# | | ::::::::::::::::: | | |
# | | ::::::::::::::::: | | |
# | | ::::::::::::::::: | | |
# | | ::::::::::::::::: | | ,|
# | !___________________! |(c|
# !_______________________!__!
# / \
# / [][][][][][][][][][][][][] \
# / [][][][][][][][][][][][][][] \
#( [][][][][____________][][][][] )
# \ ------------------------------ /
# \______________________________/
웹 사이트 소유자는 특정 사용자 에이전트(예: 특정 봇 사용자 에이전트 또는 브라우저 사용자 에이전트만 허용하는 경우)를 나열하고 사이트의 어떤 부분이 크롤링이 허용되지 않는지 명시하여 robots.txt
를 더 구체적으로 만들 수 있습니다. 아래 예시는 봇에게 아카이브 경로를 크롤링하지 않도록 지시합니다.
User-agent: *
Disallow: /archives/
이 예시는 Google의 봇에게 아카이브 경로를 크롤링하지 말라고 보다 구체적으로 지시합니다.
User-agent: Googlebot
Disallow: /archives/
이를 통해 어떤 크롤러가 허용되는지, 사이트의 어느 부분에 대한 접근 권한이 있는지 지정할 수 있습니다. 그러나 그들이 콘텐츠에 액세스한 후에 무엇을 할 수 있는지 알려주지는 않습니다. 많은 사람이 깨달았듯이 데이터에 액세스한 후에도 데이터를 사용할 수 있는 방법에 대한 교통 규칙을 신호로 표시하는 표준적이고 기계가 읽을 수 있는 방법이 필요합니다.
콘텐츠 신호 정책은 크롤러가 귀하의 콘텐츠에 대해 수행할 수 있는 작업과 수행할 수 없는 작업에 대한 선호도를 표현할 수 있도록 허용합니다.
Cloudflare에서 지금 콘텐츠 신호 정책을 시작한 이유는?
인터넷에서 방대한 양의 데이터를 매일 수집하는 회사들이 있습니다. 이러한 데이터 스크래퍼를 제공하는 웹 사이트 운영자는 특히 보상을 받지 못하는 경우 실질적인 비용을 지불해야 합니다. 우리는 전통적인 무임 승차자 문제를 겪고 있습니다. 상황은 더욱 악화될 것입니다. 2029년 말이면 봇 트래픽이 인터넷에서 인간 트래픽을 초과할 것으로 예상되며, 2031년이면 봇 활동만으로도 현재 인터넷 트래픽의 총합을 초과할 것으로 예상됩니다.
인터넷의 사실상의 기본 설정에 따라 이것이 가능해졌습니다. 이전에는 데이터가 수집되었지만, 콘텐츠 크리에이터는 그 대가로 수익을 창출할 수 있는 추천 트래픽이나 최소한 해당 크리에이터를 작성자로 명시한 일종의 저작권자 표기권을 얻는 것이 일반적이었습니다. 블로깅 초창기의 링크 백을 생각해보세요. 링크 백은 저작물의 원래 크리에이터를 인정하는 방식이었습니다. 돈이 오가지는 않았지만, 그 저작권자 표기에 따라 미래의 발견이 촉진되었고 본질적인 가치가 부여되었습니다. 이 규범은 MIT, Creative Commons 등의 많은 허용적 라이선스에 내재되어 있으며, 그러한 라이선스에 따라 저작권자가 표기되어야 합니다.
이제 세상이 바뀌었습니다. 스크래핑된 콘텐츠가 때로는 원 크리에이터와 경쟁하는 데 이용되기도 합니다. 이로 인해 많은 사람이 불가능한 선택에 직면하게 되었습니다. 콘텐츠와 데이터에 대한 액세스를 차단할 것인가, 아니면 추천이 줄어들고 저작권자 표기가 최소화되는 현실을 받아들일 것인가? 유일한 해결책이 전자일 경우, 웹에서의 아이디어의 자유로운 전파가 방해받고, AI 생태계에 새로 진입하는 이들은 새로운 모델을 학습시키려는 노력에 대해 부당한 불이익을 받게 됩니다.
Cloudflare 콘텐츠 신호 정책
콘텐츠 신호 정책은 웹 사이트 운영자의 robots.txt 파일에 통합됩니다. 사람이 읽을 수 있는 텍스트로 # 기호 뒤에 나와 있어 주석으로 지정합니다. 이 정책에서는 검색, AI 입력, AI 학습이라는 세 가지 콘텐츠 신호와 크롤러와의 관련성을 정의합니다.
그런 다음 웹 사이트 운영자는 선택적으로 기계가 읽을 수 있는 콘텐츠 신호를 통해 자신의 선호를 표현할 수 있습니다.
# As a condition of accessing this website, you agree to abide by the following content signals:
# (a) If a content-signal = yes, you may collect content for the corresponding use.
# (b) If a content-signal = no, you may not collect content for the corresponding use.
# (c) If the website operator does not include a content signal for a corresponding use, the website operator neither grants nor restricts permission via content signal with respect to the corresponding use.
# The content signals and their meanings are:
# search: building a search index and providing search results (e.g., returning hyperlinks and short excerpts from your website's contents). Search does not include providing AI-generated search summaries.
# ai-input: inputting content into one or more AI models (e.g., retrieval augmented generation, grounding, or other real-time taking of content for generative AI search answers).
# ai-train: training or fine-tuning AI models.
# ANY RESTRICTIONS EXPRESSED VIA CONTENT SIGNALS ARE EXPRESS RESERVATIONS OF RIGHTS UNDER ARTICLE 4 OF THE EUROPEAN UNION DIRECTIVE 2019/790 ON COPYRIGHT AND RELATED RIGHTS IN THE DIGITAL SINGLE MARKET.
이 텍스트는 세 부분으로 나뉩니다.
첫 번째 단락에서는 기업에게 주어진 콘텐츠 신호를 해석하는 방법이 설명됩니다. '예'는 진행을 의미하고, '아니요'는 중지를 의미하며, 신호가 없으면 의미가 없습니다. 그 마지막 중립적인 옵션은 중요합니다. 이를 통해 웹 사이트 운영자는 다른 콘텐츠 신호에 대한 선호를 요구하지 않고도 하나의 콘텐츠 신호에 대한 선호를 표현할 수 있습니다.
두 번째 단락에서는 콘텐츠 신호 어휘가 정의됩니다. 저희는 콘텐츠에 액세스하는 모든 사람이 쉽게 따를 수 있도록 신호를 단순하게 유지했습니다.
마지막 단락에서는 데이터 액세스를 자동화하는 사람에게 이러한 콘텐츠 신호가 다양한 관할권에서 법적 권리를 가질 수 있음을 상기시킵니다.
그런 다음 웹 사이트 운영자는 쉼표로 구분된 '예' 또는 '아니요' 구문을 사용하여 기계가 읽을 수 있는 텍스트로 특정 선호를 알릴 수 있습니다. 웹 사이트 운영자가 검색을 허용하고, 학습을 금지하며, AI 입력에 대한 선호를 밝히지 않은 경우, robots.txt에 다음을 포함할 수 있습니다.
User-Agent: *
Content-Signal: search=yes, ai-train=no
Allow: /
웹 사이트 운영자가 위의 예시처럼 AI 입력의 콘텐츠 신호를 비워두더라도, 그것이 해당 사용에 대한 선호가 없다는 것을 의미하지는 않습니다. 이는 단지 robots.txt 파일의 이 부분을 사용하여 이를 표현하지 않았다는 것을 의미합니다.
웹 사이트에 콘텐츠 신호를 추가하는 방법
robots.txt 파일 구성 방법을 이미 알고 있다면, 위의 콘텐츠 신호 정책을 추가하고 콘텐츠 신호를 통해 기본 설정을 정의하여 콘텐츠 신호를 쉽게 배포할 수 있습니다.
저희는 콘텐츠 신호를 간편하게 도입하고자 합니다. Cloudflare 고객은 이미 380만 개 이상의 도메인에 대해 관리형 robots.txt 기능을 활성화했습니다. 그렇게 함으로써, 이 고객들은 해당 도메인의 콘텐츠가 AI 학습에 사용되지 않기를 원한다는 점을 기업들에 알리기로 선택했습니다. 이 고객들을 위해, 저희는 이미 그들을 대신하여 제공하고 있는 robots.txt 파일을 업데이트하여 콘텐츠 신호 정책과 다음 신호를 포함하려 합니다.
Content-Signal: search=yes, ai-train=no
저희는 관리형 robots.txt 고객에게 'AI 입력' 신호를 제공하지 않을 것입니다. 저희는 그 신호에 대한 그들의 선호를 알지 못하며, 추측하고 싶지 않습니다.
오늘부터 기존 robots.txt 파일이 없는 모든 무료 고객 영역에 대해 사람이 읽을 수 있는 주석이 달린 콘텐츠 신호 정책을 제공할 예정입니다. 이는 실제로는 해당 도메인의 robots.txt에 대한 요청이 콘텐츠 신호가 무엇인지 정의하는 주석을 반환한다는 것을 의미합니다. 이 주석은 크롤러에 의해 무시됩니다. 중요한 점은 이 주석에 Allow 또는 Disallow 지시문이 포함되지 않으며 실제 콘텐츠 신호가 제공되지 않는다는 것입니다. 사용자가 준비가 되었을 때 실제 선호를 선택하고 표현하는 것은 그 사용자입니다. 기존에 robots.txt 파일이 있는 고객에 대해서는 변경 사항이 없습니다.
무료 요금제를 사용하는 영역에서는 Cloudflare 대시보드의 보안 설정 섹션과 개요 섹션에서 콘텐츠 신호 정책을 해제할 수 있습니다.
신호 콘텐츠를 직접 생성하려면, ContentSignals.org에서 Cloudflare에서 생성한 텍스트를 복사하여 robots.txt
파일에 붙여넣거나 Cloudflare에 Deploy를 통해 즉시 배포하면 됩니다. 학습을 허용하지 않는 선호를 표현하고 싶은 경우, Cloudflare의 관리형 robots.txt 기능을 활성화할 수도 있습니다.
콘텐츠 신호는 선호를 표현한다는 점을 기억하는 것이 중요합니다. 이는 스크래핑에 대한 기술적 대응책이 아닙니다. 일부 기업에서는 콘텐츠 신호를 단순히 무시할 수도 있습니다. 다른 사람이 내 콘텐츠를 어떻게 활용하는지 제어하고자 하는 웹 사이트 게시자인 경우, 콘텐츠 신호를 WAF 규칙 및 봇 관리와 결합하는 것이 가장 좋다고 생각합니다.
이러한 Cloudflare 기능은 더 쉽게 사용하도록 하는 것이 목표지만, 저희는 누구든 어디서나 이를 채택하도록 권장하고자 합니다. 이러한 관행을 장려하기 위해 저희는 누구나 자유롭게 구현하고 사용할 수 있는 CC0 라이선스에 따라 이 정책을 발표합니다.
다음 단계
어떤 크롤러를 허용할지, 차단할지 결정하는 것은 전적으로 고객에게 달려 있습니다. 어떤 사람들은 초지능을 위해 글을 쓰고 싶어하고, 다른 사람들은 더 많은 제어 능력을 원합니다. 저희는 그들이 결정해야 한다고 생각합니다.
콘텐츠 신호를 통해 누구나 방문객이 자신의 콘텐츠에 액세스한 후 어떻게 사용하기를 원하는지 표현할 수 있습니다. 선호를 표현하는 기능을 활성화하는 것이 시급했습니다.
저희는 해야 할 일이 더 많다는 것을 알고 있습니다. 도로 규칙에 대한 신호는 다른 사람들이 그 규칙을 인식할 때만 효과가 있습니다. 그렇기 때문에 저희는 표준 기관과 계속해서 협력하여 고객의 요구를 충족하고 광범위한 인터넷 커뮤니티에서 인정받는 솔루션을 개발하고 표준화할 계획입니다.
이러한 노력에 여러분도 동참해 주시기를 바랍니다. 열린 웹을 위해 싸우는 것은 가치가 있는 일이니까요.