개인공부/TIL(Today I Learned)

TIL 83일차_ORM: Sequelize

soon327 2021. 4. 11. 23:48

요즘 날씨가 완전 봄이다.🌸
봄이오면서 나른~해지고 춘공증도 오구, 아침에 일어나기두 힘들구, 운동도 잘 안하게되구...
점점 생활루틴이 많이 망가진다는 느낌을 받는다. 😭
내일 일어나면 아침꼭먹고, 틈틈이 철봉만이라도 해야지..

잡설은 그만하고, 내일 배울 ORM에 대해서 미리 공부해봤다.

ORM (Object-relational Mapping) 이란?

ORM(Object-relational Mapping)이란
OOP 간의 호환되지 않는 데이터를 변환하는 프로그래밍 기법으로 쉽게 말해 객체로 관계형 데이터베이스를 관리하는 기술이다.
대부분의 개발 언어 platform마다 제공되고 있으며,
대표적으로 spring에는 JPA가, node의 sequalize, 또 Django에는 orm이 내장되어있다.

ORM을 사용 했을 때의 장점

객체 관계 매핑(Object-relational Mapping)이란 말에 어울리게
ORM을 사용하면 객체는 객체대로 설계하고, 관계형 데이터베이스는 데이터베이스대로 설계하고
중간에서 ORM 프레임워크가 중간에서 매핑을 해주어 서로 의존성을 배제할 수 있다.
이를 통해 생산성과 유지보수성에서 높은 이득을 얻을 수 있다.

Sequelize


Sequelize는 Node.js의 ORM기술이다.
자바스크립트 객체와 데이터베이스의 릴레이션을 매핑해주는 도구인 것이다.
시퀄라이즈를 사용하면 자바스크립트 구문을 알아서 SQl로 변환해주어서 좀 더 의존성 낮은 프로그래밍을 할 수 있다.
MySQL 뿐만 아니라, MariaDB, PostgreSQL, SQLite 등 다른 데이터베이스로 전환이 비교적 자유롭다.

Sequelize install

npm install --save sequelize
npm install --save-dev sequelize-cli

sequelize-cli는 마이그레이션을 할 수 있도록 돕는 툴로,
CLI에서 모델을 생성해주거나, 스키마 적용을 할 수 있도록 돕는다.

아래의 커맨드를 입력하여 bootstraping해준다.
(bootstraping: 프로젝트 초기단계를 자동으로 설정할 수 있도록 도와주는일)

npx swquelize-cli init // sequelize init

Sequelize - ORM 설정

위에서 init 명령어를 입력하면,
4개의 디렉토리가 생성된다. 이 설정파일들을 이용해 MySQL 접속설정을 해줘야 한다.
config, models, migration, seeders

대략적으로 설명하면,
models/index.jsconfig/sequelize.json의 설정 값을 읽어서
Sequelize를 생산한 후, models디렉토리의 model들을 db객체에 정의한다.

설정에 관련된 세부내용은 다음 포스팅에서 다루도록 하겠다!! 😎


reference

윤자이 기술블로그