๋ง์ง๋ง ์ฅ์์๋ ๋ฆฌ์กํธ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ๋ก๋์ ํ๊ฒฝ์ ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด๊ฒ ์ต๋๋ค. ๋ฌด๋ฃ ํธ์คํ ์๋น์ค์ธ ํค๋ก์ฟ (Heroku)์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ ๊ฒ์ ๋๋ค. ๋ฐฐํฌ ๊ณผ์ ์์ create-react-app์ ๋ํด ์์ธํ ์์๋ด ์๋ค.
์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ๋ฅผ ์ํด 'Eject'์ ๋ํด ์ ํ์๋ ์์ต๋๋ค. create-react-app์ ํ์ฅ์ ์ ์งํ๋ฉด์ ๋ฒค๋ ์ข ์์ ๋ฐฉ์งํ๋ ๊ธฐ๋ฅ์ ๋๋ค. (๋ฒค๋ ์ข ์(vendor lock-in)์ด๋ ์ด๋ค ํ์ฌ์ ์ ํ์ ๋ํด ์๋น์๊ฐ ์ข ์๋๋ ์ํฉ์ ์ด๋ฅด๊ฒ ๋๋ ํ์์ ๋งํฉ๋๋ค. ์๋น์๊ฐ ๋ค๋ฅธ ํ์ฌ์ ์ํ์ผ๋ก ์ฎ๊ฒจ๊ฐ๊ณ ์ถ์ด๋ ๊ฐ ์ ์๋๋ก ๋ง๋ค์ด ๋์ ์ํฉ์ ์ด๋ฅด๊ฒ ๋ฉ๋๋ค. โ๋นํธํ์ฑโ์ด ๋ํ์ ์ธ ์ ์ ๋๋ค.) ๋ฒค๋ ์ข ์์ ํน์ ๊ธฐ์ ์ ๊ตฌ๋งคํ์ฌ ๋์ ํ ๋ ๋ฌธ์ ์ ๋ฉ๋๋ค. ํน์ ๊ธฐ์ ์ ์ฌ์ฉํ๊ฒ ๋๋ฉด ํํผํ ์ ์๋ ๋ฐฉ๋ฒ์ ์์ต๋๋ค. ๋คํ์ด๋ create-react-app์ "eject(๊บผ๋ด๊ธฐ)"๋ก ๋ฒค๋ ์ข ์์ ํํผํ ์ ์์ต๋๋ค.
package.json ํ์ผ์ start, test, build ์คํฌ๋ฆฝํธ ๋ช ๋ น์ด๊ฐ ๋ณด์ผ ๊ฒ์ ๋๋ค. ๋งจ ๋ง์ง๋ง์ eject๊ฐ ์์ต๋๋ค. eject ์คํฌ๋ฆฝํธ๋ฅผ ์คํํด๋ณผ ์๋ ์๊ฒ ์ง๋ง, ๋ค์ ์ ์ํ๋ก ๋๋๋ฆด ์ ์๋ ๋ฐฉ๋ฒ์ ์์ต๋๋ค. ๋จ๋ฐฉํฅ ์กฐ์์ด๊ธฐ ๋๋ฌธ์ ์ ๋๋ก ์ ์ํ๋ก ๊ฐ ์ ์๋ค๋ ๊ฒ์ ๋ช ์ฌํ๊ธธ ๋ฐ๋๋๋ค! ์ด์ ๋ฆฌ์กํธ ์ ๋ฌธ์์ผ์๋ก, create-react-app ์ ๊ณต๋๋ ๊ธฐ๋ณธ ๋๊ตฌ๋ฅผ ์ถฉ์คํ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
npm run eject
๋ช
๋ น์ด๋ฅผ ์คํํ๋ฉด package.json ์ ์ ์๋ ๋ชจ๋ ์ค์ ๊ณผ ์์กด์ฑ์ ๋ณต์ฌํด ์ ํด๋์ธ config/ ์์ฑํ์ฌ ์ด ํด๋๋ก ๋ชจ๋ ์ด๋์ํต๋๋ค. ๋ฐ๋ฒจ(Babel)๊ณผ ์นํฉ(Webpack)์ ์ฌ์ฉํด ๋ง๋ ์ปค์คํ
์ค์ ์ผ๋ก ์ ์ฒด ํ๋ก์ ํธ๋ฅผ ์ปจ๋ฒํ
ํ ์ ์์ต๋๋ค. ๋ฐ๋ฒจ๊ณผ ์นํฉ ๋ฑ ๋ชจ๋ ํด์ ๋ฅ์ํ๊ฒ ๋ค๋ฃฐ ์ ์์ ๋ ํด๋ณด๊ธธ ๋ฐ๋๋๋ค.
create-react-app ๋ ์๊ท๋ชจ ํ๋ก์ ํธ์ ์ ํฉํฉ๋๋ค. ๋ฐ๋ผ์ ์ง๊ธ ๋จ๊ณ์์ "eject"๋ฅผ ์ฌ์ฉํ ํ์๊ฐ ์์ต๋๋ค.
์ฐ๋ฆฌ๊ฐ ๋ง๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ํค๋ก์ฟ (Heroku)์ ๋ฐฐํฌํด๋ด ์๋ค. ํค๋ก์ฟ ๋ create-react-app์ ์ ๋ก ๊ตฌ์ฑ ์ค์น ์ฒ ํ์ ๋ฐ๋ฅด๊ณ ์์ต๋๋ค. ๋ช ๋ถ๋ง์ create-react-app ์ฑ์ ๋ฐฐํฌํ ์ ์์ต๋๋ค.
๋ฐฐํฌ ์ ๊ผญ ํด์ผํ ๋ ๊ฐ์ง๊ฐ ์์ต๋๋ค.
- ํค๋ก์ฟ CLI๋ฅผ ์ค์นํฉ๋๋ค.
- ํค๋ก์ฟ ๋ฌด๋ฃ ๊ณ์ ์ ๋ง๋ญ๋๋ค.
ํ๋ธ๋ก์ฐ(Homebrew)๋ก ํค๋ก์ฟ CLI๋ฅผ ์ค์นํ ์ ์์ต๋๋ค.
{title="Command Line",lang="text"}
brew update
brew install heroku-toolbelt
์ด์ ๊น๊ณผ ํค๋ก์ฟ CLI๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํฉ๋๋ค.
{title="Command Line",lang="text"}
git init
heroku create -b https://github.com/mars/create-react-app-buildpack.git
git add .
git commit -m "react-create-app on Heroku"
git push heroku master
heroku open
์ด ๊ฒ์ผ๋ก ๋ฐฐํฌ๋ฅผ ๋ง์น๊ฒ ์ต๋๋ค. ์ง๊ธ๊น์ง ๊ฐ๋ฐํ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์๋ฒฝํ๊ฒ ์๋๋๊ธธ ๋ฐ๋๋๋ค. ์์ผ๋ก ์๋ ์ฐธ๊ณ ์๋ฃ๋ฅผ ๋ณด๊ณ ๋ ๊น์ด ํ์ตํด๋ณด๊ธธ ๋ฐ๋๋๋ค.