본문 바로가기

4. Node.js | React.js

5/11(목) IT K-DT(49일차) / 31.sequelize

 

 

31. sequelize

 

Node.js에서 사용되는 ORM (Object-Relational Mapping) 라이브러리.

Sequelize는 MySQL, PostgreSQL, SQLite, MSSQL과 같은 다양한 관계형 DB 시스템과 상호 작용할 수 있도록 설계됨.

Sequelize는 개발자가 JavaScript를 사용하여 DB와 상호 작용할 수 있도록 도와줌.

Sequelize를 사용하면 DB의 테이블/열을 JavaScript 객체와 속성으로 매핑하고,

객체를 사용하여 데이터를 생성, 조회, 수정, 삭제할 수 있음.

Sequelize의 주요 기능:

1) 모델 정의:

 DB 테이블이 JavaScript 클래스로 정의. 각 클래스는 테이블의 구조, 열, 관계 등을 정의하는데 사용됨.


2) DB 마이그레이션:

DB 스키마 변경 사항의 추적/관리 기능을 제공 → 버전 관리와 업데이트를 쉽게 할 수 있음.

3) DB 쿼리:

CRUD (Create, Read, Update, Delete) 작업을 수행하는 다양한 쿼리 메서드를 제공.

→ JavaScript 코드를 사용하여 데이터를 생성, 조회, 수정, 삭제할 수 있음.

4) DB 관계:

DB 간의 관계를 정의/관리하는 기능을 제공 → 다양한 관계를 쉽게 설정하고 사용할 수 있음.


5) 쿼리 생성 및 최적화:

SQL 쿼리를 직접 작성하지 않고도 쿼리의 생성/최적화 가능 → 개발자의 생산성 향상, DB 작업에 대한 성능을 최적화.

Sequelize는 널리 사용되는 ORM 라이브러리 중 하나이며, 

Node.js 기반의 프로젝트에서 데이터베이스 작업을 편리하게 처리할 수 있도록 도와줌.

 


  ORM
  ORM은 "Object-Relational Mapping"의 약자로, 객체와 관계형 데이터베이스 간의 데이터 변환과 상호 작용을 관리하는 기술.

  관계형 데이터베이스는 테이블과 열의 형태로 데이터를 저장하고 관리하는 시스템이나,
  객체지향 프로그래밍에서는 객체라는 개념을 사용하여 데이터와 해당 데이터를 조작하는 메서드를 포함함.
  ORM은 이러한 객체와 관계형 데이터베이스 간의 간극을 줄이기 위해 사용.

  ORM은 개발자가 관계형 데이터베이스와 직접적인 SQL 쿼리를 작성하지 않고도
  객체를 사용하여 데이터베이스에 접근하고 조작할 수 있게 해줌.
  객체와 데이터베이스 간의 매핑을 수행하여 개발자가 객체지향적인 코드를 작성하면
  ORM이 해당 코드를 적절한 SQL 쿼리로 변환하여 데이터베이스에 전달함.

 
  ORM의 기능과 이점:
 
  객체와 데이터베이스 간의 매핑:
  객체 - DB 테이블, 객체의 속성 - DB 열 사이의 매핑을 정의.
  → 객체를 사용하여 데이터베이스를 조작할 수 있음.

  데이터베이스 추상화: 
  다양한 데이터베이스 시스템에 대한 추상화 계층을 제공.
  → 특정 데이터베이스에 종속되지 않고 일관된 방식으로 작업할 수 있도록 함.

  데이터베이스 연산의 추상화:
  ORM은 데이터베이스에 대한 CRUD (Create, Read, Update, Delete) 작업을 객체지향적인 방식으로 추상화.
  → 객체의 메서드를 사용하여 데이터를 생성, 조회, 수정, 삭제할 수 있음.

  쿼리 생성 및 최적화:
  개발자가 직접 SQL 쿼리를 작성하지 않고도 쿼리를 생성하고 최적화할 수 있음.
  → 생산성을 향상시키고, 데이터베이스 작업에 대한 성능을 최적화하는 데 도움을 줌
.

  ORM은 다양한 프로그래밍 언어와 프레임워크에서 사용할 수 있으며,
  대표적인 Node.js에서는 Sequelize, TypeORM, Prisma 등의 ORM 라이브러리가 널리 사용됨. 

 

github에 새로운 branch로 'Sequelize' 생성 필요
git checkout -b Sequelize


참고 문서: https://sequelize.org/docs/v6/

 

Sequelize v6 | Sequelize

npm version

sequelize.org