[Step by Step Tutorial] 10. Deployment
์ด์ ๋ง์ง๋ง ๋จ๊ณ๋ก ์ฌ์ดํธ๋ฅผ ๋ฐฐํฌํ ์ค๋น๊ฐ ๋์๋ค.
#
Gemfile์ฌ์ดํธ์ Gemfile์ ๊ฐ๊ณ ์๋ ๊ฒ์ ์ข์ ๊ด์ต์ด๋ค. ์ด๊ฒ์ Jekyll์ ๋ฒ์ ผ์ ํ์คํ๊ฒํด์ฃผ๊ณ , ๋ค๋ฅธ ํ๊ฒฝ์์ gem๋ค์ด ์ผ๊ด์ฑ์ ์ ์งํ๊ฒ ํด์ค๋ค.
Gemfile
์ ๋ฃจํธ ๋๋ ํ ๋ฆฌ์ ๋ค์๊ณผ ๊ฐ์ด ๋ง๋ ๋ค.
source 'https://rubygems.org'
gem 'jekyll'
๊ทธ๋ฆฌ๊ณ ๋์ ํฐ๋ฏธ๋์์ bundle install
์ ์คํํ๋ค. ์ด๊ฒ์ gems๋ฅผ ์ค์นํ๊ณ , Gemfile.lock
์ ๋ง๋ ๋ค. Gemfile.lock
์ ํ์ฌ์ gem ๋ฒ์ ผ์ ๋ค์์ ์์ bundle install
์ ๊น์ง ๊ณ ์ ์ํจ๋ค. ๋ง์ฝ gem ๋ฒ์ ผ์ ์
๋ฐ์ดํธํ๊ณ ์ถ๋ค๋ฉด bundle update
๋ฅผ ์คํํ ์ ์๋ค.
Gemfile
์ ์ฌ์ฉํ๋ฉด, ์ด์ jekyll serve
๋ช
๋ น์ด ์์ bundle exec
๋ช
๋ น์ด๋ฅผ ๋ถ์ฌ์ ์คํํด์ผ ํ๋ค.
bundle exec jekyll serve
์ด๊ฒ์ Gemfile
์ ์ ํด์ง gem๋ค๋ง ์ฌ์ฉํ๋๋ก Ruby ํ๊ฒฝ์ ์ ํํ๋ค.
#
PluginsJekyll์ ๋ง์ ํ๋ฌ๊ทธ์ธ์ ๊ฐ์ง๊ณ ์๋ค. - Jekyll plugins
๊ทธ ์ค ๊ฑฐ์ ๋ชจ๋ Jekyll ์ฌ์ดํธ์์ ์ ์ฉํ ์ธ ๊ฐ์ง ๊ณต์์ ์ธ ํ๋ฌ๊ทธ์ธ์ด ์๋ค.
Jekyll-sitemap : ๊ฒ์ ์์ง์ด ์ฐ๋ฆฌ์ ์ฌ์ดํธ ์ฝํ ์ธ ๋ฅผ ์ ์ฐพ์ ์ ์๋๋ก sitemap์ ๋ง๋ค์ด์ค๋ค.
Jekyll-feed : ํฌ์คํธ์ RSS feed๋ฅผ ๋ง๋ค์ด์ค๋ค.
Jekyll-seo-tag : SEO๋ฅผ ์ํด meta tag๋ค์ ์ถ๊ฐํด์ฃผ๋๋ฐ ๋์์ ์ค๋ค.
์ด ์ธ ๊ฐ์ง ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ๊ธฐ ์ํด์ Gemfile
์ ์ถ๊ฐํ๋ค.
source 'https://rubygems.org'
gem 'jekyll'
group :jekyll_plugins do gem 'jekyll-sitemap' gem 'jekyll-feed' gem 'jekyll-seo-tag'end
๊ทธ๋ฆฌ๊ณ _config.yml
์๋ ๋ค์์ ์ถ๊ฐํ๋ค.
plugins: - jekyll-feed - jekyll-sitemap - jekyll-seo-tag
๊ทธ๋ฆฌ๊ณ ์ด์ bundle update
๋ฅผ ์คํํ๋ค.
jekyll-sitemap
์ ์ด๊ฒ๋ง์ผ๋ก sitemap์ ๋น๋์์ ๋ง๋ค์ด๋ธ๋ค.
jekyll-feed
์ jekyll-seo-tag
๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ _layouts/default.html
์ ๋ฐ๋ก ํ๊ทธ๋ฅผ ์ถ๊ฐํด ์ฃผ์ด์ผ ํ๋ค.
<!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title>{{ page.title }}</title> <link rel="stylesheet" href="/assets/css/styles.css" /> {% feed_meta %} {% seo %} </head> <body> {% include navigation.html %} {{ content }} </body></html>
Jekyll ์๋ฒ๋ฅผ ์ฌ์์ํ๊ณ <head>
์ ํ๊ทธ๊ฐ ์ ์ถ๊ฐ๋์๋์ง ํ์ธํ๋ค.
#
Environments๋๋๋ก ์ฌ์ดํธ๋ฅผ ๋ง๋ค์์ ๋๋ ๊ฒฐ๊ณผ๋ฅผ ํ์ํ๊ณ ์ถ์ง๋ง, ๊ฐ๋ฐ ์ค์ผ ๋๋ ํ์ํ์ง ์๊ณ ์ถ์ ์ ์๋ค. disqus ๋๋ Google Analytics ๋ฑ์ด ๊ทธ๋ฌํ๋ฐ, ์ด๊ฒ์ ์ํด์๋ environments๋ฅผ ์ฌ์ฉํ ์์๋ค.
JEKYLL_ENV
๋ผ๋ ํ๊ฒฝ ๋ณ์๋ฅผ ์ฌ์ฉํ๋ค.
JEKYLL_ENV=production bundle exec jekyll build
๊ธฐ๋ณธ์ ์ผ๋ก JEKYLL_ENV
๋ development๋ก ๋์ด์๋ค. JEKYLL_ENV
๋ liquid ๋ฌธ๋ฒ์ผ๋ก jekyll.environment
๋ก ์ ๊ทผ ๊ฐ๋ฅํ๋ค. ๋ฐ๋ผ์ ๋ค์๊ณผ ๊ฐ์ด ํ๋ฉด analytics script๋ฅผ production์์๋ง ํ์ํ๋๋ก ํ ์ ์๋ค.
{% if jekyll.environment == "production" %}<script src="my-analytics-script.js"></script>{% endif %}
#
Deployment๋ง์ง๋ง์ผ๋ก ์ฌ์ดํธ ์ฐ์ถ๋ฌผ์ ์๋ฒ๋ก ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ด๋ค. ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ์ ๋ค์์๋ช ๋ น์ด๋ฅผ ์คํํ๋ ๊ฒ์ด๋ค.
JEKYLL_ENV=production bundle exec jekyll build
๊ทธ๋ฆฌ๊ณ ์ด ๋ช
๋ น์ด๋ฅผ ์คํํด์ ๋ง๋ค์ด์ง _site
๋๋ ํ ๋ฆฌ์ ์ฝํ
์ธ ๋ฅผ ๋ณต์ฌํด ์๋ฒ๋ก์ ๊ณตํ๋ค.
๋ ์ข์ ๋ฐฉ๋ฒ์ผ๋ก๋ CI ๋๋ ์๋ํํฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค.