단일 HTML 파일로 웹 페이지를 효율적으로 아카이빙하는 Gwtar 형식

by DD
3개월 전
조회수 32

Gwtar는 단일 HTML 파일 내에 모든 자산을 포함하여 lazy loading을 지원하는 새로운 아카이브 형식임

기존 HTML 아카이브 형식의 '정적', '단일 파일', '효율성'의 트릴레마(Trilemma)를 해결

HTTP Range 요청을 활용하여 대용량 파일의 효율적인 로딩을 구현

SingleFile과 같은 기존 도구의 단점을 보완하여 대규모 웹 페이지 아카이빙에 적합

Gwtar 형식의 기술적 특징

Gwtar는 HTML 파일 내에 HTML, JavaScript 헤더, tarball을 결합한 형식으로, HTTP Range 요청(HTTP Range Requests)을 통해 효율적인 lazy loading을 구현한다. window.stop() 명령어를 사용하여 초기 로딩을 중단시키고, JavaScript 헤더가 tarball 내의 자산에 대한 Range 요청을 처리한다. 이러한 구조는 단일 파일이면서도 필요한 자산만 다운로드하여 효율성을 높이는 핵심 기술이다.

기존 아카이브 형식과의 비교

Gwtar는 기존 HTML 아카이브 형식의 한계를 극복하고자 한다. SingleFile은 정적(static)이고 단일 파일 형식이지만, 비효율적인 단점이 있다. 반면, WARC/WACZ는 효율적이지만 단일 파일 형식이 아니다. Gwtar는 이 세 가지 속성을 모두 만족시키기 위해 고안되었으며, 특히 대용량 웹 페이지 아카이빙(Web Page Archiving)에 적합하도록 설계되었다.

구현 세부 사항 및 최적화

Gwtar는 바이너리 자산을 Base64로 인코딩하는 대신, Blob을 사용하여 브라우저에 직접 전달함으로써 성능을 최적화한다. 또한, JavaScript 파일의 로딩 순서 문제를 해결하기 위해 모든 JavaScript 파일을 먼저 다운로드하는 방식을 사용한다. 이러한 최적화는 웹 브라우저(Web Browser)의 성능을 최대한 활용하여 효율적인 아카이빙을 가능하게 한다.

Gwern.net에서의 활용 및 배경

Gwtar는 Gwern.net에서 대규모 HTML 아카이브를 효율적으로 제공하기 위해 개발되었다. 웹 페이지 아카이빙(Web Page Archiving)의 중요성을 강조하며, 기존 아카이브 형식의 문제점을 해결하고 장기적인 웹사이트 운영을 위한 솔루션을 제시한다. 특히, 'Who Buried Paul?''The Secret of Psalm 46'과 같은 대용량 페이지의 아카이빙 문제를 해결하기 위해 Gwtar 형식을 개발하게 되었다.

Gwtar: A static efficient single-file HTML format