피드로 돌아가기
GeekNewsFrontend
원문 읽기
Kage - 웹사이트에서 자바스크립트를 제거하고 오프라인 보관하는 도구
Headless Chrome 기반 JS 제거 및 정적 DOM 스냅샷을 통한 웹 사이트 미러링
AI 요약
Context
기존 브라우저의 'Save As' 기능은 JavaScript 의존성으로 인해 시간이 흐름에 따라 렌더링 오류 및 네트워크 요청 실패가 발생하는 한계 존재. 동적 콘텐츠가 포함된 현대적 웹페이지를 네트워크 연결 없이 완벽하게 보존할 수 있는 결정론적 아카이빙 구조 필요.
Technical Solution
- Headless Chrome을 통한 최종 DOM 스냅샷 캡처로 JS 실행 후의 렌더링 결과물을 정적 상태로 고정
- Strip JS 로직을 적용하여 런타임 스크립트를 완전히 제거함으로써 보안 위협 및 불필요한 네트워크 호출 차단
- CSS, 이미지, 폰트 등 정적 자산을 로컬 경로로 변환하여 디스크 기반의 독립적 동작 환경 구축
- Breadth-first 크롤링 및 Idempotent 처리 설계를 통한 중복 수집 방지와 효율적인 사이트 맵 탐색
- ZIM 아카이브 및 OS 전용 WebView 기반의 단독 바이너리 패키징으로 런타임 설치 없이 열람 가능한 배포 구조 설계
- 결정론적 패킹 기법을 적용하여 동일 콘텐츠에 대해 Byte-identical 파일과 UUID 기반 체크섬 보장
실천 포인트
1. 웹 아카이빙 설계 시 JS 런타임 제거 후 DOM 스냅샷 기반의 정적 변환 검토
2. 대규모 크롤링 시 Idempotency를 보장하는 URL 정규화 로직 적용
3. 배포 편의성을 위해 OS 내장 WebView를 활용한 단일 바이너리 패키징 고려
4. 데이터 무결성 검증을 위해 콘텐츠 기반의 결정론적 해시/UUID 생성 체계 도입