์ฌ์ดํธ๊ฐ ๊ฐ๋ฐ ๋ชจ๋์์ ์คํ ์ค์ธ์ง ํ๋ก๋์ ๋ชจ๋์์ ์คํ ์ค์ธ์ง์ ๋ฐ๋ผ ํ์ด์ง ๊ตฌ์ฑ ์์์์ GraphQL ์ฟผ๋ฆฌ๋ฅผ ์์ ํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
์ฟผ๋ฆฌ ํ ์คํธ๋ฅผ ์ง์ ์กฐ์ ํ ์๋ ์์ง๋ง dev ๋๋ prod ๋ชจ๋์ ์๋์ง์ ๋ฐ๋ผ ๋ค๋ฅธ ์ปจํ ์คํธ๋ฅผ ์ ๋ฌํ ์ ์์ต๋๋ค.
https://github.com/gatsbyjs/gatsby/issues/10844#issuecomment -471349943์ ์ค๋ช ๋ ๋ฌธ์ ๋ฅผ ์ฐธ์กฐํ๋ ๊ฒฝ์ฐ
ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ๋ธ๋ก๊ทธ ๋ชฉ๋ก์ ์์ฑํ๋ฏ๋ก context
๋ฅผ ์ ๋ฌํ์ฌ ์ฟผ๋ฆฌ ํ ์ โโ์์ต๋๋ค.
createPage({
path: "/blog",
template: <some_template>,
context: {
draftBlacklist: process.env.NODE_ENV === `production` ? [true] : []
}
})
๊ทธ๋ฆฌ๊ณ ์ฟผ๋ฆฌ์์ :
query BlogListing($draftBlacklist: [String!]!) {
allMarkdownRemark(filter: {frontmatter: {draft: {nin: $draftBlacklist}}}) {
edges {
node {
frontmatter {
title
draft
}
}
}
}
dev์ ๋ชจ๋ ๋
ธ๋๋ฅผ ํ์ํ๊ณ ํ๋ก๋์
์์ draft
์ด true
๋ก ์ค์ ๋ ๋ชจ๋ ๋
ธ๋๋ฅผ ํํฐ๋งํฉ๋๋ค. ์บ์ฑ ๋ฌธ์ ๊ฐ์์ ์ ์์ต๋๋ค (๊ฐ๋ฐ ํ ๋น๋๋ฅผ ์คํํ๋ฉด ์ฟผ๋ฆฌ atm์ ๋ค์ ์คํํ์ง ์์ต๋๋ค). ๊ทธ๋ฌ๋ ํ๋ก๋์
๋น๋์ netlify
(๋๋ ๋ค๋ฅธ ์ข
๋ฅ์ CI / CD)๋ฅผ ์ฌ์ฉํ๋ฉด ์๋ํฉ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ฟผ๋ฆฌ ํ ์คํธ๋ฅผ ์ง์ ์กฐ์ ํ ์๋ ์์ง๋ง dev ๋๋ prod ๋ชจ๋์ ์๋์ง์ ๋ฐ๋ผ ๋ค๋ฅธ ์ปจํ ์คํธ๋ฅผ ์ ๋ฌํ ์ ์์ต๋๋ค.
https://github.com/gatsbyjs/gatsby/issues/10844#issuecomment -471349943์ ์ค๋ช ๋ ๋ฌธ์ ๋ฅผ ์ฐธ์กฐํ๋ ๊ฒฝ์ฐ
ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ๋ธ๋ก๊ทธ ๋ชฉ๋ก์ ์์ฑํ๋ฏ๋ก
context
๋ฅผ ์ ๋ฌํ์ฌ ์ฟผ๋ฆฌ ํ ์ โโ์์ต๋๋ค.๊ทธ๋ฆฌ๊ณ ์ฟผ๋ฆฌ์์ :
dev์ ๋ชจ๋ ๋ ธ๋๋ฅผ ํ์ํ๊ณ ํ๋ก๋์ ์์
draft
์ดtrue
๋ก ์ค์ ๋ ๋ชจ๋ ๋ ธ๋๋ฅผ ํํฐ๋งํฉ๋๋ค. ์บ์ฑ ๋ฌธ์ ๊ฐ์์ ์ ์์ต๋๋ค (๊ฐ๋ฐ ํ ๋น๋๋ฅผ ์คํํ๋ฉด ์ฟผ๋ฆฌ atm์ ๋ค์ ์คํํ์ง ์์ต๋๋ค). ๊ทธ๋ฌ๋ ํ๋ก๋์ ๋น๋์netlify
(๋๋ ๋ค๋ฅธ ์ข ๋ฅ์ CI / CD)๋ฅผ ์ฌ์ฉํ๋ฉด ์๋ํฉ๋๋ค.