[React] React๋ฅผ GitHub Page์ ๋ฌด๋ฃ ํธ์คํ ํ๊ธฐ(ํ์ด์ง ๋ง๋ค๊ธฐ)
์ค๋์ React JS๋ก ์์ฑํ ์ฝ๋๋ฅผ ์ด๋ป๊ฒ github page์ ๋ฌด๋ฃ๋ก ๋ฐฐํฌํ ์ ์๋์ง์ ๋ํด์ ๊ณต๋ถํด๋ณด์๋ค.
๊ฐ๋ ๋ธ๋ก๊ทธ๋ ์ฌ์ดํธ๋ค์ ๋ณผ๋ ์ฃผ์๊ฐ github.io๋ผ๊ณ ์์ฑ๋์ด์๋๊ฑธ ๋ง์ด ๋ดค์๋๋ฐ, ์ด ํธ์คํ ์ ๋ํด ์๊ธฐ ์ ๊น์ง๋ ๊ทธ๋ฅ ๊นํ์์ ๋ง๋ค์ด๋์ ๋ธ๋ก๊ทธ์ธ์ค๋ง ์์์๋ค.
์์งํ ์ด๊ฑธ ์๊ณ ๋๋ ์ง๊ธ ์์ ์ ์ธ๊ณ๋ค๐ฒ
์ง๊ธ ๋๋ฌด ์๊ฝํ์ ํผ๊ณคํ๋ฐ๋ ๋ธ๋ก๊ทธ ํฌ์คํ ์ ํ๊ณ ์๋ค.
๋ด๊ฐ ์ค๋ ๊นํ ํ์ด์ง๋ฅผ ์ฌ์ฉํด์ ๋ง๋ ์น์ฌ์ดํธ๋ ์ํ์๊ฐ ์น์ด๋ค.
์์ ๋งํฌ๋ฅผ ๋ฌ์๋์๊ฒ๊ณผ ๊ฐ์ด ๋ด๊ฐ ๋ง๋ ์ฌ์ดํธ๋ฅผ ์ผ์์ ์ผ๋ก yarn(npm) start๋ก ์ผ์ ๋ง๋ ์ฌ์ดํธ๊ฐ ์๋ ๊ณ์ํด์ ๋ณผ ์ ์๋ ์ฌ์ดํธ๋ฅผ ๋ง๋ค ์ ์๋ค.
์น์ ๋ค์ด๊ฐ๋ณด๊ธฐ ๊ท์ฐฎ์ ๋ถ๋ค์ ์๋ ์์งค์ ๋ณด๋ฉด ๋ฉ๋๋น
GitHub Page
github page๋ ๋ฌด์์ผ๊น ์์๋ณด๊ธฐ ์ํด ๋๋ ๊นํ์ ํ๋ธ์์ ๊นํํ์ด์ง์ ๋ํ ๋์์์ ๋ณด์๋ค.
์น์ฌ์ดํธ์ ์ฝ๋๋ฅผ ์์ฑํด์ ๋ฐฐํฌํ๊ธฐ๊น์ง๋ ์๋์ ์ฌ์ง์ฒ๋ผ ๊ต์ฅํ ๋ง์ ๊ณผ์ ์ ๊ฑฐ์ณ์ผํ๋ค.
์คํ์์ค ๋ฑ ๊ฐ๋ฐ์์๊ฒ ๊ต์ฅํ ์์ง์ ์ ๋ณด๋ฅผ ๊ณต์ ํ ์ ์๊ฒ ๋์์ฃผ๋ ๊นํ์ ๋ณด๋ค ๋ ํธ๋ฆฌํ ์๋น์ค๋ฅผ ์ํด์ database์ ์๋ฒ๊ฐ ๋ฐ๋ก ํ์ํ์ง ์๊ณ ๋ค๋ฅธ ์ฌ๋์ ์ปดํจํฐ์ ์ด๋ป๊ฒ ๋ฐฐํฌ๊ฐ ๋ ๊น ๊ฑฑ์ ํ๋ ๊ฒ๋ณด๋ค ๊ทธ ์ฌ์ดํธ์ ์ฝํ ์ธ ์ ๋์ฑ๋ ์ง์คํ ์ ์๋๋ก ๋ง๋ค์ด์ก๋ค๊ณ ํ๋ค.
๊ฐ๋จํ ๋งํด์, ์ฌ์ดํธ์ ๋ถ๊ฐ์ ์ธ ๊ฒ์ ํ์์ง ์๋๋ก ๋์์ค๋ค๋ ๊ฒ์ด๋ค.
๊ทธ๋ฆฌ๊ณ Git์ ํตํด์ ๊ณ์ํด์ ์ฝ๋๋ฅผ ๊ด๋ฆฌํ๊ธฐ ๋๋ฌธ์ ์์ ์ ์ด๋ผ๋ ์ฅ์ ๋ ์๋ค.
GitHub Page ํธ์คํ ํ๊ธฐ
1. ๋ฆฌ์กํธ ์ฑ์ ์์ฑํด์ค๋ค
$ npx create-react-app appname
$ cd appname
2. Github์ ์ ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ๋ง๋ค์ด์ค๋ค
๋ ํฌ์งํ ๋ฆฌ๋ฅผ ๋ง๋ค์์ผ๋ฉด http://username.github.io/reponame ์ผ๋ก ๋ค์ด๊ฐ ์ ์๊ฒ ๋๋ค.
ํ์ง๋ง, ์ ์ํ๋ก ๋ค์ด๊ฐ๋ฉด 404์๋ฌ๊ฐ ๋ฐ ๊ฒ์ด๋ค.
์ฝ๋์ ์ด ํ์ด์ง๋ฅผ ์ฐ๊ฒฐํด์ฃผ๋ ๊ณผ์ ์ด ํ์ํ๋ค!
3. npm์ ์ฌ์ฉํด์ gh-pages ํจํค์ง ์ค์น
$ npm i gh-pages
4. package.json์ผ๋ก ๊ฐ์ ์ถ๊ฐ
package.jsonํ๋จ์ ํํ์ด์ง url์ ์ถ๊ฐํด์ค๋ค.
"homepage": "http://minjoo-park01.github.io/movie_app"
http://username.github.io/reponame ์ด๋ฐ์์ผ๋ก ํํ์ด์ง ์ฃผ์๋ฅผ ์์ฑํด์ฃผ๋ฉด๋๋ค.
5. package.json์์ scripts ์์ ํ๊ธฐ
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"deploy": "gh-pages -d build",
"predeploy": "npm run build"
},
predeploy => npm run build๋ฅผ ํ๊ณ , ์ฌ๊ธฐ์ ์คํ๋ build๋ build script๋ฅผ ํธ์ถํด์ ๊ทธ ์คํฌ๋ฆฝํธ๊ฐ buildํด๋๋ฅผ ์ ๊ณต
deploy => gh-pages๋ฅผ ํธ์ถํ๊ณ build ํด๋๋ฅผ ์ ๋ก๋
6. React JS์ฑ์ deployํ๊ธฐ
$ npm run build
build ํด๋๋ฅผ ์ป๊ฒ๋จ
์ ๋ช ๋ น์ด๋ฅผ ์์ฑํ๋ฉด npm์ predeploy๋ฅผ ๋จผ์ ํธ์ถํด์ค๋ค.
$ npm run deploy
์ด๋ฐ ์๊ธฐํ๋ฉด ์๊ธฐ๊ฒ ์ง๋ง, ์ด๋ฒ ์ํ ์น์ฌ์ดํธ๋ฅผ ๋ง๋ค๋ฉด์ ๋๋ฌด ์ฌ๋ฐ์๋ค.
๋ ์ด์ฌํ ํด๋ณด๊ณ ๊ณต๋ถํด์ ์ข์ ์ฌ์ดํธ๋ฅผ ๋ง๋ค๊ณ ์ถ๋ค๐ฅด