머리글
이번 시간에는 CRUD에 대해 알아보고, Schema와 Model에 대해서 알아보자.
CRUD
1. C(Create) 생성
2. R(Read) 읽기
3. U(Update) 수정
4. D(Delete) 삭제
이 4가지를 의미하는 단어를 CRUD라고 한다.
이는 대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능을 묶은 것이다.
우선 기능을 만들기 전에 Model을 하나 생성해 보자.
Model, Schema
우리는 mongoose를 통해 DB와 소통하고 있다.
따라서 mongoose에게 우리의 애플리케이션에 있는 데이터의 형태를 알려줄 필요가 있다.
구체적인 값을 지정하는 것이 아닌 어떤 타입을 가지는지 알려주면 된다.
이때, model의 생김새를 Schema라고 한다.
그럼 비디오 모델을 하나 생성해 보자.
import mongoose from "mongoose";
const videoSchema = new mongoose.Schema({
title: String,
description: String,
createdAt: Date,
hashtags: [{type: String}],
views: Number,
});
이런 식으로 어떤 형태를 가져야 하는지를 설명해 놓으면 된다.
위의 경우 title과 description은 string의 형태를,
createdAt의 경우 Date의 형태를,
views는 Number의 형태를,
그리고 hashtags는 여러 개를 받을 수 있는 string 리스트의 형태를 가진다고 정의했다.
그리고 ID는 따로 만들지 않았는데,
데이터를 생성하면 자동으로 ID가 부여된다.
그리고 이 스키마를 모델로 만들어보자.
const videoModel = mongoose.model("Video", videoSchema);
export default Video;
mongoose의 model이라는 함수를 이용해서 모델의 이름을 "Video"로 주었고,
형태를 videoSchema의 형식으로 지정한다는 것을 알려주었다.
그리고 디폴트 형태로 export 하여서 다른 파일에서도 사용이 가능하게 하였다.
모델을 바로 이용이 가능하게 import를 해놓자.
import "./models/Video";
이러면 Video 모델을 사용할 수 있다.
마무리
이번 시간에는 CRUD가 무엇인지 간단히 살펴보고,
mongoose에 schema를 만들고 schema를 통해 모델을 생성하는 방법을 알아보았다.
다음 시간에는 쿼리를 생성해 보자.
'노마드 코더 > 유튜브 클론' 카테고리의 다른 글
[JavaScript, Node.js] 유튜브 클론 정리 6장 (5) - Database 생성, 저장 (0) | 2023.04.13 |
---|---|
[JavaScript, Node.js] 유튜브 클론 정리 6장 (4) - Query, Async, Await (0) | 2023.04.13 |
[JavaScript, Node.js] 유튜브 클론 정리 6장 (2) - MongoDB, Mongoose (0) | 2023.04.12 |
[JavaScript, Node.js] 유튜브 클론 정리 6장 (1) - GET, POST, 절대/상대 주소 (0) | 2023.04.12 |
[JavaScript, Node.js] 유튜브 클론 정리 5장 (3) - MVP.css, Conditionals, Iteration, Mixins (0) | 2023.04.11 |