TIL#48 DB) CRUD

luneah·2021년 12월 14일
0

Database

목록 보기
1/5
post-thumbnail

CRUD


백엔드 서버는 클라이언트의 요청에 따라 데이터베이스에 필요한 작업을 수행한다. 필요한 요청은 다양하지만 크게 네 가지로 분류된다. 데이터를 생성하고(create), 조회하고(read), 수정하고(update), 삭제(delete)한다. 이 네 가지 과정을 보통 CRUD라고 부른다.

이름조작SQL
Create생성INSERT
Read(또는 Retrieve)읽기(또는 인출)SELECT
Update갱신UPDATE
Delete(또는 Destroy)삭제(또는 파괴)DELETE

1. Create

이름 그대로 정보를 생성하는 과정을 말한다. 사용자, 제품, 예약 정보, 마일리지 등등 사용자의 행동에 따라 새로운 정보가 생성되고, 이를 서버에 계속 저장해두어야 하는 경우에 진행된다. 데이터를 구분하기 위한 고유한 값이 적어도 하나는 함께 생성(primary key)된다.

Ex) 회원가입, 장바구니에 제품 추가, 호텔 예약, 상품 위시리스트에 담기 등

const createProduct = (req, res) => {
  const products = [] // 임의의 빈 배열에다가 상품 정보를 저장
  const { title, description } = req.body
  const product = {
//  id : uuid.uuid()  // 추가사항
    title : title,
    description : description
  }
  
  products.push(product)
  return products
}

module.exports = { sendPosts, createProduct } 
// routing.js 에서 사용하기 위해 모듈로 내보낸다.

2. Read

클라이언트의 요청에 따라 데이터베이스에 저장된 데이터를 조회하는 과정을 일컫는다. 데이터를 읽어온 후 가공하거나, 추가적인 로직을 적용하여 클라이언트에게 반환한다. 이 과정에서 데이터베이스에 저장되어 있는 데이터가 수정되거나 제거되는 일은 거의 없다.

Ex) 상품 정보 불러오기, 장바구니에 담긴 상품 조회, 구매 이력 조회 등

const sendPosts = (req, res) => {
  res.json({ // 위에서 작성한 sendPosts 함수와 비교했을 때,
  // express 덕분에 JSON.stringify 함수를 사용할 필요없이
  // response 객체의 json 메소드를 활용한다.
    products: [
      {
        id: 1,
        title: 'node',
        description: 'node.js is awesome',
      },
      {
        id: 2,
        title: 'express',
        description: 'express is a server-side framework for node.js',
      },
    ],
  })
}

module.exports = { sendPosts } // routing.js 에서 사용하기 위해 모듈로 내보낸다.

3. Update

서버에 기존에 저장되어 있던 데이터를 새로 생성하거나 제거하는 과정없이 정보를 수정하는 과정을 말한다. 기존에 저장되어있던 데이터를 구분하는 기준은, 데이터가 생성될 때 갖게 된 고유한 값이다.

Ex) 장바구니에 추가된 상품의 수량 증가/감소, 회원정보 업데이트, 상품의 기본 정보 수정 등

const updatePost = (req, res) => {
  const { id } = req.body
  
  const posting = postings.filter((posting) => posting.id === id)
  posting.title = "new title"
  
  return posting
}

module.exports = { sendPosts, createPost, updatePost }

4. Delete

서비스에 따라 삭제의 종류가 나뉠 수 있으나, 기본적으로 서버에 저장되어있던 데이터를 제거하는 과정이다.

Ex) 좋아요한 상품 취소 (좋아요 정보 제거), 회원탈퇴, 등록된 상품 제거 등

const deleteProduct = (req, res) => {
    const { id } = req.body;

    const item = list.data.find(item => item.id === id)
    const index = list.data.indexOf(item);
    list.data.splice(index, 1);

    res.json(list)
} 
profile
하늘이의 개발 일기

0개의 댓글