๐โโ๏ธ ๊ธฐ๋ณธ์ ์ผ๋ก development, test, production ํ๊ฒฝ ์ค ์ด๋ค ํ๊ฒฝ์ ์ฌ์ฉํ๊ณ ์๋์?
development ํ๊ฒฝ
๐โโ๏ธ ์ด๋ป๊ฒ ๋ค๋ฅธ ํ๊ฒฝ์ผ๋ก ์ ํํ ์ ์๋์?
modelsํด๋์ index.jsํ์ผ์ env๋ถ๋ถ์ ์์ ํด์ ์ ํํ ์ ์๋ค.
process.env.NODE_ENV๋ฅผ ์ด์ฉํด ํ๊ฒฝ ์ ํ์ด ๊ฐ๋ฅํ๋ค.
๐โโ๏ธ ์ฌ๋ฌ ๊ฐ์ ํ๊ฒฝ์ด ๋ถ๋ฆฌ๋์ด ์๋ ์ด์ ๋ ๋ฌด์์ธ๊ฐ์?
๊ฐ๊ฐ ํ๊ฒฝ์ ์ฌ์ฉ ๋ชฉ์ ์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ํ๋์ ํ๊ฒฝ์์ ์ด ์ธ๊ฐ์ง(dev, test, pro)
์์
์ ์งํ ํ๋ค๋ฉด, ํผ๋์ ๊ฐ์ ธ์ฌ ์ ์๋ค.(๊ฐ๋
์ฑ, ์ ์ง ๋ณด์๊ฐ ํ๋ค์ด์ง) ๋ฐ๋ก ๋๋ ์
๊ด๋ฆฌํ๋ค.
๊ฐ๋ฐ์์๋ ๊ธฐ๋ณธ ๋ผ๋๋ฅผ ๋ง๋๋ ๊ฐ๋ฐ์ ์ํ ํ๊ฒฝ์ด ํ์ํ๊ณ ,
ํ
์คํธ์์๋ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ์ถ๊ฐ๋ฑ ์ฌ๋ฌ ์์
์ ํ๊ธฐ์ํด์ ํ์ํ๋ค.
๋ฐฐํฌ์์๋ ์ ์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋์ด์๊ธฐ๋๋ฌธ์ ํจ๋ถ๋ก ํ
์คํธ๊ฐ ๋ถ๊ฐ๋ฅํ๋ค.
๐โโ๏ธ MySQL์ varchar๋ int ํ์ ์ Sequelize์์๋ ์ด๋ค ํํ๋ก ์ ์ํด์ผ ํ๋์?
Datatypes.STRING, Datatypes.INTEGER
๐โโ๏ธ ์ Sequelize์ ํ์ ์ ์์ MySQL์ ํ์ ์ ์๊ฐ ๋ค๋ฅผ๊น์?
Sequelize๋ ์ฌ๋ฌ ๊ฐ์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ
(RDBMS)์ ํธํ ํ๊ธฐ ์ํด์
๊ณตํต์ ๋ฌธ๋ฒ์ผ๋ก ํต์ผ ํ์๊ธฐ ๋๋ฌธ์ด๋ค.
๐โโ๏ธ ๋ง์ด๊ทธ๋ ์ด์ ์ ํ ๋ ์ฃผ์ํด์ผ ํ ์ ์ ๋ฌด์์ธ๊ฐ์?
๋ชจ๋ธ์ ๊ธฐ๋ณธ๊ฐ์ด๋ ๋ฐ์ดํฐ ํ์
์ด ์ ์์ฑํ์๋์ง ํ์ธํด์ผํ๋ค.
์๋ฅผ๋ค์ด ๊ธฐ๋ณธ๊ฐ์ ์ง์ ๋ชปํ๋ ์ธ์ธํ ์ต์
์ ์ฝ๋์ ์ง์ ์์ฑํด์ผํ๋ค.
์๋ชป ๋ณด๋๋ค๋ฉด undo๋ฅผ ํตํด์ ๋ค์ ๋ง์ด๊ทธ๋ ์ด์
ํด์ผํ๋ค.
๋ง์ด๊ทธ๋ ์ด์
์ ์งํํ์์ด๋ modelํ์ผ์ ์๋์ผ๋ก ์ ์ฉ ๋์ง ์๊ธฐ ๋๋ฌธ์,
modelํ์ผ๋ ๊ฐ์ด ์์ ํด์ค์ผํ๋ค.
๋ง์ด๊ทธ๋ ์ด์ ์ ํ์ํ ๋๋ง๋ค ์์ฑํ ์ ์๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง์ ๋ณ๊ฒฝ์ด ํ์ํ ๋๋ง๋ค ๋ง์ด๊ทธ๋ ์ด์ ์ฝ๋๋ฅผ ๋ง๋ค์ด์ ์งํํ๋ ๊ฒ์ด๋ค.
findAll()
findAll ๋ฉ์๋๋ก DB์ ์ ์ฒดํ
์ด๋ธ์ ์กฐํํ ์ ์๋ค
findOrCreate()
findOrCreate ๋ฉ์๋๋ ํด๋น๋ฐ์ดํฐ๊ฐ ์๋๊ฒฝ์ฐ์ ์ํธ๋ฆฌ๋ฅผ ํ
์ด๋ธ์ ์ถ๊ฐํ๋ค
๋ถ๋ฆฌ์์ผ๋ก ์ด๋ฏธ ์์๋์ง, ์๋ก๋ง๋ค์ด์ก๋์ง ์ ์ ์๋ค
findOne()
findOne ๋ฉ์๋๋ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์ฒซ๋ฒ์งธ ์ํธ๋ฆฌ๋ฅผ ์ฐพ์๋ธ๋ค
mysql์ ์ ์๋ ์๋๊ณ config.jsonํ์ผ์์ ๋น๋ฐ๋ฒํธ๋ ๋ฐ๊ฟ๋จ๋๋ฐ mysql์ ์ ์ํ ์ ์๋์ง ํ์ธํ๋ค๋ test๊ฐ ํต๊ณผ๊ฐ ์๋์๋ค.
์ฝ์์ฐฝ์ Unhandled rejection SequelizeConnectionError: Unknown database 'database_development' ์๋ฌ๊ฐ ๋ฌ๋ค.
npx sequelize db:create ๋ฅผ ์
๋ ฅํด์คฌ๋๋ ํด๊ฒฐ๋์๋ค.