Hugo, Jekyll과 같은 정적 사이트 생성기를 통한 블로그 배포
Hugo, Jekyll과 같은 정적 사이트 생성기를 통한 블로그 배포
Hugo와 Jekyll은 정적 사이트 생성기(Static Site Generator, SSG)로, 빠르고 효율적인 블로그 운영과 배포를 지원합니다. 이들은 **정적 파일(HTML, CSS, JavaScript)**을 미리 생성해 서버에 배포하며, 속도가 빠르고 유지보수가 간편합니다. 아래는 Hugo와 Jekyll을 사용한 블로그 배포의 구체적인 절차와 전략입니다.
1. Hugo와 Jekyll의 차이점
| 기능 | Hugo | Jekyll |
|---|---|---|
| 언어 | Go 언어 | Ruby 언어 |
| 속도 | 매우 빠른 빌드 속도 | 느린 편 |
| 테마 지원 | 다수의 무료/유료 테마 지원 | GitHub Pages와 호환되는 테마 제공 |
| 배포 방식 | GitHub Pages, Netlify, Vercel 등 | GitHub Pages 권장 |
2. Hugo를 사용한 블로그 배포
1) Hugo 설치와 초기화
-
Hugo 설치:
bashbrew install hugo # macOS sudo apt-get install hugo # Ubuntu -
새 프로젝트 생성:
bashhugo new site my-blog cd my-blog -
테마 추가:
bashgit init git submodule add https://github.com/theNewDynamic/gohugo-theme-ananke themes/ananke -
테마 설정:
config.toml파일에 다음과 같이 테마를 설정합니다:tomltheme = "ananke" -
새 게시물 작성:
bashhugo new posts/my-first-post.md -
로컬 서버 실행:
bashhugo server -D브라우저에서
http://localhost:1313으로 접속해 사이트를 미리보기합니다.
2) Hugo 사이트 빌드
배포를 위해 정적 파일을 생성합니다:
bashhugo --minify
빌드된 파일은 public/ 디렉터리에 저장됩니다.
3) GitHub Pages에 배포
-
GitHub 리포지토리 생성 후 로컬 저장소와 연결합니다:
bashgit remote add origin https://github.com/username/my-blog.git git branch -M main -
배포 스크립트 작성:
.github/workflows/deploy.yml파일 생성:yamlname: Deploy Hugo Site on: push: branches: - main jobs: build: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Install Hugo run: sudo apt-get install hugo - name: Build Hugo site run: hugo --minify - name: Deploy to GitHub Pages uses: peaceiris/actions-gh-pages@v3 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./public -
커밋 및 푸시:
bashgit add . git commit -m "Initial commit" git push origin main -
GitHub Pages에서 Settings > Pages로 이동해 GitHub Actions 배포를 활성화합니다.
3. Jekyll을 사용한 블로그 배포
1) Jekyll 설치와 초기화
-
Jekyll 설치:
bashgem install jekyll bundler -
새 프로젝트 생성:
bashjekyll new my-blog cd my-blog -
로컬 서버 실행:
bashbundle exec jekyll serve브라우저에서
http://localhost:4000으로 접속해 사이트를 확인합니다.
2) Jekyll 사이트 배포
1) GitHub Pages에 배포
-
GitHub 리포지토리 생성 후 로컬 저장소와 연결합니다:
bashgit remote add origin https://github.com/username/my-blog.git git branch -M main -
Jekyll 설정:
_config.yml파일에 다음을 추가합니다:yamlremote_theme: minima -
GitHub Pages 배포:
- GitHub 리포지토리에 커밋 후 푸시합니다:
bash
git add . git commit -m "Initial commit" git push origin main
- GitHub 리포지토리에 커밋 후 푸시합니다:
-
Settings > Pages로 이동해 배포된 사이트를 확인합니다.
4. Netlify를 통한 Hugo/Jekyll 배포
- Netlify에 로그인하고 GitHub 리포지토리 연결.
- 빌드 설정:
- Hugo:
hugo --minify - Jekyll:
jekyll build - 배포 디렉터리:
public또는_site
- Hugo:
- 변경 사항이 푸시되면 Netlify가 자동으로 배포합니다.
5. Vercel을 통한 배포
- Vercel에 가입하고 GitHub 리포지토리와 연결.
- 빌드 명령:
- Hugo:
hugo --minify - Jekyll:
jekyll build
- Hugo:
- 사이트 변경 시마다 Vercel이 자동으로 재배포합니다.
6. 결론
Hugo와 Jekyll은 빠르고 효율적인 정적 사이트 생성기입니다. GitHub Pages, Netlify, Vercel을 통해 자동 배포를 쉽게 설정할 수 있습니다. GitHub Actions를 사용하면 문법 검사와 배포를 자동화할 수 있어, 블로그 운영과 유지보수가 간편해집니다.