์คํ์ ๋ธ๋ก๊ทธ ์๋น์ค๋ ํฐ์คํ ๋ฆฌ๋ ์๋ํ๋ ์ค์ฒ๋ผ ๋ด๊ฐ ์ํ๋ ํ ๋ง๋ก UI๋ฅผ ๋ฐ๊ฟ์๊ฐ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์นดํ ๊ณ ๋ฆฌ ๋ถ๋ฅ๋ ์ ๋ฉ๋๋ค. ๊ตฌ๊ธ ํต๊ณ/๊ตฌ๊ธ ๊ด๊ณ ๋ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๋์ ์์ฌ์ด ์ ์ด ๋ง์์.
์ด๋ฒ์๋ ์คํ์ ๊ธ๋ก ๊นํ๋ธ ํ์ด์ง ๋ธ๋ก๊ทธ๋ฅผ ๋ง๋ค์์ต๋๋ค. ๋ธ๋ก๊ทธ UI(ํ
๋ง)๋ ์คํ์์ค์์ ์ฐพ์์ ์ ์ฉํ๊ณ , ์นดํ
๊ณ ๋ฆฌ๋ ์คํ์์ ๊ธ ์ ๋ชฉ์ด [์นดํ
๊ณ ๋ฆฌ] ์ ๋ชฉ ํํ๋ฉด ๋ถ๋ฅํ๋๋ก ํ์ต๋๋ค. ์ฐธ๊ณ ๋ก, ์ด์ ๊ธ [Hexo Steem ๊ฐ์ธ ๋ธ๋ก๊ทธ ๋ง๋ค๊ธฐ]์์๋ ๊นํ๋ธ ํ์ด์ง(GitHub Pages)๋ก ๋ธ๋ก๊ทธ ๋ง๋ค๊ธฐ ํฌ์คํ
์ ํ๋ฒ ํ์์ต๋๋ค.
๊นํ๋ธ ํ์ด์ง(GitHub Pages)๋ ๋ฌด๋ฃ์ ๋๋ค. ๊ทธ๋์ ๊ฐ์ธ ๋ธ๋ก๊ทธ์ ๋ง์ด ์ฌ์ฉ๋ฉ๋๋ค. ๊นํ๋ธ ํ์ด์ง์ ๋ธ๋ก๊ทธ ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ Jekyll, Hexo, Gatsby ๋ฑ์ด ์์ต๋๋ค. ๋ํ์ ์ผ๋ก [์นด์นด์ค ๊ธฐ์ ๋ธ๋ก๊ทธ]๊ฐ ๊นํ๋ธ ํ์ด์ง๋ก ์ด์๋๊ณ ์์ต๋๋ค.
์ด๋ฒ์๋ Gatsby๋ฅผ ์ฌ์ฉํ์ฌ ๊นํ๋ธ ํ์ด์ง์ ๋ธ๋ก๊ทธ๋ฅผ ๋ง๋ค์ด ๋ณด๊ฒ ์ต๋๋ค. Gatsby๋ ๋น๋ ์๋๊ฐ ๋งค์ฐ ๋น ๋ฆ ๋๋ค. ๊ทธ๋ฆฌ๊ณ React์ GraphQL์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ฌ์ดํธ๊ฐ ๊ฐ๋ณ๊ณ ๋น ๋ฆ ๋๋ค.
์ฐธ๊ณ ๋ก Hexo์ Gatsby๋ ๋ ๋ค ์ ์ (HTML) ์ฌ์ดํธ ์์ฑ๊ธฐ์ ๋๋ค. Hexo๋ ๋ชจ๋ ํ์ด์ง(HTML)์ ์์ฑํ๋ ๋ฐ๋ฉด, Gatsby๋ React์ GraphQL๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ดํธ๋ฅผ SPA๋ก ๋ง๋ญ๋๋ค.
Gatsby๋ฅผ ์ด์ฉํ์ฌ ๋ง๋ ๋ธ๋ก๊ทธ๋ ์๋ URL๋ก ์ ์ํ๋ฉด ๋ณผ ์ ์์ต๋๋ค.
์๋๋ถํฐ๋ ์คํ์์ Gatsby ๋ธ๋ก๊ทธ๋ก ์์ฑํ๊ณ , ๊นํ๋ธ ํ์ด์ง์ ๋ฐฐํฌํ๋ ๊ณผ์ ์ ๊ธฐ๋กํ ๊ธ์
๋๋ค. Gatsby ์ฌ์ฉ ๋ฐฉ๋ฒ์ ๋ ์์ธํ ์๊ณ ์ถ์ผ๋ฉด Gatsby ๊ณต์ ํํ ๋ฆฌ์ผ์ ์ฐธ๊ณ ํ๊ธฐ ๋ฐ๋๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ธ๋ก๊ทธ ์์ค๋ ๊นํ๋ธ(https://github.com/anpigon/blog)์ ๋ชจ๋ ๊ณต๊ฐ๋์ด์์ต๋๋ค.
๋จผ์ Gatsby CLI๋ฅผ ์ค์นํ๋ค. ๋๋ ์ฃผ๋ก yarn์ ์ฌ์ฉํ๋ค. ๊ทธ๋์ yarn๊ณผ npm ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ๋ชจ๋ ๊ธฐ์ ํ์๋ค.
$ yarn global add gatsby-cli
#๋๋
$ npm i -g gatsby-cli
์ฌ์ดํธ ์์ฑ์ gatsby new <ํ๋ก์ ํธ๋ช
> ๋ช
๋ น์ผ๋ก ํ๋ค. gatsby๋ "์คํํฐ"(๊ธฐ๋ณธ ๊ตฌ์ฑ์ด ์๋ ์ผ๋ถ๋ง ๊ตฌ์ฑ๋ ์ฌ์ดํธ)๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ดํธ๋ฅผ ์์ฑํ ์๋ ์๋ค. ๋๋ lumen ํ
๋ง๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด gatsby-starter-lumen ์คํํฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ดํธ๋ฅผ ์์ฑํ๋ค.
์ฌ์ดํธ๋ฅผ ์์ฑํ๋ ค๋ฉด, ์๋ ๋ช
๋ น์ด๋ฅผ ์ฐจ๋ก๋๋ก ์
๋ ฅํ๋ค.
$ gatsby new blog https://github.com/alxshelepenok/gatsby-starter-lumen
$ cd blog
$ yarn develop #๋๋ npm run develop
develop๊ฐ ์ฑ๊ณตํ๊ณ ๋์, ๋ธ๋ผ์ฐ์ ์์ http://localhost:8000 ๋ฅผ ์ ์ํ๋ฉด ํ์ธ ํ ์ ์๋ค.
๋ณด์ด๋ ํ์ด์ง๋ ์ํ ๋ธ๋ก๊ทธ ์ฌ์ดํธ๋ค.
ํน์ hexo์ฒ๋ผ gatsby๋ ์คํ์ ํ๋ฌ๊ทธ์ธ์ด ์์ง ์์๊น? ํด์ ์ฐพ์๋ดค๋ค. ์ญ์ ์์๋ค.
gatsby-source-steem ํ๋ฌ๊ทธ์ธ์ ์ค์นํ๋ค.
yarn add gatsby-source-steem
#๋๋
$ npm i -save gatsby-source-steem
๊ทธ๋ฆฌ๊ณ gatsby-config.js ํ์ผ์ gatsby-source-steem ํ๋ฌ๊ทธ์ธ ์ค์ ์ ์ถ๊ฐํ๋ค.
module.exports = {
plugins: [
{
resolve: 'gatsby-source-steem',
options: {
tag: 'sekhmet', // ์คํ์ ์์ด๋ ์
๋ ฅ
sortBy: 'blog',
},
}
],
};
๊ทธ๋ฐ๋ฐ ์ํ๋๋ฐ๋ก ๋์ํ์ง ์์๋ค. ๊ทธ๋์ ํด๋น ํ๋ก์ ํธ๋ฅผ ๋ด ๊นํ๋ธ๋ก ํฌํฌ(Fork)ํ๊ณ ์ฝ๋๋ฅผ ์์ ํ๋ค.
๋ด๊ฐ ์์ ํ gatsby-source-steem ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์ค์นํ๋ค.
$ yarn add git+https://github.com/anpigon/gatsby-source-steem.git
#๋๋
$ npm i -save git+https://github.com/anpigon/gatsby-source-steem.git
๊ทธ๋ฆฌ๊ณ gatsby-config.js ํ์ผ์ ์๋์ ๊ฐ์ด ์ค์ ํ๋ค.
plugins: [
{
resolve: 'gatsby-source-steem',
options: {
path: `${__dirname}/src/pages/articles`, // posts.md ํ์ผ ์์ฑ ๊ฒฝ๋ก
tag: 'anpigon', // ์คํ์ ์์ด๋
sortBy: 'blog',
},
},
]
develop๋ฅผ ์คํํ์ฌ ๋ก์ปฌ์์ ํ์ธํด๋ณด์.
$ gatsby develop
๋ธ๋ผ์ฐ์ ์์ http://localhost:8000๋ฅผ ์ ์ํ๋ฉด ์๋์ ๋น์ทํ ํ๋ฉด์ ๋ณผ ์ ์๋ค. ๋ด๊ฐ ์คํ์์์ ์์ฑํ ๊ธ๋ค์ด๋ค.
๊นํ๋ธ์ ์ ์ฅ์๋ฅผ ์์ฑํ๋ค. ๊ทธ๋ฆฌ๊ณ package.json ํ์ผ์ ์ด์ด repository์ url๋ฅผ ์์ ํ๋ค. ๊ทธ๋ฆฌ๊ณ homepage๋ฅผ ์ถ๊ฐํ๋ค. homepage๋ https://<์ ์ ๋ช
>.github.io/<ํ๋ก์ ํธ๋ช
>ํํ์ด๋ค.
{
"repository": "git+https://github.com/anpigon/blog.git",
"homepage": "https://anpigon.github.io/blog",
}
๋ง์ง๋ง์ผ๋ก deploy๋ช
๋ น์ ์คํํ๋ค. ์์ฑ๋ ๋ธ๋ก๊ทธ๋ฅผ ๊นํ๋ธ ํ์ด์ง์ ์
๋ก๋ํ๋ ์ ์ผ ์ค์ํ ๊ณผ์ ์ด๋ค.
$ yarn deploy
#๋๋
$ npm run deploy
์ฌ๊ธฐ๊น์ง ๋ธ๋ก๊ทธ ์์ฑํ๊ณ ๋ฐฐํฌํ๊ธฐ ๋.
์ฌ์ค ์ ๋ Travis-ci ์์ ๋ธ๋ก๊ทธ๋ฅผ ์๋ ๋ฐฐํฌํ๋ ๊ณผ์ ๊น์ง ํ๊ณ ์ถ์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ Travis-ci์์๋ ๋น๋ํ๋ ๊ณผ์ ์ค์ sharp ๋ชจ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ๊ทธ๋์ ๋น๋๊ฐ ์๋๋ค์. ใ
ใ
Travis-ci์๋ sharp ๋ชจ๋ ์ปดํ์ผ์ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋๋ฝ๋์ด ์์ด์, ์ค๋ฅ๊ฐ ๋๋ ๊ฒ ์๋๊น ์๊ฐํ๊ณ ์์ต๋๋ค. ํน์ ์ด ์ค๋ฅ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์์๋ ๋ถ์ ์๋ ค์ฃผ์ธ์. ใ ใ
์์ฆ์ ๊ฐ์ธ ๋ธ๋ก๊ทธ ํธ์คํ ์ Netlify ์๋น์ค๋ ๋ง์ด ์ด์ฉํ๊ณ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด ์๋น์ค๋ ์๋ ๋น๋/๋ฐฐํฌ/ํธ์คํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค๊ณ ํด์. ๊ทธ๋์ ๋ค์๋ฒ์๋ Netlify๋ฅผ ์ฌ์ฉํ ์คํ์ ๋ธ๋ก๊ทธ ์๋ ๋ฐฐํฌ๋ฅผ ํด๋ณผ ๊ฑฐ์์. ใ ใ
์ฐธ๊ณ : Hugo์ Netlify๋ก '์ค๋งค์ฑ' ์น์ฌ์ดํธ ๋ง๋ค๊ธฐ
๋๋ฌธ ์ด๋ฏธ์ง๋ ๋๋ฌธ ์ฅ์ธ ๋ ์ด์ฒผ(imrahelk)๋์ ์ํ์
๋๋ค. ๋๋๊ฒ๋ ์ ์๊ตฌ์ฌํญ์ ์ ํํ๊ฒ ํ์
ํ๊ณ ๋ง๋ค์ด์ฃผ์
จ์ด์.๐
์ฌ๊ธฐ๊น์ง ์ฝ์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
์คํ ๋ธ๋ก์ฒด์ธ ๊ธฐ๋ฐ ์ฃผ์ฌ์ ๊ฒ์