오늘배운 내용 및 해온것
데이터 베이스란 뭘까?
단순하게 데이터를 잘 저장하고 잘 찾기 위해서 만들어진 소프트웨어를
Database Management System(DBMS)라고 부른다.
DBMS가 설치된 서버를 데이터베이스 서버(DB서버)라고 부를 수 있다.
흔히 데이터베이스에 저장한다 라고 말하면 이는 DBMS가 설치된 서버에 데이터를 저장한다고
말하는 것이다.
즉, DB서버의 모든데이터는 DBMS가 관리하게 되는것이다.
관계형데이터베이스 - Relational Database(RDB)
데이터 형식이 정해져있고, 데이터끼리 관계를 맺어 모순이 없는 데이터를 유지할 수 있도록 도와주는것에 집중한 데이터베이스를 관계형데이터베이스라고 부른다.
※모순이 없는 데이터 : 무결성과 정확성이 높은 데이터
비관계형데이터베이스 - Non relational Database(NoSQL)
관계형 데이터베이스에 속하지 않는 모든 데이터베이스를 비관계형데이터베이스라고 부릅니다.
비관계형데이터베이스는 데이터의 형태가 고정되어있지 않고 유연하게 확장할 수 있지만, 유연한 만큼 저장되는 데이터를 제대로 관리하지 않으면 데이터베이스에 저장된 데이터를 신뢰할 수 없게 되기도 한다.
최근 많은 스타트업에서 유연한 설계를 위해서 많이 채택되는 데이터베이스유형이다.
웹서버와 DB서버는 어떤관계일까?
웹서버는 웹클라이언트가 원하는 데이터와 기능을 제공한다.
DB서버는 데이터를 최대한 성능좋게 저장하고 DB클라이언트가 원하는 데이터를 제공한다.
정리하자면 [ 브라우저 ↔ 웹서버 ↔ DB서버 ]
const express = require("express");
const router = express.Router(); // 이는 express에서 제공하는 라우터를 사용할수있다는 뜻이다.
router.get("/", (req, res) => { // 이는 초기화면구성관련된 코드이다.
res.send("this is root page");
});
router.get("/goods", async (req, res) => {
const {category} = rfeq.query;
const goods = await Goods.find({ category}); // await를 사용시 반드시
// 위에 async를 기재해야만한다.
res.json({ // 이는 조회한 데이터를 json형식의 데이터로 응답을 받겠다는 뜻이다.
goods,
});
});
router.post("/goods/:goodsId/cart", async (req, res) => {
const {goodsId} = req.params; // goodsId 의 새로운 고유번호를 생성할수있게 한다는뜻
const {quantity} = req.body; // quantity의 새로운 수량을 생성할수있게 한다는 뜻
const existsCarts = await Cart.find({ goodsId: Number{goodsId) });
if (existsCarts.length) { // goodsId 에 부여되어있는 고유번호가 같은걸 추가하면
// 오류가 발생하도록 처리
return res.status(400).json({ success: false, errorMessage: "이미 장바구니에 들어있는
상품입니다."});
}
await Cart.create({ goodsId: Number(goodsId), quantity});
res.json({success:true}); // goodsId 에 새로운 고유번호와 상품수량 입력시
// json방식으로 데이터 생성될수있도록 처리하는 코드
});
router.delete("/goods/:goodsId/cart", async (req, res) => {
const { goodsId } = req.params; // goodsId 의 고유번호를 삭제할수있게한다는 뜻
const existsCarts = await Cart.find({ goodsId: Number(goodsId) });
if (existsCarts.length) { // goodsId 의 고유번호 입력시 삭제한다는 뜻
await Cart.deleteOne({ goodsId: Number(goodsId) });
}
res.json({ success : true }); // 작업이 완료되면 json형식으로 true값을 띄움
});
module.exports = router; // 모듈이 실행될수있도록 바깥으로 내보낸다는 뜻
오늘은 반성해야한다.
주어진시간이 많았음에도 불구하고 충실하게 사용하지못했다.
누구나 여러번 들어봤을거고 나 또한 아는 단어이다.
“오늘 내가 의미없이 사용한 시간은 누군가 간절하게 바라고 원한 시간일수도있다.”
시간의 중요성을 극대화하고 강조하기위한 표현이다.
알지만 잊어버리고 살아가는 나스스로에게 꼭 필요한 표현이다.
내일의 나에게 주어진 시간을 충실하게 살아가자
나중에 돌아서서 후회하지않을수있도록!!