나는 데이비드 피어스(David Pierce)를 그가 와이어드(Wired)에서 글을 쓸 때 처음 알게 되었다. 미국 테크 언론계에는 군더더기 없이 말하고 글을 쓰는 사람들이 많지만, 그중에도 눈에 띄는 사람이 피어스다. 영상에 나와서 제품을 설명해도 불필요한 기교를 부리지 않고 독자들이 원하는 핵심만을 짚는다. 더 뛰어난 건, 복잡한 개념이라서 다른 테크 기자들이 대충 얼버무리고 넘어가거나 생략하는 내용을 피하지 않고 가져와서 쉽고 재미있게 설명하는 능력이다.

오늘 그의 글을 하나 소개하려 한다. 최근에 나온 'The text file that runs the internet (인터넷을 돌아가게 하는 텍스트 파일).' 뉴욕타임즈나 BBC 같은 미디어 기업들이 자사의 콘텐츠를 오픈AI가 가져가서 AI 모델 훈련에 사용하는 것을 금지했다는 얘기는 많이 알려졌지만, 그런 일이 일어나는 기술적인 설명은 흔하지 않다. 피어스가 이걸 누구나 이해할 수 있는 말로 설명했다.

데이비드 피어스 (이미지 출처: Vox Media)

지난 30년 동안 인터넷이 혼란에 빠지지 않도록 지켜준 아주 작은 텍스트 파일이 있다. 이 파일은 특별한 법적, 기술적 효력을 갖고 있지도 않고, 그렇다고 복잡한 것도 아니다. 이 파일은 말하자면 초기 인터넷을 만든 선구자들이 상대방이 바라는 바를 존중하고, 인터넷을 모두에게 이익이 되는 방향으로 발전시키는, 일종의 신사협정과 같은 역할을 한다. 코드 형태로 만들어진 인터넷의 작은 헌법인 셈이다.

이 파일의 이름은 robots.txt이고, 대개는 (웹사이트 이름).com/robots.txt 에서 확인할 수 있다. (대개 아래와 같은 모습을 하고 있다.)

미국 공영 라디오 NPR의 robots.txt 페이지 일부

이 파일은 웹사이트—거대 기업의 웹사이트일 수도, 작은 요리 블로그일 수도 있다— 의 운영자에게 누구의 방문을 허용하고 불허할지 결정할 수 있게 해준다. 어떤 검색 엔진이 내 웹사이트를 색인화(index)하게 허용할 것인지, 어떤 아카이브가 내 웹사이트의 특정 버전을 가져가 저장하게 할지, 경쟁 사이트가 내 페이지를 꾸준히 지켜보며 참고하게 할지 등등을 이 작은 텍스트 파일을 사용해 결정하고, 웹에서 밝힐 수 있다.

완벽한 시스템은 아니었지만, 작동했다. 지금은 상황이 달라졌지만, 적어도 과거에는 그랬다. 지난 수십 년 동안 robots.txt의 관심은 검색 엔진에 있었다. 검색 엔진이 내 웹사이트를 긁어갈 수 있게 허용하는 대신, 검색 엔진은 내게 트래픽을 보내 줬다. 하지만 인공지능(AI)이 등장하면서 상황이 바뀌었다. AI 기업들은 웹사이트들을 돌아다니며 그곳의 데이터를 사용해 막대한 AI 훈련용 데이터 세트를 구축한다. 그리고 그걸 이용해 대형언어모델(LLM)과 AI 제품을 만들어 낸다. 하지만 그렇게 이용한 웹사이트를 전혀 언급하지 않는다. 이 파일, robots.txt가 하는 일은 이렇게 주고받는 거래(give and take)를 관장하는 것이지만, AI기업들은 받기만 하고 주는 게 없다.

그런데 현재 AI로 엄청난 돈이 몰리고 있고, 최첨단 AI 기술의 변화가 너무 빨라서 웹사이트의 운영자들은 이런 변화를 미처 따라잡지 못하고 있다. 무엇보다 robots.txt가 대표하는 근본적인 합의—이 합의는 오래도록 그저 "서로 잘 지내자"라는 원칙 이상이 아니었다—역시 변화를 따라가지 못하고 있다.

(Image by Stable Diffusion)

인터넷 초창기, 웹을 돌아다니는 로봇들은 스파이더(spiders), 크롤러(crawlers), 웜(worms), 웹앤트(webants), 웹크롤러(web crawlers) 같은 다양한 이름으로 불렸다. 이런 로봇들은 대체로 좋은 의도를 가지고 만들어졌다. 이를 제작한 사람들은 관심 가는 새로운 웹사이트를 찾아 디렉토리를 만들거나, 자기가 만든 웹사이트가 제대로 작동하도록 하려는, 혹은 연구용 데이터베이스를 만들려는 개발자들이었다. 이때가 1993년 경이었다. 검색 엔진이 보편화되기 한참 전의 일이고, 인터넷의 대부분을 컴퓨터 하드드라이브에 담을 수 있던 시절이다.

당시만 해도 문제는 단 하나, 트래픽이었다. 인터넷 접근은 느렸고, 웹사이트를 운영하는 쪽이나 방문하는 쪽 모두 비용이 많이 드는 일이었다. 당시에는 사람들이 자기가 가진 컴퓨터에 웹사이트를 직접 호스팅하는 일이 흔했는데, 그렇게 하거나 혹은 대충 만든 서버 소프트웨어로 가정용 인터넷을 통해 웹사이트를 운영하다 보니 웹을 돌아다니던 로봇 몇 개가 불쑥 찾아와 웹페이지를 열심히 긁어가기 시작하면 문제가 생겼고, 그달의 전화요금이 급증했다.

1994년, 개발자로 활동하던 소프트웨어 엔지니어 마틴 코스터(Martijn Koster)가 몇 명의 웹 관리자, 개발자들과 함께 힘을 합쳐 몇 달 동안 작업한 끝에 '로봇 배제 프로토콜(Robots Exclusion Protocol)'이라는 솔루션을 만들어냈다. 이들의 제안은 복잡하지 않았다. 만약 특정 웹사이트의 개발자들이 어떤 로봇은 이 웹사이트를 긁어 갈 수 없다거나, 어떤 페이지는 로봇이 접근할 수 없다고 일반 텍스트 파일에 적어두라는 것이었다. (다시 말하지만, 웹에 존재하는 모든 로봇의 리스트를 만들 수 있던 시절이었기 때문에 코스터를 비롯한 엔지니어들이 그 작업을 한 것이다.) 로봇을 만드는 사람들도 쉽게 이해할 수 있었다. 그 텍스트 파일에서 하는 부탁을 존중하면 되는 것이다.

코스터는 자기는 웹을 돌아다니는 로봇을 싫어하지 않고, 그 로봇들을 없애려는 의도도 없다는 것을 처음부터 분명하게 밝혔다. 그는 팀 버너스 리(Tim Berners-Lee), 마크 앤드리슨(Marc Andreessen) 같은 인터넷의 선구자들이 모인 WWW-Talk라는 메일링 리스트에 보낸 이메일에서 "로봇은 웹에서 작동 상의 문제를 일으켜 사람들을 괴롭히는 몇 안 되는 문제 중 하나"라고 말하면서도, 로봇이 좋은 존재라고 옹호하거나, 나쁜 존재라고 반대하는 것을 경계했다. 어쨌든 로봇은 도움을 주는 게 사실이고, 좋든 싫든 웹에서 사라지지 않고 존재할 것이기 때문에 그런 주장은 의미가 없다는 게 그의 생각이었다. 그는 그저 "문제를 최소화하고, 이익을 극대화"하기 바랐다.

그해(1994년) 여름이 되자 코스터의 제안은 웹에서 마치 하나의 표준처럼 받아들여졌다. 공식적인 표준이라기보다는 일반적으로 받아들여진, 그런 표준이었다. 6월에 WWW Talk 그룹에 다시 보낸 글에서 코스터는 다음과 같은 업데이트를 한다. 그는 이 프로토콜이 "간단하게 말하면 로봇들이 웹 서버의 특정 URL 공간에는 들어오지 못하게 하는 방법"이라고 하면서 "특히 큰 아카이브, 거대한 URL 서브트리가 있는 CGI 스크립트, 임시 정보를 가진 웹사이트에 유용하고, 그냥 로봇에게 서비스를 제공하고 싶지 않을 때도 편리"하다고 했다. 그는 이 주제로 메일링 리스트를 만들고, 거기에 포함된 사람들과 함께 텍스트 파일이 가지게 될 기본적인 형식과 구조에 합의했다. 그리고 파일의 이름을 RobotsNotWanted(로봇사절).txt에서 단순화한 robots.txt로 바꿨다. 거의 모든 사람이 이 프로토콜을 따르기로 합의했다.

그렇게 만들어진 원칙은 그 후로 거의 30년 동안 별문제 없이 작동했다.

하이퍼텍스트를 만든 팀 버너스 리의 1990년대 모습 (이미지 출처: Scientific American)

하지만 이제 인터넷은 하드드라이브 하나에 들어갈 수 없도록 커졌고, 웹을 돌아다니는 로봇은 훨씬 더 강력해졌다. 구글이 사용하는 로봇은 인터넷을 기어다니며 구글의 검색 엔진을 위해 웹 전체의 색인을 만든다. 그 덕분에 구글의 검색 엔진은 웹의 인터페이스가 되었고, 회사에 수십억 달러를 벌어다 준다. 마이크로소프트가 만든 빙(Bing)의 크롤러 로봇도 똑같은 기능을 수행하는데, 마이크로소프트는 그렇게 만든 데이터베이스를 다른 검색 엔진과 기업들에게 라이선스로 제공한다. 인터넷 아카이브(The Internet Archive)는 크롤러를 사용해 웹사이트를 저장해서 후세에게 전달하는 일을 한다. 아마존의 크롤러는 제품 정보를 찾기 위해 인터넷을 돌아다니는데, 최근 반독점법 위반 혐의로 고소된 내용에 따르면 아마존은 그렇게 얻은 정보를 다른 곳에서 아마존에서보다 더 낮은 가격으로 같은 물건을 파는 판매자들에게 불이익을 주는 데 사용한다. 오픈AI 같은 AI 기업들은 대형언어모델(LLM)들을 훈련하기 위해 웹 크롤러를 사용해 정보를 가져가고, 그렇게 해서 우리가 정보에 접근하고 이를 공유하는 방식을 근본적으로 바꾸고 있다.

현대의 인터넷을 다운로드해서 저장, 분류, 질의하는 능력이 있는 기업이나 개발자들은 세상이 축적한 지식을 자신의 것처럼 사용할 능력을 갖춘 셈이다. 지난 약 일 년 동안 챗GPT 같은 AI와 그를 뒷받침하는 대형언어모델이 큰 인기를 끌면서 양질의 훈련용 데이터는 인터넷에서 가장 값진 상품 중 하나가 되었다. 그 결과, 각종 웹사이트 운영자들은 자기 서버에 있는 데이터의 가치를 재평가하게 되었고, 누가 거기에 접근하도록 허용할지 다시 생각하게 되었다. 너무 쉽게 접근을 허락하면 웹사이트의 가치를 떨어뜨릴 수 있는 반면, 너무 철저하게 단속할 경우 사람들의 눈에 띄지 않게 된다. 게다가 새롭게 등장하는 기업들과 파트너, 새로운 지분(stakes)을 고려해 그런 선택을 끊임없이 내려야 한다.

(이미지 출처: Amazon.in)

세상에는 몇 가지 종류의 인터넷 로봇들이 있다. 웹을 돌아다니면서 자기 웹사이트에서 링크된 페이지들이 죽지 않고 살아있는지 확인하는 아주 무해한 로봇부터 웹사이트들을 돌아다니면서 그곳에 있는 이메일 주소와 전화번호를 긁어오는 악성 로봇까지 다양하다. 하지만 가장 흔하면서 현재 가장 문제가 되는 로봇은 단순한 웹 크롤러다. 이 로봇은 인터넷에서 가능한 한 많은 정보를 찾아 다운로드하는 일을 한다.

대부분의 웹 크롤러들은 꽤 단순하다. 이들은 CNN이나 위키피디아, 미국 보건복지부의 웹사이트처럼 유명한 곳에서 시작한다. (일반적인 검색 엔진을 운영한다면 다양한 주제를 아우르는 고품질의 웹사이트부터 찾게 될 것이다. 스포츠나 자동차처럼 특정 주제에만 관심이 있다면 그런 주제를 다루는 사이트를 뒤지면 된다.) 크롤러는 그렇게 찾아간 곳에서 첫 페이지를 다운로드해서 다른 곳(서버)에 저장한 후, 그 페이지에 들어 있는 링크들을 모조리 찾아가 그 페이지들을 모두 다운로드하고, 다시 그 페이지들에 연결된 링크를 찾아 방문하고 다운로드하는 걸 반복하면서 웹을 돌아다닌다. 그렇게 시간과 컴퓨팅 자원을 충분히 쏟아부으면 그 크롤러는 언젠가는 수십만 개의 웹 페이지를 찾아 다운로드하게 될 것이다.

구글이 2019년에 추산한 바에 따르면 약 5억 개의 웹사이트가 크롤러의 접근 허용 여부와 허용하는 크롤러의 종류를 밝히는 robots.txt 페이지를 갖고 있다. 그런 페이지들의 구조는 대개 비슷하다. 우선 "User-agent(사용자-에이전트)"에서 크롤러의 이름을 적는다. 이 이름은 크롤러가 서버에 들어갈 때 자신의 정체를 알리는 이름이다. 구글의 에이전트는 Googlebot, 아마존은 Amazonbot, 빙은 Bingbot, 오픈AI는 GPTBot이라는 이름을 사용한다. 그 밖에도 핀터레스트, 링크드인, 트위터 같은 많은 사이트와 서비스들이 자기들만의 로봇을 운영하지만, 모든 페이지가 이런 로봇의 이름을 모두 적어두는 건 아니다. 다만, 위키피디아페이스북(링크를 클릭해 보라)의 경우 유독 수많은 로봇의 이름을 꼼꼼하게 기록해두고 있다.

그리고 User-agent의 아래에는 웹 사이트에서도 에이전트(로봇)의 접근을 허용하지 않는 섹션이나 페이지를 밝혀두고 있고, 허용되는 예외가 있을 경우 적어놓는다. 그렇지 않고 "Disallow(불허)"라고만 적혀있다면 그 크롤러는 들어오는 것을 환영하지 않는다는 뜻이다.

하지만 서버에 과부하가 걸리는 것을 걱정하던 시절은 사실상 지났다.


'인터넷을 지켜온 작은 파일 ②'에서 이어집니다.