1. What is ORM?

 

  ORM은 Object Relational Mapping 즉, 객체 - 관계 매핑의 줄임말이다.

  객체-관계 매핑이란 객체 지향 프로그래밍에서 구현한 클래스와 RDB(Relational DataBase)에서 테이블을 매핑(연결)하는 것을 의미한다.

 

  이 연결을 위해 필요한 기능을 제공하는 것이 ORM이다.

  따라서 ORM을 이용하면 따로 SQL문을 짤 필요 없이 객체를 통해 간접적으로 데이터베이스를 조작할 수 있게 된다.

 

 

2. Sequelize ORM

 

  Sequelize는 Postgres, MySQL, MariaDB, SQLite 등을 지원하는 Promise에 기반한 비동기로 동작하는 Node.js ORM이다.

 

  2 - 1) model

 

    모델은 Sequelize의 본질이다.

    모델은 데이터베이스에서 하나의 테이블을 나타낸다.

    Sequelize에서 내가 만든 모델은 Model이라는 것을 상속하는 클래스다.

    이 모델을 이용하여 실제 데이터베이스에 존재하는 테이블에 CRUD 할 수 있다.

 

  2 - 2) migration

 

    Git을 사용하여 코드의 변경 사항을 관리하는 것처럼 마이그레이션을 사용하여 데이터베이스의 변경 사항을 추적할 수 있다.

    마이그레이션을 통해 기존 데이터베이스를 다른 상태로 또는 그 반대로 전송할 수 있다.

 

    상태 전환은 마이그레이션 파일에 직접 작성할 수 있다.

    그리고 새 상태로 전환하는 방법과 이전 상태로 돌아 가기 위해 변경 사항을 되돌리는 방법을 설명할 수 있다.

 

    또한 마이그레이션을 다루기위해선 Sequelize CLI가 필요하다.

    CLI는 마이그레이션 및 프로젝트 부트 스트랩에 대한 지원을 제공한다.

 

    마이그레이션은 마이그레이션을 실행하고 취소하는 기능을 의미하는 두 가지 기능인 (up/down)을 내보내는 자바스크립트 파일이다.

    이러한 함수를 직접 정의해야하지만 수동으로 호출하지는 않고 CLI에 의해 자동으로 호출할 수 있다.

    이러한 함수에서는 sequelize.query 및 Sequelize가 제공하는 다른 메서드를 사용하여 필요한 쿼리를 간단히 수행해야 한다.

 

 

 

*참고 : sequelize.org/master/

 

Manual | Sequelize

Constraints & Circularities Adding constraints between tables means that tables must be created in the database in a certain order, when using sequelize.sync. If Task has a reference to User, the User table must be created before the Task table can be crea

sequelize.org

  

    

'CodeStates' 카테고리의 다른 글

MVC Design Pattern  (0) 2021.03.03
IM 35일차 (nodemon & Debugging for node.js)  (0) 2021.02.15
IM 32일차 (Postman 사용법)  (0) 2021.02.12
IM 31일차 (MIME type 과 HTTP headers 의 Content-Type)  (0) 2021.02.11
IM 26일차 (CORS)  (0) 2021.02.06

+ Recent posts