2022-03-19(TIL)

황인호·2022년 6월 7일
0

TIL 모음

목록 보기
8/119

오늘배운 내용 및 해온것

  • Node.js 3주차 완강

데이터 베이스란 뭘까?

단순하게 데이터를 잘 저장하고 잘 찾기 위해서 만들어진 소프트웨어를

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; // 모듈이 실행될수있도록 바깥으로 내보낸다는 뜻

오늘은 반성해야한다.

주어진시간이 많았음에도 불구하고 충실하게 사용하지못했다.

누구나 여러번 들어봤을거고 나 또한 아는 단어이다.

“오늘 내가 의미없이 사용한 시간은 누군가 간절하게 바라고 원한 시간일수도있다.”

시간의 중요성을 극대화하고 강조하기위한 표현이다.

알지만 잊어버리고 살아가는 나스스로에게 꼭 필요한 표현이다.

내일의 나에게 주어진 시간을 충실하게 살아가자

나중에 돌아서서 후회하지않을수있도록!!

profile
성장중인 백엔드 개발자!!

0개의 댓글