CRUD 연습하자

16530 단어 CRUDCRUD

CRUD의 데이터 처리기능인 create,read,update,delete의 약자이다.

let users = [
  {
    id: 1,
    nickName: "닉1",
    name: "홍길동",
    age: 22,
  },
  {
    id: 2,
    nickName: "닉2",
    name: "아무개",
    age: 45,
  },
];

이렇게 user리스트가 있다고 하고 하나씩 CRUD를 연습해보자


연습1) CREATE 유저생성과 중복체크하기

const isNickNameExist = (newNickName) => {
  const existNickName = users.find((user) => user.nickName === newNickName);
  
  if (existNickName) {
    throw new Error("미이 존재하는 닉네임입니다.");
  }
};
isNickNameExist("nick2");

일단 중복체크를 먼저 하였다. users에 find반복문으로 순회하여 새로운 변수를 생성하고, 존재할경우 error를 만드는 방법이다.

const createUser = (nickName, name, age) => {
  id = users.sort((a, b) => b.id - a.id)[0].id + 1;

  const user = {
    id,
    nickName,
    name,
    age,
  };

  users = [...users, user];
  return user;
};

createUser('nick3','멋쟁이',25)

//[{...}, {...}, {...}]
//기존 2개의 users에서 3개로 증가한것을 볼 수 있다.

id는 자동적으로 숫자 하나씩 추가되게 하였다. sort를 이용하여 가장 마지막 숫자에 1씩 더해서 만드는 방법이다.
그리고 push를 하지않고, spread operator를 이용하여 users를 수정하였다.


연습2) update 유저 수정하기

const updateUser = (id, nickName, name, age) => {
  const userList = users.filter((user) => user.id !== id);
  const userToFix = users.find((user) => user.id === id);
  const sameNickName = userToFix.nickName === nickName;

  if (userToFix) {
    if (nickName) {
      if (sameNickName) {
        throw new Error("기존의 닉네임과 같습니다.");
      }
      userToFix.nickName = nickName;
    }
    if (name) {
      userToFix.name = name;
    }
    if (age) {
      userToFix.age = age;
    }
  } else {
    throw new Error("유저의 아이디가 존재하지 않습니다.");
  }

  users = [...userList, userToFix];
  return userToFix;
};

updateUser(1, "nick10", "삽살개", 7);

// {id: 1, nickName: "nick10", name: "삽살개", age: 7}
// 기존 id1이 수정되었다.

유저 아이디가 없다면 Error를 보내는 방식으로 유/무 체크를 하였고, 닉네임은 중복이 없어야 한다는 생각에 if문을 내부에 이어서 추가하여 만들었다.


연습3) delete 유저 삭제를 해보자

const deleteUser = (id) => {
  const deletedUserList = users.filter((user) => user.id !== id);
  const userToDelete = users.find((user) => user.id === id);

  if (userToDelete) {
    users = [...deletedUserList];
  } else {
    throw new Error("유저의 아이디가 존재하지 않습니다.");
  }
  return;
};

deleteUser(2);
// id가 2번인 user가 삭제되었다.

삭제하는 방법또한 id의 존재 유/무 체크하기위한 if문으로 시작하여 중복 체크를 한 후, filter를 사용하여 id와 다른 리스트를 뽑은 변수를 다시 users로 넣는 방식이다.


연습4) read 유저 조회를 해보자

const getUser = (id) => {
  
  const user = users.find((user) => user.id === id);
  
  if (user) {
    return user;
  } else {
    throw new Error("유저의 아이디가 존재하지 않습니다.");
  }
};

getUser(1)

코드는 어떠한 기능을 넣느냐에 따라 훨씬 길어질 수도 있다.
체크해야할 부분이 더 많을 수 있으니 좀 더 세세하게 연습을 해보자!!

좋은 웹페이지 즐겨찾기