이 글은 주로 기술에 덜 익숙한 독자를 대상으로 썼음. 명령줄에서 wget을 편하게 쓸 정도라면 내가 가장 다가가고 싶었던 독자층과는 다르다고 봄.
마지막으로 시험했을 때 wget의 WARC 기능은 JavaScript 실행을 지원하지 않아 단일 페이지 앱이나 복잡한 사이트를 처리하지 못했지만, 글에서 소개한 도구들은 가능함.
직접 백업하는 것과는 분명 다르지만, 마음에 드는 페이지를 Internet Archive에 보관하는 습관이 있음. 공식 브라우저 확장 기능을 쓰면 페이지를 저장하거나 보관된 버전을 확인하기가 아주 쉬움.
가장 간단한 방법을 시험해 봤는데, Firefox에서 Ctrl+S 를 누르니 HTML 문서 옆 폴더에 PNG와 CSS까지 담아 페이지 전체를 저장해 줌. 인터넷을 끊고 다시 열어도 원래와 똑같이 표시됨. HTML만 저장되고 CSS와 이미지는 깨질 줄 알았는데 Firefox 팀이 잘 만들어 둠.
다만 여기 Lobsters에서는 CSS가 꼬여 페이지가 흰색으로 표시되는 등 결과가 조금 나빴음.
Firefox에 그런 기능이 있는 줄 몰랐음. 나는 SingleFile 확장 기능으로 페이지를 저장해 왔음. 페이지와 모든 리소스를 하나의 HTML 파일로 묶어 주니, 파일이 꽤 커지기는 해도 편리함.
흥미로운 페이지는 PDF로 저장함. CSS에 인쇄용 설정이 제대로 없으면 Firefox의 읽기 모드를 저장하는데, 이렇게 하면 꽤 보기 좋은 PDF가 만들어지기도 함.
몇 가지 cron 작업으로 Archive.org에 자료를 보내고 있으며, 서비스가 오래 유지되기를 바람. 그 외에는 PDF보다 SingleFile을 언제나 선호함.
잘 모르는 GUI 도구나 웹 앱보다 wget 으로 웹사이트를 보관하고 싶지만, 지난번에는 매뉴얼을 읽다가 길을 잃고 흥미도 잃었음. 인터넷 전체를 내려받으려 들지 않으면서 웹사이트와 관련 리소스를 모두 보관하는 한 줄 명령을 아는 분이 있을까요?
이미지나 스크립트 호스트, 다른 하위 도메인까지 담으려면 -D/--domains 에 도메인을 추가하면서 몇 차례 다시 시도해야 할 수 있음. 여기서 --adjust-extension이 왜 필요했는지는 기억나지 않음. --no-parent 는 사이트 전체가 아니라 특정 경로 아래만 보관할 때 쓰는 옵션임.
명령을 조정해야 하고 AI에 물어보는 데 거부감이 없다면, 작은 로컬 LLM도 용도에 맞는 명령을 제법 그럴듯하게 만들어 줄 수 있음. 제안된 옵션을 매뉴얼과 대조하면 유용하지만 잘 알려지지 않은 옵션인지, 환각인지 확인 가능함.
wget은 클라이언트 측 JavaScript를 실행하지 않음. 따라서 단일 페이지 앱이나 초기 HTML 대신 JavaScript로 외부 링크를 생성하는 사이트는 처리할 수 없다는 점을 유의해야 함.
Karakeep이 훌륭해서 매일 사용 중임.
가까운 친구나 원한다면 모르는 사람의 웹사이트에도 연산 자원과 호스팅을 보탤 수 있는 프로젝트가 언젠가 나오면 좋겠음. 디지털 자료가 사라지는 건 정말 안타깝고, 내가 세상을 떠난 뒤에도 누군가 내 사이트를 그렇게 보존해 주길 바람.
개인 백업과 Web Archive 같은 중앙집중형 보관은 양극단에 있고, 내가 보기엔 그 사이가 비어 있음. DNS가 큰 걸림돌인데 어떤 해법이 좋을지 모르겠음.
그 중간에 가장 가까운 것은 IPFS나 Iroh가 최근 pkarr로 실험하는 것 같은 분산형 콘텐츠 주소 지정 방식임. 다만 해시로 접근할 때 콘텐츠가 유지되는 것이므로, 콘텐츠 주소 URL을 가리키는 사람이 읽을 수 있는 DNS 주소만 갖고 있다면 원래 호스트가 내려갔을 때 여전히 콘텐츠를 찾지 못할 수 있음.
DNS 부분은 아마 <original-domain>.<timespan>.<mirror-domain> 같은 형태가 될 것임.
작성자가 보관을 원하지만 새 미러가 생길 때는 연락되지 않을 수도 있는 정도의 협력 관계이고 콘텐츠 기반이라면, 콘텐츠 서명 방식이 가능할 듯함. 연산 능력 향상 등을 포함한 원본 키 유출·손상에 대응하려면 보관 기관들이 몇 달마다 보관 이력을 이어 재서명해야 할 수도 있음.
하지만 비연합형 위키처럼 단일한 기준 원본이 필요하다면, 웹사이트의 본질적인 기준 원본으로 계속 인정받을 수 있어야 함. 여러 비영리단체가 이런 서비스를 제공하더라도, 그중 하나가 갑자기 운영을 중단하면 그곳을 주된 원본으로 삼는 사이트들이 곤란해질 수 있음.
웹사이트에서 글을 읽을 때는 먼저 로컬 파일로 저장하지 않고 읽는 양을 최소화하려고 함. HTML을 텍스트로 변환한 뒤 텍스트 편집기로 가져와 읽는 방식임.