Show HN: Kage – 오프라인 열람을 위해 웹사이트를 단일 바이너리로 빌드하는 도구

Go 언어 기반의 오픈소스 도구 'Kage(影)'는 헤드리스 크롬(headless Chrome)을 사용하여 웹사이트의 DOM을 렌더링한 후, 자바스크립트를 제거한 정적 파일이나 단일 실행 바이너리로 패키징하는 기능을 제공합니다. 사용자는 'kage clone'과 'kage pack' 명령어로 웹페이지를 완전히 오프라인 상태에서 영구 보존할 수 있습니다.

AI 요약

기존 브라우저의 '다른 이름으로 저장' 기능은 자바스크립트 종속성이나 외부 분석 서버의 부재로 인해 나중에 페이지가 깨지는 문제가 빈번히 발생합니다. 개발자 tamnd가 개발한 'Kage(影, 그림자)'는 이러한 문제를 해결하기 위해 헤드리스 크롬(headless Chrome)으로 웹페이지를 완전히 렌더링한 후, 모든 자바스크립트를 삭제하고 CSS, 이미지, 폰트만 로컬 경로로 내려받는 오픈소스 도구입니다. 이 도구를 사용하면 네트워크 연결이나 트래킹 스크립트 없이도 실제 라이브 사이트와 동일하게 작동하는 안전한 정적 HTML 아카이브를 얻을 수 있습니다. 더 나아가, 수집된 리소스들을 단일 ZIM 파일로 압축하거나 자체 웹 서버를 포함하는 독립형 단일 실행 바이너리 파일로 패키징할 수 있는 강력한 기능도 제공합니다. 사용자는 Docker 이미지(ghcr.io/tamnd/kage)나 Go 설치 도구를 통해 복잡한 크롬 설정 없이도 즉시 해당 환경을 구축할 수 있습니다.

핵심 인사이트

  • 도구 정의 및 출처: 'Kage(影)'는 개발자 tamnd가 GitHub에 공개한 도구로, 웹사이트를 오프라인 조회가 가능한 스크립트 없는 정적 폴더 및 바이너리로 클로닝해 줍니다.
  • 동작 방식: 실제 헤드리스 크롬(Chrome)을 실행해 페이지 로딩을 마친 후 인간이 보는 DOM 상태를 스냅숏으로 캡처하며, 자바스크립트(JS)를 완벽히 소거하여 네트워크 호출을 차단합니다.
  • Paul Graham 에세이 예시: 가이드에서는 paulgraham.com 사이트를 예시로 삼아, kage clone paulgraham.com 명령어로 전체 사이트를 로컬 컴퓨터에 에러 없이 복제하는 법을 시연합니다.

주요 디테일

  • 설치 및 배포 방식: go install github.com/tamnd/kage/cmd/kage@latest 명령어를 통한 설치뿐만 아니라, .deb, .rpm, .apk 아카이브 및 Chromium이 내장된 컨테이너 이미지(ghcr.io/tamnd/kage)를 제공합니다.
  • 실행 바이너리 패키징: kage pack <mirror-dir> --format binary -o paulgraham 명령을 실행하면, 로컬 웹서버 기능이 통합된 독립 실행 파일(binary)이 생성되어 추가 소프트웨어 없이 웹사이트를 구동할 수 있습니다.
  • ZIM 포맷 압축: 복제본을 단일 압축 파일 형식인 .zim으로 패키징하는 kage pack 및 이를 구동하는 kage open 명령어를 지원하여 아카이브 공유를 단순화합니다.
  • 크롬 경로 자동 탐지: 기본적으로 시스템에 설치된 Chrome/Chromium을 탐색하며, 필요시 --chrome 옵션이나 KAGE_CHROME 환경 변수로 특정 브라우저 경로를 수동 지정할 수 있습니다.
  • 셸 완성 기능: bash, zsh, fish, powershell을 위한 자동 완성(completion) 스크립트를 기본 내장하고 있습니다.

향후 전망

  • 장기적인 웹 아카이빙 활성화: 향후 웹 아카이빙 업계나 학계에서 사라져가는 기술 블로그, 정보 포털 등의 데이터를 10년 이상 오프라인으로 안전하게 보존하고 배포하기 위한 유용한 표준 도구로 자리잡을 가능성이 높습니다.
출처:hackernews
Share

이것도 읽어보세요

댓글

이 소식에 대한 의견을 자유롭게 남겨주세요.

댓글 (0)

불러오는 중...