Mongoose와 Sequelize는 모두 JavaScript로 작성된 ORM(Object-Relational Mapping) 라이브러리로서, 각각 MongoDB와 SQL 데이터베이스를 다루는 데 사용된다. 그러나 둘은 사용하는 데이터베이스 유형과 사용 방식에 차이가 있다.
1. 데이터베이스 유형(이름만 봐도 당연하지만...)
Mongoose는 NoSQL 데이터베이스 중 하나인 MongoDB를 다루는 데 사용한다. MongoDB는 document-oriented 데이터베이스로, JSON과 유사한 데이터 모델을 사용한다.
반면에 Sequelize는 SQL 데이터베이스를 다루는 데 사용한다. SQL 데이터베이스는 테이블과 열로 구성된 데이터 모델을 사용한다.
2. 스키마 정의 방식
Mongoose는 스키마를 사용하여 데이터 모델을 정의한다. 반면에 Sequelize는 모델을 사용하여 데이터 모델을 정의한다.
여기서 스키마는 각 필드의 유형, 제약 조건 등을 정의하는 객체이고, 모델은 각 열의 유형, 제약 조건 등을 정의하는 객체이다.
3. 메서드 체인 방식
Mongoose는 SQL 문법과 유사한 메서드 체인 방식을 지원한다. 이 방식은 Mongoose의 쿼리 빌더를 사용하여 MongoDB 데이터베이스를 쿼리하는 데 사용된다.
Sequelize는 또 다른 ORM 라이브러리인 sequelize-query와 함께 제공되며, sequelize-query는 SQL 문법과 유사한 메서드 체인 방식을 지원한다.
4. 관계 정의 방식
Mongoose는 참조(relational) 방식을 사용하여 관계를 정의한다. 이 방식은 MongoDB의 document-oriented 데이터 모델을 따른다.
반면에 Sequelize는 외래 키(foreign key) 방식을 사용하여 관계를 정의한다. 이 방식은 SQL 데이터베이스의 테이블 간 관계 모델을 따른다.
ORM과 ODM의 차이로도 볼 수 있겠으나, 그건 다시 다른 글로 정리해봐야겠다.
'daily' 카테고리의 다른 글
23, 17주차 (0) | 2023.05.01 |
---|---|
23.04.29. express routes index에서의 export 이름 설정 (0) | 2023.04.29 |
23.04.28. sequelize로 mySQL migration하기 (0) | 2023.04.29 |
23.04.29. ORM과 ODM의 같은점과 다른점 (0) | 2023.04.29 |
23.04.29. Foreign Key Convention? (0) | 2023.04.29 |