Hugo, Jekyll과 같은 정적 사이트 생성기를 통한 블로그 배포

Hugo, Jekyll과 같은 정적 사이트 생성기를 통한 블로그 배포

HugoJekyll정적 사이트 생성기(Static Site Generator, SSG)로, 빠르고 효율적인 블로그 운영과 배포를 지원합니다. 이들은 **정적 파일(HTML, CSS, JavaScript)**을 미리 생성해 서버에 배포하며, 속도가 빠르고 유지보수가 간편합니다. 아래는 Hugo와 Jekyll을 사용한 블로그 배포의 구체적인 절차와 전략입니다.


1. Hugo와 Jekyll의 차이점

기능HugoJekyll
언어Go 언어Ruby 언어
속도매우 빠른 빌드 속도느린 편
테마 지원다수의 무료/유료 테마 지원GitHub Pages와 호환되는 테마 제공
배포 방식GitHub Pages, Netlify, Vercel 등GitHub Pages 권장

2. Hugo를 사용한 블로그 배포

1) Hugo 설치와 초기화

  1. Hugo 설치:

    bash
    brew install hugo # macOS sudo apt-get install hugo # Ubuntu
  2. 새 프로젝트 생성:

    bash
    hugo new site my-blog cd my-blog
  3. 테마 추가:

    bash
    git init git submodule add https://github.com/theNewDynamic/gohugo-theme-ananke themes/ananke
  4. 테마 설정:
    config.toml 파일에 다음과 같이 테마를 설정합니다:

    toml
    theme = "ananke"
  5. 새 게시물 작성:

    bash
    hugo new posts/my-first-post.md
  6. 로컬 서버 실행:

    bash
    hugo server -D

    브라우저에서 http://localhost:1313으로 접속해 사이트를 미리보기합니다.

2) Hugo 사이트 빌드

배포를 위해 정적 파일을 생성합니다:

bash
hugo --minify

빌드된 파일은 public/ 디렉터리에 저장됩니다.

3) GitHub Pages에 배포

  1. GitHub 리포지토리 생성 후 로컬 저장소와 연결합니다:

    bash
    git remote add origin https://github.com/username/my-blog.git git branch -M main
  2. 배포 스크립트 작성:
    .github/workflows/deploy.yml 파일 생성:

    yaml
    name: 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
  3. 커밋 및 푸시:

    bash
    git add . git commit -m "Initial commit" git push origin main
  4. GitHub Pages에서 Settings > Pages로 이동해 GitHub Actions 배포를 활성화합니다.


3. Jekyll을 사용한 블로그 배포

1) Jekyll 설치와 초기화

  1. Jekyll 설치:

    bash
    gem install jekyll bundler
  2. 새 프로젝트 생성:

    bash
    jekyll new my-blog cd my-blog
  3. 로컬 서버 실행:

    bash
    bundle exec jekyll serve

    브라우저에서 http://localhost:4000으로 접속해 사이트를 확인합니다.

2) Jekyll 사이트 배포

1) GitHub Pages에 배포

  1. GitHub 리포지토리 생성 후 로컬 저장소와 연결합니다:

    bash
    git remote add origin https://github.com/username/my-blog.git git branch -M main
  2. Jekyll 설정:
    _config.yml 파일에 다음을 추가합니다:

    yaml
    remote_theme: minima
  3. GitHub Pages 배포:

    • GitHub 리포지토리에 커밋 후 푸시합니다:
      bash
      git add . git commit -m "Initial commit" git push origin main
  4. Settings > Pages로 이동해 배포된 사이트를 확인합니다.


4. Netlify를 통한 Hugo/Jekyll 배포

  1. Netlify에 로그인하고 GitHub 리포지토리 연결.
  2. 빌드 설정:
    • Hugo: hugo --minify
    • Jekyll: jekyll build
    • 배포 디렉터리: public 또는 _site
  3. 변경 사항이 푸시되면 Netlify가 자동으로 배포합니다.

5. Vercel을 통한 배포

  1. Vercel에 가입하고 GitHub 리포지토리와 연결.
  2. 빌드 명령:
    • Hugo: hugo --minify
    • Jekyll: jekyll build
  3. 사이트 변경 시마다 Vercel이 자동으로 재배포합니다.

6. 결론

Hugo와 Jekyll은 빠르고 효율적인 정적 사이트 생성기입니다. GitHub Pages, Netlify, Vercel을 통해 자동 배포를 쉽게 설정할 수 있습니다. GitHub Actions를 사용하면 문법 검사와 배포를 자동화할 수 있어, 블로그 운영과 유지보수가 간편해집니다.

댓글 쓰기

여러분의 댓글은 큰 힘이 됩니다. 감사합니다.