2022년 8월 Hugo에서 Jekyll로 다시 돌아온지 3년이 되어가고 있고 Zola란 도구로 이동하게 되어 글로 공유해봅니다. Hugo나 Jekyll 처럼 대중적이고 큰 프로젝트는 아니지만 나름대로의 매력을 가지고 있는 Zola에 대해 간략히 소개하고 왜 넘어가게 되었는지 이야기해볼까 합니다.
What is Zola?
Zola는 Rust로 만들어진 SSG(Static Site Generator)입니다. 자체 템플릿 엔진인 Tera를 사용하며, Hugo와 마찬가지로 Single binary로 배포되어 별도의 의존성 설치 없이 매우 빠른 속도를 자랑합니다. 또한, 별도의 플러그인 없이도 Sass/SCSS 컴파일, 문법 강조(Syntax Highlighting), 목차 생성(Table of Contents), 단축코드(Shortcodes), 다국어 지원(i18n) 등 다양한 편의 기능을 내장하고 있어 사용성이 뛰어납니다.
Why Zola?
요 몇 년간 제 개발 도구 환경은 Caido, Helix, Zed 등 Rust 기반의 도구들로 점차 채워졌고, 올해부터는 주력 프로그래밍 언어 역시 Rust를 깊이 있게 사용하고 있습니다. 이러한 흐름 속에서 자연스럽게 Rust 생태계의 다른 도구들에도 관심을 가지게 되었고, Zola 역시 그렇게 발견한 매력적인 프로젝트 중 하나였습니다.
This tool and its template engine tera were born from an intense dislike of the (insane) Golang template engine and therefore of Hugo that I was using before for 6+ sites. Vincent Prouillet
제가 과거 Hugo에서 Jekyll로 다시 돌아갔던 가장 큰 이유 중 하나가 바로 Go 템플릿 엔진의 복잡성과 사용 방식에 대한 불편함이었는데, Zola의 개발자인 Vincent Prouillet 역시 저와 비슷한 생각을 했던 것 같습니다. 이런 개발 철학에 대한 공감대가 Zola를 선택하는 데 중요한 역할을 했습니다.
물론 기술적인 매력도 빼놓을 수 없습니다. 여러 요소를 고려한 끝에 Zola로의 이전을 결정했고, 현재는 매우 만족하며 사용하고 있습니다. 특히 Jekyll 사용 시 빌드 시간이 다소 아쉬웠던 부분이나, Jekyll 특유의 느린 Live Reloading과 달리 Zola의 Live Reloading은 굉장히 빠르기에 글을 쓰는 경험을 크게 향상시켰습니다. 또한, 다국어(i18n) 처리 역시 별도의 복잡한 설정 없이 간편하게 적용할 수 있다는 점이 Zola를 선택하는 데 큰 영향을 미쳤습니다.
Design
Zola로 이전하면서 기존 Jekyll에서 사용하던 테마의 핵심 디자인 철학은 유지하되, 코드를 재작성하며 전반적으로 더 깔끔하게 다듬었습니다. Zola의 템플릿 엔진인 Tera는 Jekyll의 Liquid와 개념적으로 유사하면서도 Jinja2나 Django 템플릿과 비슷하여 직관적인 문법을 제공하기에 기존 로직을 옮기고 개선하는 작업이 상대적으로 수월했습니다. 특히 Jekyll의 경우 페이지를 자주 참조하는 경우 빌드 시간에 크게 영향을 주는데, Zola는 그렇지 않았기에 매크로를 통해 템플릿의 재사용성을 높일 수 있었습니다. 덕분에 생각보다 마이그레이션 기간을 크게 단축할 수 있었네요.
시각적으로는 기존의 검정색(#000000
) 기반의 테마를 기본으로 하되, 흰색 포인트를 조금 더 화려하게 잡았습니다. 대표적으로 메인 페이지와 404 페이지의 인터렉티브 요소입니다.
https://www.instagram.com/p/DJUO-64xTSC/
이는 예전에 재미있게 봤던 Loki 시즌 2의 장면에서 영감을 얻어 만들었습니다.
Loki season 2's ending scene
Conclustion
블로그의 기반이 되는 도구를 변경하는 작업은 때로는 고되고 예상치 못한 문제에 직면하기도 하지만, 매번 저에게 새로운 기술을 경험하고 더 나은 결과물을 만들 수 있는 배움의 기회를 안겨주었습니다. 이번 Zola로의 이전 역시 마찬가지였습니다.
물론 몇 년 뒤 또 다른 변덕으로 새로운 도구를 찾아 나설지도 모르겠습니다. 하지만 현재로서는 Zola의 간결함, 속도, 그리고 Rust 기반이라는 점에서 오는 안정감과 개발 철학에 매우 만족하고 있습니다. 앞으로 제 블로그를 꾸준히 가꿔나가는 동시에, Zola 프로젝트에도 작게나마 기여하며 이 멋진 도구가 계속 발전해 나갈 수 있도록 힘을 보태고 싶습니다.