오늘은 관계형 데이터베이스의 테이블을 객체 지향 프로그래밍 언어와 연결시켜 효율적으로 데이터베이스를 생성, 관리할 수 있는 ORM에 대해서 학습하였고 대표적인 라이브러리인 Seequelize을 설치하고 사용법을 익히는 스프린트를 진행하였다.
MVC(모델-뷰-컨트롤러)는 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴으로 소프트웨어의 비즈니스 로직과 화면을 구분하는데 중점을 두고 있고 더나은 업무의 분리와 향상된 관리를 제공한다.
ORM(Object-Relational Mapping)이란 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑해주는 것을 말한다. ORM을 사용하면 객체 지향 프로그래밍의 클래스와 관계형 데이터베이스의 테이블간 연결이 가능하다.
장점
단점
Squelize란 관계형 데이터 베이스와 객체의 데이터를 자동으로 매핑해주는 ORM으로 Node.js 기반의 라이브러리이다. Sequelize를 사용하면 raw Query문을 사용하지 않고 javaScript를 이용해서 mysql을 사용할 수 있다.
Sequelize 설치
npm install --save sequelize
npm install --save mysql2
mysql2은 Promise API을 지원하여 비동기 함수 실행이 가능하다.
npm install -g --save-dev sequelize-cli
sequelize init
squelicze 실행에 필요한 초기 파일 및 폴더가 생성된다.
config/config.json //DB정보를 환경에 맞게 설정해야 한다.
models/
migrations/
seeders/
Model 생성
sequelize model:create --name TABLE_NAME --attributes "COLUMN1:type, COLUMN2:type, COLUMN3:type"
위 명령어를 실행하면 models 폴더에 테이블 이름으로 js파일이 생성되고 migrations 폴더에도 현재 시간을 이름으로 갖는 migration 파일이 생성된다.
migrate 실행
npx sequelize-cli db:migrate
위 명령어로 migrate를 실행하면 models내의 파일과 migrations내의 파일을 바탕으로 테이블이 생성된다.
파일을 수정했을 경우, migrate을 취소하고 다시 실행해줘야 반영된다.
npx sequelize-cli db:migrate:undo
javaScript에서 Sequelize를 사용하면 SQL을 사용하지 않고 객체 형태로 데이터베이스를 관리할 수 있어 구현해놓으면 유용하다고 생각한다. SQL의 명령문을 알지 못하는 사람도 Sequelize의 methods들을 학습하면 데이터 베이스 관리가 가능하기 때문에 SQL에 익숙하지 않은 사람에게는 편하게 느껴질 것이다. 며칠동안 SQL에 대해서 배우고 스프린트를 진행하니 아직 Sequelize가 익숙하지 않아서 처음에는 해맸지만, 기업마다 데이터베이스를 사용하는 방식이 다르기 때문에 두 방법 모두 익숙해질 수 있도록 공부해야겠다.