
์๊ฐํด๋ณด์ ์ ํ๋ก ํธ์์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฐ๊ฒฐํ๋ฉด ์๋ ๊น?
๊ทธ ์ด์ ๋ ๋ธ๋ผ์ฐ์ ์๋ ์ฌ์ฉ์๊ฐ ์ฝ๋๋ฅผ ๋ณผ ์ ์๊ธฐ ๋๋ฌธ์ธ๋ฐ, ์๋ฅผ ๋ค์ด ํฌ๋กฌ์์๋ f12๋ฅผ ๋๋ฅด๋ฉด ํ๋ก ํธ ์ฝ๋๊ฐ ๋ณด์ธ๋ค.
์ผ๋ฐ์ ์ผ๋ก ํ๋ก ํธ ์ฝ๋๋ ๋ฐฉ๋ฌธ์๊ฐ ์์ ์ ํด๋ ๋๋ฒ๊น
์ฉ์ด๊ธฐ์ ์๋ฌด ๋ฌธ์ ๊ฐ ์์ง๋ง ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฟผ๋ฆฌ๋ ์์ ๋ ์ ์๊ธฐ์ ๋ฌธ์ ๊ฐ ๋ ์ ์๋ค.
์ฆ ํ
์ด๋ธ(or ์ปฌ๋ ์
) ์ญ์ ์ ๊ฐ์ ํดํน์ ๋นํ ์ ์๋ ๊ฒ์ด๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐํ๊ธฐ ์ํด ๊ด๋ จ ํจํค์ง๋ฅผ ๋ค์ดํด๋ณด์.
npm install mongodb
์์ ๋ช ๋ น์ด๋ฅผ ํฐ๋ฏธ๋์ ์์ฑํ๋ฉด monogodb node driver ํจํค์ง๊ฐ ์ค์น๋๋ค.
์ฐ์ db ์ฐ๊ฒฐ์ ๋ด๋นํ๋ ์๋ก์ด jsํ์ผ์ธ database.js๋ฅผ ๋ง๋ค์ด์ ๊ทธ ์์ ๋ด์ฉ์ ์ ์๋ค.
์ ์ฒด ์ฝ๋๋
const mongodb = require("mongodb");
const MongoClient = mongodb.MongoClient;
let database;
async function connect() {
const client = await MongoClient.connect("mongodb://localhost:27017");
//๋ชฝ๊ณ ๋๋น๋ฅผ ๊ฐ๋ฅดํค๋ url์ด๋ผ๊ณ ํจ / localhost๊ด๋ จ ๋ด์ฉ์ด๋ผ goorm์์ ๋จนํ์ง๋ ์๋ฌธ
// ์๋ฒ์ ์ฐ๊ฒฐ
database = client.db("blog");
// ์๋ฒ์ ๋ธ๋ก๊ทธ ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ์ค์ ๋ก ํต์ (๋ชฝ๊ณ db shell)
}
function getDb(){
if(!database){
throw { message: "Database connection not established!" };
}
return database;
}
// ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ฌ์ฉ๋๊ธฐ ์ ์ connect()๊ฐ ๋จผ์ ํธ์ถ๋์ด์ผ ํจ
module.exports = {
connectToDatabase: connect,
getDb: getDb
};
// ์ด ํ์ผ์ ์ฌ์ฉํ๋ ํ์ผ์์ ์ฌ์ฉํ ์ด๋ฆ : ์ด ํ์ผ์์์ ์ด๋ฆ
//()๊ฐ ์๋ ์ด์ ๋ ์ง๊ธ ์คํํ๋ ๊ฒ์ด ์๋๊ธฐ์ ์๋ค.
์ด๊ณ ์ค๋ช ์ ํด๋ณด์๋ฉด.
const mongodb = require("mongodb");
const MongoClient = mongodb.MongoClient;
์์์ ์ค๋ช ํ mongodb node driver๋ฅผ ๊ฐ์ ธ์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค.
let database;
async function connect() {
const client = await MongoClient.connect("mongodb://localhost:27017");
//๋ชฝ๊ณ ๋๋น๋ฅผ ๊ฐ๋ฅดํค๋ url์ด๋ผ๊ณ ํจ / localhost๊ด๋ จ ๋ด์ฉ์ด๋ผ goorm์์ ๋จนํ์ง๋ ์๋ฌธ
// ์๋ฒ์ ์ฐ๊ฒฐ
database = client.db("blog");
// ์๋ฒ์ ๋ธ๋ก๊ทธ ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ์ค์ ๋ก ํต์ (๋ชฝ๊ณ db shell)
}
์ด๊ฑด db์ ์ฐ๊ฒฐํ๋ ํจ์๋ผ๊ณ ํ๋๋ฐ ์ฌ์ค ์ด๋ถ๋ถ์ ๊น์ด๊ฐ ์๋ ๋ด์ฉ์ธ์ง ์์ธํ ์ค๋ช
์ ํด์ฃผ์ง๋ ์์๋ค.
ํจ์์์ ์ฒซ ๋ฒ์งธ ์ค์ ์๋ฒ์์ ์ฐ๊ฒฐ์ ๋ ๋ฒ์งธ ์ค์ ์๋ฒ์ ๋ธ๋ก๊ทธ ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ์ค์ ๋ก ํต์ ํ๋ ๊ฒ์ ์๋ฏธํ๋ ๊ฒ์ด๋ผ๊ณ ํ๋ค.
function getDb(){
if(!database){
throw { message: "Database connection not established!" };
}
return database;
}
์ด๊ฒ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ฐ์ ธ์๋ ํจ์๋ก์ ์ด ํจ์๊ฐ ์ฌ์ฉ๋๊ธฐ ์ ์ connect()๊ฐ ๋จผ์ ํธ์ถ๋์ด์ผ ํ๋ค.
module.exports = {
connectToDatabase: connect,
getDb: getDb
};
.
๊ทธ๋ฆฌ๊ณ ๋ค๋ฅธ ํ์ผ๋ค์์ ์ ๊ทผํ ์ ์๋ ๊ฒ๋ค์ module.exports๋ก ํ์ํ๋๋ฐ,
ํ์์ ์ด ํ์ผ์ ์ฌ์ฉํ๋ ํ์ผ์์ ์ฌ์ฉํ ์ด๋ฆ : ์ด ํ์ผ์์์ ์ด๋ฆ ์ด๊ณ ()๊ฐ ์๋ ์ด์ ๋ ์ง๊ธ ์คํํ๋ ๊ฒ์ด ์๋๊ธฐ์ ์๋ค.
๊ทธ๋ฆฌ๊ณ ์ด ํ์ผ, database.js๋ฅผ ๋ถ๋ฌ์ค๋ ํ์ผ, app.js์์๋
const db = require("./data/database");// db ์์ฒญ
db.connectToDatabase().then(function () {
app.listen(3000);
})
require๋ก ํ์ผ์ ๋ถ๋ฌ์์ ๋ฐ์์ connectToDatabase() ํจ์๋ฅผ ์คํํด์ ์ฐ๊ฒฐํ๋ฉด ๋๋ค.
๊ทธ๋ฆฌ๊ณ ํ๋ก๋ฏธ์ค๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ถ๋ฌ์ค๋ฉด ์น์๋ฒ๋ฅผ ์์ํ๋๋ก ์ค์ ํ๋ฉด ๋๋ค.
์ด๋ฌ๊ณ ctrl+c๋ฅผ ํตํด nodemon์ ์ ์ ์ค์งํ๋ค๊ฐ npm start๋ฅผ ํตํด ๋ค์ ์คํํ๋ฉด ์๋ฒ๊ฐ ๋์ผ ํ๋๋ฐ... ์๋ฒ๊ฐ ์์ด๋ฆฐ๋ค. ์ด์ ๊น์ง ์ ์ด๋ฆฐ๊ฑธ๋ก ๋ด์๋ ๋ด๊ฐ ์ถ๊ฐํ ์ฝ๋์ ๋ฌธ์ ๊ฐ ์๋๊น....
์ค๋ฅ๋ฅผ ์์ธํ ๋ณด๋ ๋๋๊ฒ๋ ์ด์ ์ค์นํ mongodb node driver์์ ์ค๋ฅ๊ฐ ๋ฌ๋ค.

ํํณ ๋ด๊ฐ ์์ฑํ ์ฝ๋๋ฉด ์ด๋ป๊ฒ ์๋ณด๊ฒ ๋๋ฐ.. ๋ค์ด๋ฐ์ ํจํค์ง๋ฅผ ๊ฑธ๊ณ ๋์ด์ง์๋ฉด.... ๊ณค๋ํ๋ฐ...

๋คํํ ๋์ ๋น์ทํ ๋ฌธ์ ๋ฅผ ๊ฐ์ง๊ณ ์๋ ์ฌ๋์ ์ธํฐ๋ท์์ ์ฐพ์๋ค.

๊ทธ๊ณณ์ ๋ต๋ณ์ ๋ณด๋ ๋ฒ์ ์ฐจ์ด๋ก ์ธํ ํํ ๋ฌธ์ ๋ผ๊ณ ๋์์๋ค.
์ฌ์ค mongodb๋ ์๋ง ์ต์ ๋ฒ์ ์ผ๋ก ๊น๋ ธ์ ๊ฒ์ด๊ณ node.js ๋ฒ์ ๋ฌธ์ ์ธ๊ฐ..?
๋ฒ์ ์ ํ์ธ์ ํด๋ณด๋
v10.16.3
๋ฒ์ ์ด ๋์๋ค. ์... ใ
๊ทธ๋ผ Node.js ๋ฒ์ ์ ์ ๊ทธ๋ ์ด๋ ํด๋ด ์๋ค.(์ฐ์งธ ๊ฐ์๋ณด๋ค ํ๊ฒฝ ์ค๋ฅ ๊ณ ์น๋๋ฐ ์๊ฐ์ด ๋ง์ด ๋๋ ๊ฒ ๊ฐ์ง..?)
์์ ์ฌ์ดํธ๋ฅผ ์ฐธ๊ณ ํด์ node.js ๋ฒ์ ์ ์
๋ฐ์ดํธ ํ๋ ค๊ณ node.js๋ฅผ ์ ๊ฑฐํ๊ณ ์๋๋ฐ

30%์์ ์์์ง์ธ๋ค.... ํํณ ํํณใ
์ด๋ด ๋๋ง๋ค ๊ตฐ๋์์ ์ด๋ฐ ์น๊ฐ๋ฐ ๋ง๊ณ ์๊ณ ๋ฆฌ์ฆ์ด๋ ํ ๊น ํํ๊ฐ ์ต๋๋ค.

์ค๋ ์์ ์ญ์ ๋ถ๊ฐ๋ฅํ ๋ฏ ๋ญ ์ค๋์ ์ฌ๊ธฐ๊น์ง
ํ๋ก ํธ๋ ๊ด์ฐฎ์๋๋ฐ ๋ฐฑ์๋๋ฅผ ํ๋ฉด์ ๊ตฐ๋์์ ๊ฐ๋ฐํ๋ ๊ฒ์ ํ๊ณ๋ฅผ ์ข ๋๋ผ๋ ๊ฒ ๊ฐ๋ค.
๊ตฐ๋์์ ์น ๊ฐ๋ฐ, ์ฑ ๊ฐ๋ฐ์ ๋ง๋ค์ด์ ์๋น์ค๋ฅผ ๋ง๋ค์ด์ ์ค์ ์ฌ์ฉ์๋ค์๊ฒ ์๋น์ค๊น์ง ํ๋ ๊ฒ์ด ๋์ ๋ชฉํ์๋๋ฐ, ๊ทธ๊ฒ ๊ตฐ๋์์ ๊ฐ๋ฅํ ์ผ์ธ๊ฐ ๋ค์ ํ๋ฒ ์๊ฐํด๋ด์ผ๊ฒ ๋ค๋ ์๊ฐ์ด ๋ ๋ค.
๊ทธ๋ผ 20000.