Ruby์ Jekyll์ ์ด์ฉํ์ฌ GitHub Pages์์ ๋ธ๋ก๊ทธ๋ฅผ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ๋จ๊ณ๋ณ๋ก ์ดํด๋ณธ๋ค.
Ruby ์ค์น
๋จผ์ , Ruby๋ฅผ ์ค์นํด์ผ ํ๋ค. Ruby์ ๊ณต์ ์ค์น ํ๋ก๊ทธ๋จ์ธ RubyInstaller๋ฅผ ๋ฐฉ๋ฌธํ์ฌ ๊ถ์ฅํ๋ ์ต์ ๋ฒ์ ์ Ruby์ Devkit์ ๋ค์ด๋ก๋ํ๊ณ ์ค์นํ๋ค.
https://rubyinstaller.org/downloads/

์ค์น๊ฐ ์๋ฃ๋๋ฉด ์ปค๋งจ๋ ์ฐฝ์ ์ด๊ณ ๋ค์ ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํ์ฌ Ruby๊ฐ ์ ๋๋ก ์ค์น๋์๋์ง ํ์ธํ๋ค.
๋ฒ์ ์ ๋ณด๊ฐ ์ถ๋ ฅ๋๋ค๋ฉด ์ค์น๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋ ๊ฒ์ด๋ค.
ruby -v
ruby 3.3.4 (2024-07-09 revision be1089c8ec) [x64-mingw-ucrt]
Jekyll ์ค์น
Ruby ์ค์น๊ฐ ์๋ฃ๋๋ฉด, Jekyll๊ณผ Bundler๋ฅผ ์ค์นํ ์ฐจ๋ก์ด๋ค.
์ปค๋งจ๋ ์ฐฝ์์ ์๋ ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํ๋ค.
gem install jekyll bundler
์ค์น๊ฐ ์๋ฃ๋๋ฉด ๊ฐ ํจํค์ง์ ๋ฒ์ ์ ๋ณด๋ฅผ ํ์ธํ์ฌ ์ ์์ ์ผ๋ก ์ค์น๋์๋์ง ํ์ธํ๋ค.
jekyll -v
jekyll 4.3.3
bundler -v
Bundler version 2.5.17
Git Pages ์์ฑ
๋ค์์ผ๋ก, ๋ธ๋ก๊ทธ์ฉ GitHub Repository๋ฅผ ์์ฑํ๋ค.
GitHub์ ๋ก๊ทธ์ธํ ํ, ์๋ก์ด Repository๋ฅผ ์์ฑํ๋ฉฐ ์ด๋ฆ์ <username>.github.io ํ์์ผ๋ก ์ค์ ํ๋ค.
๋ ํฌ์งํ ๋ฆฌ๊ฐ ์์ฑ๋๋ฉด ํด๋น ์ฃผ์๋ฅผ ๋ธ๋ผ์ฐ์ ์ ์
๋ ฅํ์ฌ GitHub Pages์ ์ ๊ทผํ ์ ์๋ค.
์ดํ ๋ก์ปฌ ๋๋ ํ ๋ฆฌ์ ํด๋น ๋ ํฌ์งํ ๋ฆฌ๋ฅผ cloneํ์ฌ ์์
ํ ์ค๋น๋ฅผ ํ๋ค.
๋ค์ ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ํด๋ก ํ๋ค.
git clone https://github.com/<username>/<username>.github.io.git
Jekyll ์ด๊ธฐํ
Jekyll๋ก ์ฌ์ดํธ๋ฅผ ์์ฑํ๊ธฐ ์ํด ์๋์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ์ฌ ํ๋ก์ ํธ๋ฅผ ์ด๊ธฐํํ๋ค.
jekyll new ./
bundle install
์ด์ ์์ฑ๋ ์ฌ์ดํธ๋ฅผ ๋ก์ปฌ ํ๊ฒฝ์์ ์คํํด ๋ณผ ์ ์๋ค. ์๋ ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํ๋ค.
bundle exec jekyll serve
์ฃผ์์ฐฝ์ http://127.0.0.1:4000/๋ฅผ ์
๋ ฅํ๋ฉด ๊ธฐ๋ณธ ํ
๋ง๋ก ์์ฑ๋ ๋ธ๋ก๊ทธ๋ฅผ ํ์ธํ ์ ์๋ค.

์ค๋ฅ์ฒ๋ฆฌ
๋ง์ฝ jekyll new ./ ์ปค๋งจ๋ ์ ๋ ฅ ์ ์๋์ ๊ฐ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค๋ฉด
An error occurred while installing wdm (0.1.1), and Bundler cannot continue.

Jekyll ๋๋ ํ ๋ฆฌ์ Gemfile ํ์ผ์์ ์๋ ๋ถ๋ถ์ ์ฃผ์ ์ฒ๋ฆฌํ๋ค. ์ด ๋ถ๋ถ์ ํ์์ ์ธ ์์๊ฐ ์๋๊ธฐ ๋๋ฌธ์ ์๋์ ๋ฌธ์ ๊ฐ ์๊ธฐ์ง ์๋๋ค.
# gem "wdm", "~> 0.1.1", :platforms => [:mingw, :x64_mingw, :mswin]

Jekyll ํ ๋ง ์ ์ฉ
Jekyll์ ๋ค์ํ ํ
๋ง๋ฅผ ์ ์ฉํ๊ธฐ ์ํด Jekyll Themes ์น์ฌ์ดํธ๋ฅผ ๋ฐฉ๋ฌธํ๋ค.
์ํ๋ ํ
๋ง๋ฅผ ์ ํํ ํ Download ๋ฒํผ์ ํด๋ฆญํ์ฌ ๋ฆฌ์์ค๋ฅผ ๋ค์ด๋ก๋ํ๋ค.
http://jekyllthemes.org/
๋ค์ด๋ก๋ํ ์์ถ ํ์ผ์ ํ๊ณ , ๋ก์ปฌ ๋๋ ํ ๋ฆฌ์ ์๋ ๊ธฐ๋ณธ Jekyll ํ๋ก์ ํธ์ ํ์ผ๊ณผ ๋ฎ์ด์ด๋ค.
ํ
๋ง๋ฅผ ์ ์ฉํ๊ธฐ ์ํด ํ์ํ ํ์ผ์ด ํฌํจ๋์ด ์์ด์ผ ํ๋ค.
๋ง์ง๋ง์ผ๋ก, ๋ก์ปฌ์์ ์์
ํ ๋ด์ฉ์ GitHub Repository์ ์
๋ก๋ํ๋ค.
์ปค๋งจ๋ ์ฐฝ์์ ๋ค์ ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํ์ฌ ๋ณ๊ฒฝ ์ฌํญ์ ์ปค๋ฐํ๊ณ ํธ์ํ๋ค.
git add .
git commit -m "Apply Jekyll theme"
git push origin main
์ค๋ฅ์ฒ๋ฆฌ
ํ ๋ง ์ ์ฉ ํ bundle install ์ ํ๋๋ฐ๋ ์๋์ ๊ฐ์ ์๋ฌ๋ฉ์์ง๊ฐ ๋ํ๋๋ ๊ฒฝ์ฐ

์ด ๊ฒฝ์ฐ, ์ปค๋งจ๋ ์ฐฝ์์ ๋ค์ ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํ์ฌ webrick์ ์ถ๊ฐํด์ค๋ค.
Ruby 3.0.0 ๋ฒ์ ์ด์๋ถํฐ๋ gem์์ webrick์ด ๋น ์ ธ ์์ด ์๋์ผ๋ก ์ถ๊ฐํด์ผ ํ๋ค.
bundle add webrick
์ค๋ฅ์ฒ๋ฆฌ
_config.yml ํ์ผ์์ ์๊ฐ๋ ์ค์ ๋ณ๊ฒฝ ํ ๋ก์ปฌ ์คํ์ด ์ ๋๋ ๊ฒฝ์ฐ
Dependency Error: Yikes! It looks like you don't have tzinfo or one of its dependencies installed. In order to use Jekyll as currently configured, you'll need to install this gem. If you've run Jekyll with `bundle exec`, ensure that you have included the tzinfo gem in your Gemfile as well. The full error message from Ruby is: 'cannot load such file -- tzinfo' If you run into trouble, you can find helpful resources at https://jekyllrb.com/help/!
jekyll 4.3.3 | Error: tzinfo

์ปค๋งจ๋ ์ฐฝ์์ ๋ค์ ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํ์ฌ tzinfo-data๋ฅผ ์ค์นํ๋ค.
gem install tzinfo-data
๋ํ, Gemfile ํ์ผ์ tzinfo๋ฅผ ์ถ๊ฐํ๋ค.
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo'
gem "tzinfo-data", platforms: [:mingw, :mswin, :x64_mingw, :jruby]

๋ค์ ๋ก์ปฌ ์คํ์ ํด๋ณด๋ฉด ์ ์๋ํ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
bundle exec jekyll serve
์ค๋ฅ์ฒ๋ฆฌ
๋ก์ปฌ ์คํ ์ .min.js ํ์ผ์ด ์๋ค๋ ์๋ฌ ๋ฉ์์ง๊ฐ ๋จ๋ ๊ฒฝ์ฐ

์๋ ์ปค๋งจ๋๋ก build ํด์ค๋ค.
npm i && npm run build
์๋๋ sh tools/init.sh ๋ช
๋ น์ด๋ก ์ด๊ธฐํ๋ฅผ ์์ผ์ฃผ๋ฉด ๊ฐ๋จํ ์ผ์ธ๋ฐ, Windows์์๋ sh ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ init.sh ์คํฌ๋ฆฝํธ์ ์๋ ๋ด์ฉ์ ์๋์ผ๋ก ์์
ํด ์ฃผ์ด์ผ ํ๋ค. ๋น๋ ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํ์ฌ dist ๋๋ ํ ๋ฆฌ๊ฐ ์์ฑ๋๋ฉด ์คํฌ๋ฆฝํธ๋ ์ ์๋ํ๊ณ ์ค๋ฅ๋ ์ฌ๋ผ์ง๋ค.
๋ง๋ฌด๋ฆฌ
์ด์ ์น ๋ธ๋ผ์ฐ์ ์์ <username>.github.io๋ฅผ ์ ๋ ฅํ๋ฉด ํ ๋ง๋ฅผ ์ ์ฉํ ๋ธ๋ก๊ทธ๋ฅผ ํ์ธํ ์ ์๋ค.
์ฐธ์กฐ
https://talk.jekyllrb.com/t/newbie-problems-with-wdm-errors/9233/4
https://thegeekcat.github.io/blogging/tzinfoError/