ArchiveBox는 정말 멋지다
원문은 Michael Lynch님이 에 게재했습니다. 이 블로그 구독하기
archive.org의 Internet Wayback Machine을 사용해 본 적 있는가? 1996년부터 웹을 아카이빙해 온 무료 도구다. 1999년의 구글이 어떤 모습이었는지 궁금하다면, 여기서 볼 수 있다.

1999년 4월 22일 인터넷 아카이브가 캡처한 구글
ArchiveBox는 나만의 개인용 Internet Wayback Machine 같은 것이다. 무료 오픈소스이며, 대부분의 웹사이트를 아카이빙하는 데 사용할 수 있다.

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에서 로컬 웹 서버가 실행된다:
레딧 게시물 아카이빙하기
내가 가장 좋아하는 레딧 이야기 중 하나는 이웃이 스스로를 ‘고립지(landlocked)’로 만든 남성에 대한 /r/legaladvice 사연이다.
레딧 글쓴이의 이웃은 집과 공도를 연결하는 진입로가 포함된 부지를 소유하고 있었는데, 그 진입로가 포함된 땅 일부를 팔아버렸다. 그 결과 이웃은 자신이 소유하지 않은 땅을 무단 침범하지 않고서는 자기 부지에 들어가거나 나갈 방법이 없게 됐다. 이웃은 레딧 글쓴이의 사유 진입로 통행을 요구하며 문제를 해결하려 했다.

/r/legaladvice 게시판을 뜨겁게 달군 허술한 그림
이 이야기는 세 개의 레딧 스레드에 걸쳐 전개된다:
- 이웃이 어리석게도 스스로 고립지가 됐습니다. 우리가 사유 도로를 공유하도록 법적으로 강제될까요?
- 업데이트: 이웃이 스스로 고립지가 됐습니다. 이제 보안관이 제 도로를 쓰게 해주라고 하네요.
- 업데이트: 이웃이 스스로 고립지가 됐다고 여기에 글을 올렸었는데, 이제 해결됐습니다
그래서 세 URL을 ArchiveBox에 붙여 넣었다:

몇 초 만에 ArchiveBox는 해당 게시물들을 아카이빙해 로컬에서 오프라인으로 볼 수 있게 해줬다:

ArchiveBox가 세 개의 레딧 스레드를 다운로드해 오프라인으로 볼 수 있게 했다
ArchiveBox는 페이지를 여러 형식으로 다운로드한다. PDF, PNG, WARC 등이 있는데, 그중 하나는 이전에 들어본 적 없는 싱글 파일 HTML 형식이다:
싱글 파일 HTML은 꽤 기발한 기술이다! HTML, JavaScript, CSS를 모두 하나의 파일로 욱여넣는다. 심지어 이미지를 base64로 인코딩해 같은 HTML 파일 안에 넣어버린다.
<style>:root{--sf-img-2: url("data:image/gif;base64,R0lGODlhFQAQAIABAICAgP///yH5BAEAAAEALAAAAAAVABAAAAIajI...이 방식으로 레딧 스레드를 읽는 건 정말 멋지다. 엄청나게 빠르기 때문이다. 단순히 텍스트 위주의 페이지 하나를 로드하는 데 레딧을 비롯한 웹 전체가 얼마나 느려졌는지에 그저 익숙해져 있었다. 미리 생성된 페이지를 로컬에서 탐색할 때 브라우징이 어떤 느낌인지 보는 건 재미있다.
유튜브 영상 아카이빙하기
유튜브 영상을 아카이빙하는 더 전문적인 도구들도 있지만, ArchiveBox에는 yt-dlp가 함께 들어 있어 유튜브 URL만 넘기면 페이지와 영상을 함께 아카이빙해 준다.
Lonely Island와 SNL의 명작 “Like a Boss”를 항상 보관하고 싶다면, 다른 웹사이트처럼 ArchiveBox에 넘기기만 하면 된다.

ArchiveBox가 유튜브 영상을 다운로드했다
ArchiveBox가 실제 유튜브 경험을 완벽하게 재현하지는 못하지만, 페이지의 스냅샷을 만들고 영상은 따로 저장한다:


ArchiveBox는 유튜브 페이지를 완벽하게 아카이빙할 수 없어서, 비디오 플레이어 대신 정지 이미지를 보여주고 영상은 별도 파일로 저장한다
왜 이렇게 익숙한 느낌이 들까?
ArchiveBox의 기여자 목록을 살펴보다가 맨 위에 익숙한 이름을 발견했다. Nick Sweeting이다. 아는 사람이다! 2019년 PyGotham에서 만난 적이 있다.
닉의 발표 영상을 훑어보다가, 닉이 실제로 5년 전 같은 콘퍼런스에서 ArchiveBox를 시연했다는 걸 깨달았다. 당시 그의 발표에 대해 글을 쓰기도 했는데, 무슨 이유에서인지 ArchiveBox가 기억에 남지 않았던 모양이다.
닉의 발표를 본 뒤 몇 년 동안 ArchiveBox는 확실히 성숙해졌고, 나 역시 아카이빙의 필요성을 더 크게 느끼게 됐으니, 다시 발견하게 되어 기쁘다.
참고 자료
- ArchiveBox - 웹페이지를 로컬에 비공개로 아카이빙하는 무료 오픈소스 도구.
- archive.org의 Internet Wayback Machine - 1996년까지 거슬러 올라가는 공개 웹 아카이브.
글을 무작위로 읽기
댓글
로그인하고 댓글 남기기