wan의 개발일기

GitHub Pages로 정적 사이트 배포 본문

Git, Github/Github 심화

GitHub Pages로 정적 사이트 배포

wan_ 2026. 5. 3. 14:09

들어가며

GitHub Pages는 별도 서버 없이 GitHub 저장소에서 바로 정적 사이트를 호스팅할 수 있는 서비스다.
포트폴리오, 문서 사이트, 블로그 등을 무료로 배포할 수 있다. 배포 방식을 제대로 정리해둔다.


GitHub Pages란?

GitHub 저장소의 특정 브랜치나 디렉토리를 기준으로 정적 파일을 호스팅하는 서비스다.

https://<username>.github.io               # 개인 페이지
https://<username>.github.io/<repository>  # 프로젝트 페이지

무료 플랜에서 공개 저장소는 무제한, 비공개 저장소는 GitHub Pro 이상에서 사용 가능하다.


배포 방식 두 가지

방식 1: 브랜치 직접 배포

특정 브랜치의 루트 또는 /docs 폴더를 그대로 배포하는 방식이다.

저장소 → Settings → Pages → Source → Deploy from a branch
브랜치: main 또는 gh-pages
폴더: / (root) 또는 /docs

방식 2: GitHub Actions로 배포 (권장)

빌드 과정이 필요한 프레임워크(React, Vue, Jekyll 등)에 적합하다.

저장소 → Settings → Pages → Source → GitHub Actions

실전 예시

순수 HTML/CSS/JS 배포

별도 빌드 없이 main 브랜치 루트를 그대로 배포한다.

저장소 루트
├── index.html
├── style.css
└── script.js

Settings → Pages → Deploy from a branch → main / root 선택 후 저장하면 자동 배포된다.

React 앱 배포 (GitHub Actions)

# .github/workflows/deploy.yml

name: Deploy to GitHub Pages

on:
  push:
    branches: [ main ]

jobs:
  deploy:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      pages: write
      id-token: write

    steps:
      - uses: actions/checkout@v4

      - uses: actions/setup-node@v4
        with:
          node-version: '20'
          cache: 'npm'

      - name: 의존성 설치
        run: npm ci

      - name: 빌드
        run: npm run build

      - name: Pages 설정
        uses: actions/configure-pages@v4

      - name: 빌드 결과 업로드
        uses: actions/upload-pages-artifact@v3
        with:
          path: './dist'

      - name: 배포
        uses: actions/deploy-pages@v4

Vite 프로젝트 설정

GitHub Pages는 저장소 이름이 서브 경로로 붙기 때문에 vite.config.js에 base 설정이 필요하다.

// vite.config.js
export default {
  base: '/저장소이름/',
}

Jekyll 블로그 배포

Jekyll은 GitHub Pages에서 기본으로 지원한다. _config.yml만 설정하면 자동 빌드된다.

# _config.yml
title: wan의 개발일기
description: 개발 학습 기록
baseurl: "/blog"
url: "https://username.github.io"

커스텀 도메인 연결

구매한 도메인을 GitHub Pages에 연결할 수 있다.

1. 저장소 루트에 CNAME 파일 생성
   내용: www.example.com

2. 도메인 DNS 설정
   CNAME 레코드: www → username.github.io

3. Settings → Pages → Custom domain 입력
4. Enforce HTTPS 체크

주의사항

- 정적 파일만 호스팅 가능 (서버 사이드 로직 불가)
- 저장소 용량 1GB 이하 권장
- 월 100GB 소프트 대역폭 제한
- 빌드 시간 10분 제한
- 비공개 저장소는 GitHub Pro 이상 필요

정리

항목 내용
개인 페이지 URL https://<username>.github.io
프로젝트 페이지 URL https://<username>.github.io/<repo>
브랜치 직접 배포 빌드 없는 정적 파일에 적합
GitHub Actions 배포 React, Vue 등 빌드 필요한 경우
Vite base 설정 /저장소이름/ 경로 설정 필수
커스텀 도메인 CNAME 파일 + DNS 설정

'Git, Github > Github 심화' 카테고리의 다른 글

Submodule & Monorepo 개념  (0) 2026.05.04
Git Hooks 활용하기  (0) 2026.05.03
오픈소스 기여하기 (fork, PR)  (0) 2026.05.03
GitHub Issues & Projects로 일감 관리  (0) 2026.05.03
GitHub Actions으로 CI/CD 입문  (0) 2026.05.03