[BackEnd][Node.js] Express.js - ์ดˆ๊ธฐ ๊ตฌ์„ฑ : DB ์—ฐ๊ฒฐ(Sequelize)

2022. 4. 7. 22:01ใ†Back-End ์ž‘์—…์‹ค/Node.js

728x90
๋ฐ˜์‘ํ˜•

 

 

๐Ÿ—‚ ๋ชฉ์ฐจ

โ— [BackEnd][Node.js] Express.js - ์ดˆ๊ธฐ ๊ตฌ์„ฑ
โ— [BackEnd][Node.js] Express.js - ์ดˆ๊ธฐ ๊ตฌ์„ฑ : DB ์—ฐ๊ฒฐ
โ— [BackEnd][Node.js] Express.js - ์ดˆ๊ธฐ ๊ตฌ์„ฑ : DB ์—ฐ๊ฒฐ(Sequelize)

 

 

๐Ÿ“š ๋ถ€๋ก

โ— [Node.js] Node.js ๊ธฐ์ดˆ
โ— [JavaScript] ๊ธฐ๋ณธ ๋ฌธ๋ฒ•
โ— [Web] URL์˜ ์ดํ•ด
โ— [Spring] Spring์ด๋ž€?



 

 

๐Ÿค” ๋‚ด๊ฐ€ ๋งŒ๋‚œ Error

โ— [Node.js][Error] Cannot find module '.dotenv'

 

 

 

 

 

 

 

 

 

 

๐Ÿš€ Sequelize

    ๐Ÿ”ฝ  ๊ฐœ์š”

์ด๋ฒˆ์—” `Spring` ์ง„์˜์— `JPA`, `MyBatis`์ฒ˜๋Ÿผ `ORM Library`์ธ `Sequelize`๋ฅผ ์ด์šฉํ•ด์„œ Data Base๋ฅผ ์ด์šฉํ•ด ๋ณด๋ ค ํ•˜๋Š” ๊ฒƒ์ด์—์š”.

`ORM`์ด๋ž€? Object-Relational Mapping์˜ ์•ฝ์ž๋กœ ๊ฐ์ฒด์™€ ๊ด€๊ณ„ํ˜• DB๋ฅผ Mapping ํ•ด์ฃผ๋Š” ๊ฐœ๋…์ธ ๊ฒƒ์ด์—์š”.

 

 

 

 

 

    ๐Ÿ”ฝ  ์„ค์น˜

๋ช…๋ น์–ด

npm i sequelize sequelize-cli mysql2 --save

์œ„์˜ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด์„œ ์„ค์น˜๋ฅผ ํ•ด ์ฃผ๋ฉด ๋˜๋Š” ๊ฒƒ์ด์—์š”.

 

์„ค์น˜ ๋ชจ์Šต

 

 

๐Ÿ’ก ์ฐธ๊ณ  ์‚ฌํ•ญ
โ— sequelize-cli : Sequelize ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ Package Library. Global๋กœ ์„ค์น˜ํ•ด๋„ ๋ฌด๋ฐฉ.
โ— mysql2 : MySQL Driver

 

์ดˆ๊ธฐํ™” ๋ช…๋ น์–ด

sequelize init

 

๐Ÿ’ก ์ฐธ๊ณ  ์‚ฌํ•ญ
์œ„ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅ ํ–ˆ์„ ๋•Œ ์•„๋ž˜์™€ ๊ฐ™์ด ๋‚˜์˜จ๋‹ค๋ฉด


์ด ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์ดˆ๊ธฐํ™” ์ง„ํ–‰
npx sequelize init
๋ฐ˜์‘ํ˜•

 

 

 

 

์ดˆ๊ธฐํ™”๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด ์œ„์™€ ๊ฐ™์ด ๋ชป ๋ณด๋˜ ์นœ๊ตฌ๋“ค์ด ์ƒ๊ธด ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด์—์š”.

 

๐Ÿ’ก ์ฐธ๊ณ  ์‚ฌํ•ญ
โ— config.json : Data Base ์„ค์ • File, ์ด์šฉ์ž ์ด๋ฆ„, Data Base ์ด๋ฆ„, ๋น„๋ฐ€๋ฒˆํ˜ธ ๋“ฑ์˜ ์ •๋ณด ์ž…๋ ฅ
โ— migrations : Git๊ณผ ๋น„์Šทํ•˜๊ฒŒ Data Base ๋ณ€ํ™”ํ•˜๋Š” ๊ณผ์ •์„ ์ถ”์ ํ•˜๋Š” ์ •๋ณด ๋ณด์œ . ์‹ค์ œ Data Bas์— ๋ฐ˜์˜ํ• ์ˆ˜๋„ ์ทจ์†Œํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
โ— models : Data Base ๊ฐ Table์˜ ์ •๋ณด ๋ฐ Field Type์„ ์ •์˜ํ•˜๊ณ , ํ•˜๋‚˜์˜ ๊ฐ์ฒด๋กœ ๋ชจ์€๋‹ค.
โ— seeders : Table์— ๊ธฐ๋ณธ Data๋ฅผ ๋„ฃ๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ

 

 

 

    ๐Ÿ”ฝ  ์ดˆ๊ธฐ ๊ตฌ์„ฑ

config.json

์ตœ์ดˆ `config.json`์„ ๋“ค์–ด์˜ค๋ฉด ์ด๋ ‡๊ฒŒ ์ด๋ฏธ ๋‚ด์šฉ๋“ค์ด ์ž‘์„ฑ๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด์—์š”.

์ด ๋‚ด์šฉ์„ ๋ณด์•„ํ•˜๋‹ˆ ์—ฌ๋Ÿฌ Data Base๋ฅผ ์ž‘์„ฑ ํ•ด ๋‘๊ณ , Handling ํ•  ์ˆ˜ ์žˆ๊ฒ ๋‹ค! ๋ผ๋Š” ์ƒ๊ฐ์ด ๋“œ๋Š” ๊ฒƒ์ด์—์š”.

์˜ˆ๋ฅผ ๋“ค์–ด ๊ฐœ๋ฐœ์šฉ Data Base, QA Test์šฉ Data Base, ์šด์˜์šฉ Data Base๋ฅผ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์ด์—์š”.

์ฃผ๋‹ˆํ•˜๋ž‘์€ ์ผ๋‹จ ๊ฐœ๋ฐœ ๋‹จ๊ณ„์ด๊ธฐ ๋•Œ๋ฌธ์— ์ตœ์ƒ๋‹จ `devlopment`๋งŒ ๋‚จ๊ธฐ๊ณ  ๋‚˜๋จธ์ง€๋Š” ์‚ญ์ œ ํ•ด ๋‘˜ ๊ฒƒ์ด์—์š”.

 

 

npx sequelize db:create

์œ„์˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด์„œ `config/config.json`์— ์ž‘์„ฑํ–ˆ๋˜ `development Mode` Data Base ์ •๋ณด์— ํ•ด๋‹นํ•˜๋Š” DB๋ฅผ ๋งŒ๋“ค์–ด ์ค„ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด์—์š”.

 

 

app.js

๊ทธ๋Ÿฐ ๋‹ค์Œ ์œ„์™€ ๊ฐ™์ด `app.js`์— `sequelize`๋ฅผ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜์ •์„ ํ•ด์ฃผ๊ณ , ์‹คํ–‰์„ ํ•ด ๋ณด๋ฉด

 

์œ„์™€ ๊ฐ™์ด ์ •์ƒ์ ์œผ๋กœ ์—ฐ๊ฒฐ๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด์—์š”.

 

 

 

 

 

 

 

 

 

 

 

728x90
๋ฐ˜์‘ํ˜•