쿠쿠더님의 블로그

시퀄라이즈란? 본문

MYSQL

시퀄라이즈란?

쿠쿠더 2025. 4. 21. 16:42
  • ORM이란
    • ORM이 생긴 이유
    • ORM의 기능
  • 시퀄라이즈란?
    • 시퀄라이즈의 문법

ORM 객체 지향 프로그래밍 

- OOP에서 사용되는 객체의 프로그래밍을 관계형 데이터베이스의 테이블과 매핑해서 이전에

SQL을 작성하는것을 하지않고 데이터베이스와 상호작용을 할수있다.

- 객체를 전달하면 우리가 원하는 형태의 SQL을 작성해서 데이터베이스와 상호작용할 수 있다.

- 필드 즉 엔티티를 정의할때 객체의 형태 필드에 저장하는 데이터의 형태를 객체로 매핑하면

좀 더 데이터의 관리의 가독성이 높아진다. 

 

ORM이 생긴 이유 

- 객체와 관계형 데이터를 다룰때 불일치를 해결하기 위해서 탄생

- 처음에는 SQL을 자동 생성하고 실행하는 간단한 내용으로 탄생

- 이후 점점 스키마와 객체의 모델을 매핑하는 기술로 점점 발전했다.

- 데이터베이스를 다룰때 SQL을 직접 작성하지 않고 개발 생산성과 가독성을 높이기 위해서 사용된다.

 

ORM의 기능

- 객체와 데이터베이스의 테이블 매핑 : 테이블간의 매핑을 객체로 만들어서 데이터베이스와 상호작용을 할수 있게 매핑

- 자동 SQL 작성 : CRUD의 SQL을 작성해서 상호작용을 해준다. 

 

시퀄라이즈 

- ORM 중 하나이고 객체와 데이터베이스를 매핑을 도와준다.

- 자바스크립트 구문으로 객체를 메서드의 매개변수로 전달하게되면 sql을 작성을해서

데이터베이스를 제어할수 있도록 도와준다,

 

시쿼라이즈의 문법

-다운로드-
npm i sequelize 

const Sequelize = require('sequelize');
const Post = require('./post');
const User = require('./user');

const sequelize = new Sequelize(
    process.env.DATABASE_NAME,
    process.env.DATABASE_USER,
    process.env.DATABASE_PASSWORD,
    {
        host : process.env.DATABASE_HOST,
        dialect : "mysql"
    }
)

// 유저 테이블 만들고 매핑
const users = User.init(sequelize);
// 게시글 테이블 만들고 매핑
const posts = Post.init(sequelize);

const db = { Users : users, Posts : posts, sequelize};
users.associate(db);
posts.associate(db);


sequelize.sync( { force : false } ).then(() => {
    console.log("database on~")
}).catch((err) => {
    console.log(err);
})

module.exports = db;

 

아직은.. 쿼리문 짜는게 더쉽지만 익숙해져야겠져~~~~~~~~.........