ArchiveBox is Super Cool

Michael Lynch

ArchiveBox는 정말 멋지다

archive.org의 인터넷 웨이백 머신을 사용해 본 적 있나요? 1996년부터 웹을 아카이빙해 온 무료 도구입니다. 그래서 1999년의 구글이 어떤 모습이었는지 궁금하다면, 그것도 보관하고 있습니다.

1999년 4월 22일자 구글 모습을 담은 인터넷 아카이브 캡처

ArchiveBox는 나만의 개인용 인터넷 웨이백 머신 같은 도구입니다. 무료 오픈소스이며, 대부분의 웹사이트를 아카이빙하는 데 사용할 수 있습니다.

ArchiveBox 대시보드 스크린샷

ArchiveBox는 웹사이트를 로컬에 아카이빙할 수 있게 해주는 무료 오픈소스 도구입니다.

왜 아카이빙해야 할까?

1년 전까지만 해도 웹사이트를 로컬에 아카이빙해야겠다는 생각을 해본 적이 없었습니다. 웹사이트를 아카이빙해 공개 사본을 저장해 주는 온라인 도구들이 있는데, 굳이 직접 아카이브를 셀프 호스팅하면서까지 수고를 들일 이유가 있을까 싶었습니다.

그러다 작년, 많은 소셜 미디어 기업들이 권력을 독점하려는 움직임을 보였습니다. 레딧은 유명하게도 서드파티 API를 봉쇄했고, 그 때문에 레딧을 아카이빙하던 수많은 사이트가 망가졌습니다. 레딧 아카이브 사이트들은 그냥 문을 닫았고, 아카이브도 사라졌습니다.

운영상 지속 가능하지 않다는 것을 알려주는 수많은 경고 신호에도 불구하고, 제가 얼마나 무료 자원봉사 기반 아카이브 서비스들을 맹신하고 있었는지 깨달았습니다.

클라우드 기반 아카이빙 서비스가 영원히 온라인 상태를 유지하리라고 믿을 수 없다면, 제가 중요하게 여기는 것들은 직접 사본을 보관해야겠다고 생각했습니다.

ArchiveBox 설치하기

ArchiveBox를 설치하는 방법은 몇 가지가 있지만, 저는 권장 방법인 Docker Compose를 사용했습니다:

mkdir archivebox && \
  cd archivebox && \
  curl -O 'https://raw.githubusercontent.com/ArchiveBox/ArchiveBox/dev/docker-compose.yml' && \
  docker compose run archivebox init --setup

이제 Docker 컨테이너를 실행하면 ArchiveBox를 띄울 수 있습니다:

docker compose up

그러면 포트 8000에서 로컬 웹 서버가 실행됩니다:

레딧 게시물 아카이빙하기

제가 가장 좋아하는 레딧 이야기 중 하나는 /r/legaladvice에 올라온 이웃이 스스로를 ‘고립지(landlocked)’로 만든 한 남자의 이야기입니다.

레딧 글쓴이의 이웃은 집과 공도를 연결하는 진입로가 포함된 부지를 소유하고 있었는데, 진입로가 포함된 땅 일부를 팔아버렸습니다. 그 결과 이웃은 자신이 소유하지 않은 땅을 무단 침입하지 않고서는 자기 부지에 드나들 방법이 없게 되었습니다. 이웃은 레딧 글쓴이의 사유 진입로에 대한 통행을 요구하며 이 문제를 해결하려 했습니다.

/r/legaladvice 게시판의 열기를 담은 서툰 그림

이 이야기는 세 개의 레딧 스레드에 걸쳐 전해집니다:

그래서 저는 세 URL을 ArchiveBox에 붙여 넣었습니다:

몇 초 만에 ArchiveBox가 그 게시물들을 아카이빙해 로컬에서 오프라인으로 볼 수 있게 해주었습니다:

ArchiveBox가 세 개의 레딧 스레드를 다운로드해 오프라인에서도 볼 수 있게 했습니다

ArchiveBox는 페이지를 PDF, PNG, WARC 등 여러 형식으로 다운로드하는데, 그중 하나는 제가 이전에 들어본 적 없는 싱글 파일 HTML 형식입니다:

싱글 파일 HTML은 정말 기발한 기술입니다! HTML, 자바스크립트, CSS를 모두 하나의 파일로 뭉쳐 넣습니다. 심지어 이미지도 base64로 인코딩해서 같은 HTML 파일 안에 넣어 버립니다.

<style>:root{--sf-img-2: url("data:image/gif;base64,R0lGODlhFQAQAIABAICAgP///yH5BAEAAAEALAAAAAAVABAAAAIajI...

이 방식으로 레딧 스레드를 읽는 건 정말 멋집니다. 정말 빠르기 때문입니다. 저는 텍스트 위주의 간단한 페이지를 불러오는 데 레딧과 웹 전체가 얼마나 느려졌는지에 익숙해져 있었습니다. 미리 만들어진 페이지를 로컬에서 탐색할 때 브라우징이 어떤 느낌인지 보는 것이 재미있습니다.

유튜브 영상 아카이빙하기

유튜브 영상을 아카이빙하는 더 전문적인 도구들도 있지만, ArchiveBox에도 yt-dlp가 포함되어 있어 유튜브 URL을 건네주기만 하면 페이지와 영상을 함께 아카이빙해 줍니다.

Lonely IslandSNL의 명작 “Like a Boss”를 항상 소장하고 싶다면, 다른 웹사이트처럼 ArchiveBox에 넘기기만 하면 됩니다.

ArchiveBox가 유튜브 영상을 다운로드했습니다

ArchiveBox가 실제 유튜브 경험을 완벽하게 재현할 수는 없지만, 페이지의 스냅샷을 만들고 영상은 별도로 저장합니다:

ArchiveBox는 유튜브 페이지를 완벽하게 아카이빙할 수 없어서 비디오 플레이어 대신 정지 이미지를 보여주고 영상은 별도 파일로 저장합니다

왜 이렇게 낯익을까?

ArchiveBox의 기여자 목록을 살펴보다가 맨 위에 낯익은 이름 Nick Sweeting을 발견했습니다. 아는 사람입니다! 2019년 PyGotham에서 만난 적이 있습니다.

Nick의 발표 영상을 훑어보다가, Nick이 5년 전 바로 그 콘퍼런스에서 ArchiveBox를 시연했다는 것을 깨달았습니다. 당시 저는 그 발표에 대해 글을 썼습니다만, 무슨 이유에선지 ArchiveBox가 기억에 남지 않았던 모양입니다.

Nick의 발표를 본 이후 몇 년 동안 ArchiveBox는 분명 성숙해졌고, 저 역시 아카이빙의 필요성을 더 절실히 느끼게 되었기에 다시 발견하게 되어 기쁩니다.

참고 자료

원문은 Michael Lynch님이 에 게재했습니다.

이 글은 muse-spark-1.2-contributor 모델을 사용해 번역했습니다.