본문 바로가기

Development/TIL

Sequelize

Sequelize란?

Sequelize는 node.js에서 사용할 수 있는 ORM 라이브러리이다.

ORM은 객체와 데이터베이스 간의 매핑을 자동으로 처리하여 개발자가 직접 SQL 쿼리를 작성하지 않고도

데이터베이스와 상호 작용을 할 수 있게 해준다.

 

Sequelize는 MySQL을 비롯한 다양한 데이터베이스 시스템을 지원하며 테이터베이스의 스키마를 자동으로 생성할 수 있다. 또한 Model 정의를 통해 데이터베이스와 객체 간의 매핑을 설정할 수 있으며, 쿼리 생성 및 실행, 트랜잭션 관리, 데이터 유효성 검사 등 다양한 기능을 제공한다.

 

ORM (Object-Relation Mapping)이란?

객체와 관계형 데이터베이스 사이에 데이터를 변환하는 기술이다.

ORM을 사용하면 객체와 관계형 데이터베이스 간에 데이터를 변환하는 작업을 개발자가 직접 처리하지 않고 자동화할 수 있다.

 

ORM은 데이터베이스의 테이블을 객체로 매핑하여 객체를 통해 데이터를 쉽게 다룰 수 있게 한다.

이를 위해 ORM은 객체 지향 프로그래밍에서 사용하는 클래스, 객체, 상속 등의 개념을 사용한다.

ORM을 사용하면 데이터베이스에서 데이터를 가져오거나 저장할 때 SQL 쿼리를 사용하지 않고 객체를 조작하는 방식으로 데이터를 처리할 수 있다.

 

ORM의 장점

  1. 객체와 데이터베이스 간의 매핑이 자동 처리되어 쿼리 작성의 번거로움이 줄어든다.
  2. 객체 지향 프로그래밍에서 사용하는 클래스, 객체, 상속 등의 개념을 사용하기 때문에 코드의 가독성이 높아지고
    유지보수가 쉬워진다.
  3. 데이터베이스의 스키마 변경 시 ORM에서 자동으로 업데이트를 처리할 수 있다.

 

Sequelize 사용 예시코드

const { Sequelize, DataTypes } = require('sequelize');
const sequelize = new Sequelize('mysql://user:password@localhost:3306/mydb');

const User = sequelize.define('User', {
  name: {
    type: DataTypes.STRING,
    allowNull: false
  },
  age: {
    type: DataTypes.INTEGER,
    allowNull: false
  },
  email: {
    type: DataTypes.STRING,
    allowNull: false
  }
});

(async () => {
  await sequelize.sync({ force: true }); // 스키마 자동 생성
  const user = await User.create({ name: 'John', age: 30, email: 'john@example.com' }); // 레코드 생성
  console.log(user.toJSON()); // 생성된 레코드 출력
})();

Sequelize를 사용하여 User Model을 정의하고 데이터베이스와 연동한다.

Schema 자동 생성을 위해 sequelize.sync() 메서드를 호출하고 레코드 생성을 위해 User.create() 메서드를 호출한다.

생성된 레코드를 출력한다.

 

Sequelize를 사용하면 SQL 쿼리를 사용하지 않고도 데이터베이스와 상호작용을 할 수 있고,

코드의 가독성과 유지보수성이 높아진다.

'Development > TIL' 카테고리의 다른 글

MongoDB와 MySQL  (0) 2023.04.27
Sequelize 탐구  (0) 2023.04.26
JsonWebToken  (0) 2023.04.23
내가 만든 Cookie  (0) 2023.04.21
try catch를 이용한 예외 처리  (0) 2023.04.20