Jekyll์ ๋ํ์ฌ
Jekyll ํ๋ก์ ํธ React์ฒ๋ผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๊ธ์ ๋๋ค.
Jekyll๋ก ๋ธ๋ก๊ทธ๋ฅผ ์ ์ํ๋ ์ค, ๊ธฐ์กด React์ ๊ฐ๋ฐํ๊ฒฝ์ ์ต์ํ๋ ์ ๋ ๋ต๋ตํจ์ ๋๊ผ์ต๋๋ค. ๊ทธ๋์ ๋ ์์ธํ ์์๋ณด์์ต๋๋ค.
Jekyll์ ๋ฌด์์ธ๊ฐ?
Jekyll์ ์ ์ ์ฌ์ดํธ ์์ฑ๊ธฐ์ ๋๋ค. ์ ์ ์ฌ์ดํธ ์์ฑ๊ธฐ๋ ์ฌ์ ์ ์ปดํ์ผ๋ ์ ์ ํ์ผ์ ์์ฑํ์ฌ ์น ์๋ฒ์ ๋ฐฐํฌํฉ๋๋ค. ๋์ ์ปจํ ์ธ ๋ฅผ ์์ฑํ๋ ์๋ฒ ์ธก ์คํฌ๋ฆฝํธ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฐ์ ๋์ ์์๋ฅผ ์ฌ์ฉํ์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ์น ์ฌ์ดํธ๋ฅผ ๊ตฌ์ถํ๊ณ ํธ์คํ ํ๊ธฐ์ ๋งค์ฐ ์ ์ฉํ ๋๊ตฌ๋ผ๊ณ ํ ์ ์์ต๋๋ค.
์ ์ (static)์ผ๋ก ๋ง๋ค๋ฉด ์ด๋ค ์ด์ ์ด ์์๊น?
๋ฐ๋ก ๋น ๋ฅธ ๋ก๋ฉ ์๋, ๋ณด์์ฑ, ํธ์คํ ๋ฐ ๋ฐฐํฌ์ ์ฉ์ด์ฑ์ ๋๋ค. ์ ์ ํ์ผ์ ์บ์ฑ๋๋ฏ๋ก ์๋ฒ์ ๋ง์ ๋ถํ๋ฅผ ์ฃผ์ง ์์ผ๋ฉฐ, ๋ณด์ ์ํ์ด ์ ์ต๋๋ค. ๋ํ ์ ์ ์ฌ์ดํธ๋ฅผ ํธ์คํ ํ๊ธฐ ์ํด ๋จ์ํ๊ฒ ์น ์๋ฒ๋ง ํ์ํ๊ธฐ์ ํน๋ณํ ์๋ฒ ์ค์ ์ด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ์ด ํ์ํ์ง ์์ต๋๋ค. (๊ตณ)
์ React ๊ฐ๋ฐ์๊ฐ ๋ต๋ตํจ์ ๋๊ผ์๊น?
Jekyll์ ์์๋ณด๋ฉฐ ๊นจ๋ฌ์์ต๋๋ค. React๋ ๊ฐ์ DOM์ ์ฌ์ฉํ์ฌ ํจ์จ์ ์ธ UI ์ ๋ฐ์ดํธ๋ฅผ ์ ๊ณตํด์ค๋๋ค. ์ด๋ ์ฌ์ฉ์์์ ์ํธ์์ฉ์ ๋ฐ๋ผ ๋์ ์ผ๋ก UI๊ฐ ๋ณด์ธ๋ค๋ ๊ฒ์ด๊ณ , ์ ๊ฐ Jekyll์ ์ฌ์ฉํ๋ฉฐ ๋ต๋ตํจ์ ๋๊ผ๋ ๋ถ๋ถ์ด์์ต๋๋ค.
๊ทธ๋ ๋ค๋ฉด ์ต๋ํ React์ฒ๋ผ ์ธ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์๊น์?
๋ฐ๋ก Guard๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค! Guard๋ Jekyll(์ฆ Ruby๊ธฐ๋ฐ ํ๋ก์ ํธ)์์ ํ์ผ ์์คํ ์ด๋ฒคํธ๋ฅผ ๋ชจ๋ํฐ๋งํ๊ณ ํน์ ์์ ์ ์คํํ๋ ๋๊ตฌ์ ๋๋ค. ์ด๋ ์์ค ์ฝ๋ ๋ณ๊ฒฝ, ํ์ผ ์์ฑ๊ณผ ์ญ์ ๊ฐ์ ํ์ผ ์์คํ ์ด๋ฒคํธ๋ฅผ ๊ฐ์งํ๊ณ ์ด์ ๋์ํ์ฌ ์ฌ์ฉ์๊ฐ ์ง์ ํ ์์ ์ ์คํํด์ค๋๋ค. ์ฃผ๋ก ๊ฐ๋ฐ ์์ ์ ์๋ํ๋ฅผ ์ํด ์ฌ์ฉ๋๋ ํธ์ ๋๋ค!
Guard๊ฐ ๋ญํ๋์ง๋ ์๊ฒ ์ต๋๋ค, ๊ทผ๋ฐ Jekyll ํ๋ก์ ํธ์ ์ด๋ป๊ฒ ์ ์ฉํ ๊น์?
์ ์ฉ ์์ ํฐ๋ฏธ๋ ๋๋ ๋ช ๋ น ํ๋กฌํํธ์์ bundle install ๋ช ๋ น์ด๋ฅผ ์คํํ์ฌ ์์กด์ฑ์ ์ค์นํฉ๋๋ค.
gem 'jekyll'
gem 'guard-jekyll-plus'
ํ๋ก์ ํธ ๋๋ ํ ๋ฆฌ์์ Guardfile์ ์์ฑํ๊ธฐ ์ํด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค:
bundle exec guard init jekyll_plus
Guardfile์ ์์ฑํ๊ณ Guard Jekyll Plus์ ๊ด๋ จ๋ ์ค์ ์ ์ถ๊ฐํฉ๋๋ค.
guard :jekyll_plus, command: 'bundle exec jekyll serve' do
watch %r{^.*\.(md|markdown|html)$}
watch %r{^_config\.yml$}
# ๋ค๋ฅธ ํ์ผ ๊ฐ์ ๊ท์น ์ถ๊ฐ ๊ฐ๋ฅ
end
Guard๋ฅผ ์คํํ๊ณ Jekyll์ ์์ํฉ๋๋ค. Jekyll์ ๋ณ๊ฒฝ ์ฌํญ์ ์ค์๊ฐ์ผ๋ก ๊ฐ์งํ๊ณ ์ฌ์ดํธ๋ฅผ ๋์ ์ผ๋ก ์ ๋ฐ์ดํธ๋ฅผ ํ ์ ์๊ฒ ๋์์ต๋๋ค.