Jekyll에서 Hugo로의 마이그레이션 가이드

Jekyll에서 Hugo로의 마이그레이션 가이드

Jekyll에서 Hugo로 마이그레이션을 결심한 뒤, 많은 문서를 참고하면서도 생각보다 시행착오를 꽤 겪었습니다. 단순히 정적 사이트 생성기를 바꾸는 게 아니라, 생태계와 철학 자체가 다른 도구로 이동하는 일이었기 때문입니다.

이 글은 저처럼 Jekyll을 쓰다 Hugo로 옮기고자 하는 분들을 위해, 제가 직접 경험한 내용을 바탕으로 정리한 실전 마이그레이션 가이드입니다. 각 단계에서의 의사결정과 구체적인 명령어, 주의할 점까지 담았으니 참고가 되면 좋겠습니다.


✅ 마이그레이션 전에 알아야 할 것

Jekyll과 Hugo는 모두 정적 사이트 생성기(SSG)이지만, 몇 가지 핵심적인 차이점이 있습니다:

항목Jekyll (Ruby 기반)Hugo (Go 기반)
빌드 속도게시물 수가 많아질수록 급격히 느려짐수백 개 이상 포스트도 수 초 내 빌드 가능
설치 방식Ruby, Gem, Bundler 등 의존성 필요단일 바이너리 (설치 즉시 사용 가능)
기능 확장플러그인 기반 (GitHub Pages에선 제한적)내장 기능 중심 (Shortcodes, 이미지 처리 등)
설정 파일_config.ymlhugo.toml, hugo.yaml, hugo.json 모두 지원
템플릿 언어LiquidGo 템플릿 엔진

1️⃣ 마이그레이션 사전 준비

🔍 기존 Jekyll 블로그 파악

💾 Hugo 설치

주의: SCSS 등 스타일을 커스터마이징할 계획이라면 Extended 버전을 설치해야 합니다.

📁 새 Hugo 프로젝트 생성

BASH
hugo new site my-hugo-blog
cd my-hugo-blog
git init
클릭하여 더 보기

2️⃣ 콘텐츠 이전

📦 Jekyll 포스트 가져오기

Hugo는 기본적으로 Jekyll import 기능을 제공합니다.

BASH
hugo import jekyll /path/to/old-jekyll-site
클릭하여 더 보기

이 명령어는 _posts 폴더의 .md 파일들을 content/posts/로 옮기고, assets, images 등의 정적 리소스를 static/ 폴더로 복사합니다.

🛠 Front Matter 정리

가장 많이 시간을 쏟았던 부분입니다.

🖼 이미지 경로 수정

Hugo는 static/ 폴더 아래의 리소스를 루트(/) 경로로 사용합니다. 예: static/images/foo.png/images/foo.png


3️⃣ 테마 선택 및 적용

Hugo는 정말 많은 테마를 제공합니다. 직접 themes.gohugo.io에서 살펴보며 테스트해보시는 걸 추천드립니다.

저는 다음 조건을 중요하게 봤습니다:

👉 최종적으로 저는 hugo-narrow 테마를 선택했습니다. 시작한 지 오래되진 않았지만, 저의 사용 목적과 잘 맞았고 디자인도 만족스러웠습니다.

테마 적용 방법 (Git Submodule 방식)

BASH
git submodule add https://github.com/<theme-repo> themes/narrow
echo 'theme = "narrow"' >> hugo.toml
클릭하여 더 보기

4️⃣ URL 구조 유지 (SEO)

기존 블로그가 검색 엔진에 노출되어 있었다면 URL 구조를 유지하는 것이 매우 중요합니다.

TOML
[permalinks]
  posts = "/:year/:month/:slug/"
클릭하여 더 보기

그리고 각 마크다운 파일에 아래 필드를 추가하세요:

YAML
slug: my-awesome-post
클릭하여 더 보기

이렇게 하면 2023/08/my-awesome-post/ 같은 경로로 빌드됩니다.


5️⃣ 빌드 및 배포

🔄 로컬 서버 확인

BASH
hugo server -D
클릭하여 더 보기

🚀 GitHub Pages로 배포

Hugo는 GitHub Actions 워크플로를 이용해 자동 배포가 가능합니다. 다음 템플릿을 참고하면 쉽게 설정할 수 있습니다:

또는 Netlify, Cloudflare Pages, Vercel 등에서 더 간편하게 배포할 수도 있습니다.


마치며

Hugo로의 마이그레이션은 저에게 있어 단순한 기술 교체 이상의 경험이었습니다. 속도, 구조, 관리 편의성 모든 면에서 만족스럽고, 블로그에 더 집중할 수 있는 환경이 된 것 같아 매우 만족스럽습니다.

혹시 지금 Jekyll을 쓰고 있고, 느린 빌드나 유지보수 문제로 고민 중이시라면 한 번쯤 Hugo를 고려해보시길 추천드립니다. 생각보다 훨씬 수월하게 옮겨올 수 있습니다!

라이선스

저작자: Jaehun Ryu

링크: https://jaehun.me/posts/jekyll%EC%97%90%EC%84%9C-hugo%EB%A1%9C%EC%9D%98-%EB%A7%88%EC%9D%B4%EA%B7%B8%EB%A0%88%EC%9D%B4%EC%85%98-%EA%B0%80%EC%9D%B4%EB%93%9C/

라이선스: CC BY 4.0

이 저작물은 크리에이티브 커먼즈 저작자표시 4.0 국제 라이선스에 따라 이용할 수 있습니다. 출처를 밝히면 상업적 목적을 포함해 자유롭게 이용 가능합니다.

댓글

검색 시작

검색어를 입력하세요

↑↓
ESC
⌘K 단축키