TIL 51일차

안광의·2021년 9월 1일
0

Today I Learned

목록 보기
51/64
post-thumbnail
post-custom-banner

시작하며

오늘은 관계형 데이터베이스의 테이블을 객체 지향 프로그래밍 언어와 연결시켜 효율적으로 데이터베이스를 생성, 관리할 수 있는 ORM에 대해서 학습하였고 대표적인 라이브러리인 Seequelize을 설치하고 사용법을 익히는 스프린트를 진행하였다.

Sequelize

MVC


MVC(모델-뷰-컨트롤러)는 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴으로 소프트웨어의 비즈니스 로직과 화면을 구분하는데 중점을 두고 있고 더나은 업무의 분리와 향상된 관리를 제공한다.

ORM

ORM(Object-Relational Mapping)이란 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑해주는 것을 말한다. ORM을 사용하면 객체 지향 프로그래밍의 클래스와 관계형 데이터베이스의 테이블간 연결이 가능하다.

장점

  • 객체 지향적인 코드로 인해 더 직관적이고, 비즈니스 로직에 더 집중할 수 있다.
  • 재사용성 및 유지보수가 편리하다.
  • DBMS에 대한 종속성이 줄어든다.

단점

  • 완벽한 ORM으로만 서비스를 구현하기가 어렵다.
  • 프로시저가 많은 시스템에서는 ORM의 객체 지향적인 장점을 활용하기 어렵다.

Sequelize

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가 익숙하지 않아서 처음에는 해맸지만, 기업마다 데이터베이스를 사용하는 방식이 다르기 때문에 두 방법 모두 익숙해질 수 있도록 공부해야겠다.

profile
개발자로 성장하기
post-custom-banner

0개의 댓글