object.freeze()

여리·2023년 3월 16일
0

Object.freeze()는 JavaScript에서 객체를 불변(immutable)하게 만들어주는 메소드다. 즉, 한 번 객체가 freeze()되면 해당 객체의 프로퍼티들이 수정되지 않고, 추가 및 삭제도 불가능해진다.

Object.freeze()를 사용하여 객체를 불변하게 만드는 이유는, 프로그램의 안정성과 예측 가능성을 높이기 위해서다. 객체가 불변하다면, 객체의 상태가 변하지 않기 때문에 코드의 예상치 못한 부작용이 발생하지 않고, 다른 부분에서 의도치 않은 오류가 발생할 가능성을 줄일 수 있다.

시나리오

회원가입을 하고자하는 유저에 대해서 자체가입을 하거나 유저가 어떠한 문제가 생겼을때(ex.신고당했을때, 탈퇴했을때, 정지먹었을때)에 대한 case를 나눌 수 있는데 항상 기본은 가장 nomal한 상태로 기본상태가 저장될 수 있도록 하게 한다.

이런 상태에서라면 이때 object_freeze를 사용할 수 있는데

const defaultUserSocialType = Object.freeze({
  itself: 1,
  anotherType: 2,
});

const defaultUserStatusType = Object.freeze({
  activity: 1,
  reporting: 2,
  stopActivity: 3,
  leave: 4,
});

const createUser = (
  email,
  password,
  phoneNumber,
  nickName,
  socialId,
  profileImageUrl
) => {
  return appDataSource.query(
    `
    INSERT INTO
      users(
        email,
        password,
        phone_number,
        nickname,
        social_id,
        profile_image_url,
        social_type_id,
        user_status_id)
    VALUES
        (?,?,?,?,?,?,?,?)
    `,
    [
      email,
      password,
      phoneNumber,
      nickName,
      socialId,
      profileImageUrl,
      defaultUserSocialType.itself,
      defaultUserStatusType.activity,
    ]
  );
};

이렇게 소스코드를 사용할 수 있을 것 같다.

그렇다면 이렇다면 테이블에 기본적인 값이 저장됐음을 알 수 있다.

꼭 DB에 관련되는 부분이 아니고 다른 영역에서도 사용될 수 있다는점 !

profile
beckend developer

0개의 댓글