지킬
개요
지킬(Jekyll)은 마크다운, 리퀴드 템플릿 언어, HTML/CSS를 사용하여 정적 웹사이트를 생성하는 오픈소스 정적 사이트 생성기(Static Site Generator)입니다. 2008년 톰 프레스턴-워너(Tom Preston-Werner)가 개발했으며, 깃허브 페이지(GitHub Pages)와의 긴밀한 통합으로 블로그, 포트폴리오, 문서 사이트 등에 널리 사용됩니다.
주요 내용
1. 지킬의 핵심 개념
- 정적 사이트 생성: 지킬은 서버 측 동적 처리가 필요 없는 순수 HTML, CSS, JavaScript 파일을 생성합니다. 이는 빠른 로딩 속도, 높은 보안성, 저렴한 호스팅 비용의 장점을 제공합니다.
- 마크다운 지원: 콘텐츠를 마크다운으로 작성하면 지킬이 자동으로 HTML로 변환합니다. 개발자와 작가 모두에게 친숙한 문법으로 생산성을 높입니다.
- 리퀴드 템플릿: 리퀴드(Liquid) 템플릿 언어를 사용하여 변수, 반복문, 조건문 등을 템플릿에 삽입할 수 있습니다. 이를 통해 동적인 요소(예: 최근 글 목록, 카테고리별 분류)를 정적 사이트에 구현합니다.
- 프론트매터(Front Matter): 각 페이지나 포스트 상단에 YAML 형식의 메타데이터(제목, 날짜, 레이아웃, 태그 등)를 정의합니다. 지킬은 이를 파싱하여 사이트 구조를 구성합니다.
2. 설치 및 기본 사용법
- 설치: 루비(Ruby) 환경이 필요하며,
gem install jekyll bundler 명령어로 설치합니다.
- 새 프로젝트 생성:
jekyll new my-site 명령어로 기본 구조를 생성합니다.
- 디렉토리 구조:
- _posts/: 블로그 포스트를 저장하는 폴더. 파일명은 YYYY-MM-DD-title.md 형식을 따라야 합니다.
- _layouts/: 페이지 레이아웃 템플릿(기본, 포스트, 페이지 등)을 저장합니다.
- _includes/: 재사용 가능한 HTML 조각(네비게이션, 푸터 등)을 저장합니다.
- _data/: 사이트 데이터를 YAML, JSON, CSV 파일로 관리합니다.
- assets/: CSS, JavaScript, 이미지 등 정적 파일을 저장합니다.
- _config.yml: 사이트 전역 설정 파일(제목, URL, 플러그인 등)입니다.
- 로컬 서버 실행:
bundle exec jekyll serve 명령어로 http://localhost:4000에서 사이트를 미리보기할 수 있습니다.
3. 주요 기능
- 블로그 엔진: 포스트에 날짜, 카테고리, 태그를 지정하여 자동으로 아카이브 페이지를 생성합니다.
paginate 플러그인을 사용하면 페이지네이션도 가능합니다.
- 커스텀 레이아웃: HTML과 리퀴드로 레이아웃을 설계하여 사이트 디자인을 완전히 제어할 수 있습니다. 여러 레이아웃을 상속 구조로 만들 수도 있습니다.
- 데이터 파일:
_data 폴더에 구조화된 데이터를 저장하고 템플릿에서 불러와 사용할 수 있습니다. 예를 들어, 팀 멤버 목록이나 가격표를 동적으로 렌더링할 수 있습니다.
- 컬렉션(Collections): 포스트 외에도 문서, 프로젝트 등 사용자 정의 콘텐츠 유형을 정의할 수 있습니다. 각 컬렉션은 고유한 출력 경로와 메타데이터를 가집니다.
- 플러그인 시스템: 지킬은 다양한 플러그인을 지원합니다. 대표적으로 SEO 태그 자동 생성(
jekyll-seo-tag), 사이트맵 생성(jekyll-sitemap), 이미지 최적화 등이 있습니다. 깃허브 페이지에서는 안전한 플러그인만 허용됩니다.
- 깃허브 페이지 통합: 지킬은 깃허브 페이지의 기본 엔진입니다. 저장소에 푸시만 하면 자동으로 빌드되어
https://username.github.io에 배포됩니다. 커스텀 도메인, HTTPS, 404 페이지 등을 지원합니다.
4. 장점과 단점
- 속도: 정적 파일이므로 CDN을 통해 빠르게 전송됩니다.
- 보안: 데이터베이스나 서버 측 코드가 없어 해킹 위험이 낮습니다.
- 비용: 깃허브 페이지, 넷리파이(Netlify) 등 무료 호스팅 서비스를 이용할 수 있습니다.
- 버전 관리: 모든 콘텐츠가 텍스트 파일이므로 Git으로 관리하기 쉽습니다.
- 동적 기능 부족: 댓글, 검색, 사용자 인증 등은 외부 서비스(Disqus, Algolia)에 의존해야 합니다.
- 빌드 시간: 사이트 규모가 커지면 빌드 시간이 길어질 수 있습니다.
- 러닝 커브: 루비, 리퀴드, YAML 등 여러 기술을 익혀야 합니다.
5. 대안과 비교
- Hugo: Go 언어 기반으로 빌드 속도가 매우 빠르며, 대규모 사이트에 적합합니다. 설정이 간단하지만 템플릿 문법이 다릅니다.
- Gatsby: React 기반으로 동적 기능과 풍부한 플러그인 생태계를 제공합니다. 정적 사이트이지만 클라이언트 측 렌더링을 지원합니다.
- Next.js: React 기반의 프레임워크로 정적 생성(SSG)과 서버 사이드 렌더링(SSR)을 모두 지원합니다. 더 복잡한 웹 애플리케이션에 적합합니다.
- 11ty(Eleventy): JavaScript 기반으로 간단하고 유연하며, 여러 템플릿 언어를 지원합니다. 지킬보다 설정이 덜 필요합니다.
최신 동향
2024-2025년 기준, 지킬은 정적 사이트 생성기 시장에서 점유율이 다소 감소했지만, 깃허브 페이지와의 통합으로 여전히 많은 개인 블로그와 프로젝트 문서 사이트에서 사용됩니다. 최근 트렌드는 다음과 같습니다:
- 클라우드 기반 빌드: 깃허브 액션, 넷리파이, Vercel 등 CI/CD 파이프라인을 통해 지킬 사이트를 자동 빌드·배포하는 사례가 증가했습니다.
- 헤드리스 CMS 연동: Contentful, Forestry, CloudCannon 등 헤드리스 CMS와 지킬을 연동하여 비개발자도 콘텐츠를 쉽게 편집할 수 있게 되었습니다.
- 성능 최적화: 이미지 최적화 플러그인(
jekyll-cloudinary), CSS/JS 압축, 레이지 로딩 등 성능 개선에 초점을 맞춘 플러그인이 활발히 개발되고 있습니다.
- 커뮤니티 변화: 지킬의 공식 포럼과 스택 오버플로우 활동은 줄었지만, 깃허브 저장소는 여전히 활발히 유지보수되고 있습니다. 2024년 4.3.x 버전이 안정적으로 릴리스되었으며, 루비 3.0 이상을 권장합니다.
- 마이그레이션 사례: 일부 사용자는 더 빠른 빌드와 현대적인 기능을 위해 Hugo나 11ty로 전환하고 있지만, 지킬의 단순함과 깃허브 페이지 호환성은 여전히 강력한 장점으로 남아 있습니다.
관련 주제
- [[정적 사이트 생성기]]
- [[깃허브 페이지]]
- [[마크다운]]
- [[리퀴드 템플릿 언어]]
- [[루비]]
---
AI 자동 생성 문서 · 커뮤니티가 함께 개선합니다