๐ต๏ธโโ๏ธSQL์ด๋?
๋ฐ์ดํฐ๋ฅผ ๊ตฌ์กฐํํ์ฌ ์ ์ฅ์์ผ ๋์ ์งํฉ์ฒด(Database)์์ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๊ฑฐ๋ ๊ด๋ฆฌํ๊ธฐ ์ํด ๋ง๋ค์ด์ง Query๋ฌธ์ ์ฒด๊ณํ ์์ผ๋์ ๊ฒ SQL์ด๋ค. ํ์ ์ด ๋ถ๋ถ๋ช ํ ๋ฐ์ดํฐ, ๋น ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ์ ์ ํฉํ์ง ์๋ค.
โ schema : ์ด๋ค ๊ตฌ์กฐ๋ก ์ด๋ค ์กฐ๊ฑด์ผ๋ก ์ ์ฅ๋์ด์ผํ๋์ง ์ ์ํ ๊ฒ.
SQL์๋ schema๋ผ๋ ๊ฒ์ด ์๋๋ฐ ์ด๋ก ์ธํด ๋ฐ์ดํฐ๋ฅผ ์ค๋ณต ์์ด ์ ์ฅํ ์ ์๋ ์ฅ์ ์ด ์๊ณ , ์์ ์ด ๋ฒ๊ฑฐ๋ก์ ์ ์ฐํ์ง ์๋ค๋ ๋จ์ ๋ ์๋ค.
๐ต๏ธโโ๏ธ NoSQL์ด๋?
SQL์ ๋จ์ ์ ๋ณด์ํ๊ธฐ ์ํด ๋์จ ์ธ์ด์ด๋ค.
โ schema๊ฐ ์๊ณ , JSON ํํ๋ก ์ ์ฅํ ์ ์๋ค.
์ฅ์ : ์ ์ฐํ๊ณ ์๋๊ฐ ๋น ๋ฅด๋ค.
๋จ์ : ํ์ ์ด ๋ถ๋ถ๋ช ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ ์ผ๊ด์ฑ์ ๋ณด์ฅํ ์ ์๋ค.
๐ต๏ธโโ๏ธmongodb๋?
NoSQL์ ๋ํ์ ์ธ DB์ด๋ค. schema๊ฐ ์๊ณ JSON ํํ๋ก ์ ์ฅํ ์ ์์ด Node.js์ ๊ถํฉ์ด ์ข๋ค.
๐ต๏ธโโ๏ธcompass๋?
mongodb๋ฅผ GUI ํํ๋ก ์ฝ๊ฒ ๊ด๋ฆฌํ ์ ์๋ ํด์ด๋ค.
๐ต๏ธโโ๏ธmongoose๋?
mongodb์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ฑฐ๋ ์ ๋ฐ์ดํธํ ๋, ํจ์ฌ ์ฝ๊ฒ ๊ด๋ฆฌํ ์ ์๋๋ก ๋์์ฃผ๋ ํจํค์ง์ด๋ค. ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด์ DB์ ๋ฐ์ดํฐ๋ฅผ 1:1๋ก ๋งค์นญํด์ค๋ค. ์ฆ, DB ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด๋ก ๋ฐ๊ฟ์ค๋ค.
โ mongoose ์ค์น ๋ฐ ์ฌ์ฉ
VSC ํฐ๋ฏธ๋์์npm install mongoose
์ ๋ ฅ์ผ๋ก ์ค์น.// ./bin/www const mongoose = require("mongoose"); const db = mongoose.connection; db.on("error", console.error); db.once("open", () =>{ console.log("connected to mongodb server!!") }) mongoose.connect( `mongodb+srv://ayden:<password>@first-project.drox0.mongodb.net/myFirstDatabase?retryWrites=true&w=majority`, {useNewUrlParser: true, userUnifiedTopology: true} // ํด๋น ์ต์ ์ ์์ฑํ์ง ์์ผ๋ฉด ๊ฒฝ๊ณ ๋ฐ์. )