Sequelize란?

Sequelize는 **ORM(Object Relational Mapping)**으로써 Javascript **객체(Object)**와 데이터베이스의 **관계(Relation)**을 연결(Mapping) 해주는 도구

<aside> 💡 ORM이란 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것을 말한다. 객체 지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용한다.

</aside>

Sequelize는 MySQL 외에도 Oracle, MariaDB, PostgreSQL와 같은 다양한 데이터베이스를 사용할 수 있다.

또한 문법이 어느정도 호환되므로 프로젝트를 다른 SQL 데이터베이스로 전환할 때도 편리하다.

Sequelize는 자바스크립트 구문을 알아서 SQL로 바꿔준다. 따라서 JS 만으로 MySQL을 조작할 수 있어, SQL 언어를 몰라도 MySQL을 어느 정도 다룰 수 있다는 장점이 있다.

Untitled

Sequelize vs mongoose

Untitled

mongoose의 경우 ODM(Object Document Mapping)으로 Javascript의 객체Document와 연결, Schema의 형태로 **컬렉션(Collection)**에 대한 속성을 설정

Sequelize는 ORM(Object Relational Mapping)으로 Javascript의 객체와 데이터베이스의 **관계(Relation)**를 연결, Sequelize의 경우 Model의 형태로 **테이블(Table)**의 속성을 설정

→ MongoDB의 컬렉션과 MySQL의 테이블은 동일한 위상을 가지고 있습니다.

ORM의 장점

ORM을 이용하면 SQL 쿼리가 아닌 직관적인 코드로 데이터를 조작할 수 있어 개발자가 객체 지향 프로그래밍하는 데 집중할 수 있도록 도와줍니다.