최근 한 개발자가 브라우저 탭에 표시되는 작은 아이콘인 파비콘(favicon)을 활용해 웹사이트의 HTML 콘텐츠를 저장하고 복원하는 독특한 실험을 선보였습니다. 이는 파비콘을 단순히 시각적 요소가 아닌, 데이터를 담을 수 있는 저장 공간으로 재해석한 시도로, 웹 기술의 숨겨진 가능성을 엿볼 수 있게 합니다.
이 실험의 핵심은 HTML 코드를 UTF-8 바이트로 변환한 뒤, 각 바이트를 파비콘 이미지 픽셀의 RGB(빨강, 초록, 파랑) 채널에 순서대로 기록하는 방식입니다. 예를 들어, 첫 번째 바이트는 첫 픽셀의 빨강 채널에, 두 번째 바이트는 초록 채널에, 세 번째 바이트는 파랑 채널에 저장하는 식입니다. 실험에 사용된 HTML 페이로드는 208바이트로, 헤더를 포함해 총 212바이트였으며, 이를 저장하는 데 9x9 픽셀 크기의 PNG 이미지, 즉 71개의 픽셀만으로 충분했습니다. 복원 과정은 브라우저의 캔버스(Canvas) API를 이용해 파비콘 이미지를 읽고, 픽셀 데이터를 다시 바이트 배열로 조립하여 HTML로 디코딩하는 방식으로 이루어집니다.
물론 이 방식만으로 웹사이트 전체가 독립적으로 실행되는 것은 아닙니다. 파비콘에 저장된 HTML을 읽고 페이지에 렌더링하기 위한 별도의 자바스크립트(JavaScript) 로더가 필요합니다. 따라서 이 실험은 실제 웹사이트 배포에 활용하기보다는, 데이터 은닉(스테가노그래피)이나 웹 기술의 한계를 탐색하는 경계 실험에 가깝습니다. 하지만 파비콘의 캐시를 이용한 사용자 추적(fingerprinting) 가능성이나, PNG의 주석 청크(tEXt, zTXt, iTXt)를 활용한 데이터 저장 등 유사한 아이디어들이 꾸준히 제기되고 있다는 점에서, 웹 표준과 브라우저 기능의 예상치 못한 활용 가능성을 보여주는 흥미로운 사례로 평가할 수 있습니다.