프리온보딩 백엔드 코스
사전과제를 하면서 필수조건이 ORM 사용이었다. 내가 지금까지 사용한 ORM은TypeORM
이었다. 타입스크립트가 아닌 순수 자바스크립트를 사용하면서 ORM을 사용하려면 Sequelize가 더 나을 거 같아서 공부하면서 사용한 기록이다.
npm install --save sequelize
1. config.json에 입력
2. define
(1) 컬럼명과 타입, Null 여부, Default 값 등을 입력한다.
(2) tableName(입력하지 않으면 정의한 이름의 --s를 붙여서 생성된다.)
(3) timestamps -> 기본값(true)로 설정하면 createdAt, updatedAt이 자동으로 생성된다.
(4) 유니크 값등을 지정할 수 있다.
3. 기본문법
(1) 불러오기
const { Recruitment, sequelize } = require("../models");
(2) 생성
await Recruitment.create({
company_id: companyId,
position: position,
compensation: compensation,
contents: contents,
stack_id: stackId,
});
(3) count
const checkRecruitmentId = await Recruitment.count({
where: { id: recruitmentId },
});
(4) update
await Recruitment.update(
{
position: position,
compensation: compensation,
contents: contents,
stack_id: stackId,
},
{ where: { id: recruitmentId } }
);
(5) 조회
const companyId = await Recruitment.findAll({
attributes: ["company_id"],
raw: true,
where: { id: recruitmentId },
});
Sequelize는 참 유용한 라이브러리이다. 자바스크립트 문법으로 db를 다룰 수 있고 편리한 점이 많다. 그러나 단점도 있다. 복잡한 쿼리문을 구현할 수 없고 속도 면에서 raw 쿼리문을 사용하는 거보다 느릴 수 있다. 그래도 일반적인 쿼리문은 orm을 사용하여 구현하면 더 효율적으로 코딩을 할 수 있다는 생각을 가졌다.