2021_05_25

유지원·2021년 5월 25일
0

TIL - MVC 패턴, ORM, sequelize

1. MVC 패턴

MVC 퍠턴은 프로그램을 구성할 때 Model, View, Controller로 구성요소를 나누어서 개발한 패턴이다.

  1. Model
    -- 모델. 데이터의 가공을 책임지는 비즈니스 처리를 하는 로직 부분이다.
  2. View
    -- 뷰. 사용자에게 보여지는 인터페이스 부분이다.
  3. Controller
    -- 컨트롤러. 사용자의 입력 처리와 흐름 제어를 담당한다.

2. ORM

Object-Relational Mapping의 약자로 객체와 관계형 데이터베이스의 데이터를 매핑(연결) 해주는 것이다.

객체지향은 클래스를 사용하고 관계형 데이터베이스는 테이블을 사용한다. 이 때, 서로의 데이터에 대한 '불일치'가 존재하게 되는데, 이 때 ORM을 사용하여 객체의 관계를 바탕으로 SQL을 자동 생성하여 불일치를 해결한다.

따라서 객체를 통해 간접적으로 데이터베이스 데이터를 다루게 된다.
ORM을 사용하면 관계형 사고를 하지 않고도 관계형 데이터베이스를 사용할 수 있고, 별도의 어뎁터 없이도 데이터베이스를 사용할 수 있게 된다.

3. sequelize

sequelize란 Node.js 환경에서 ORM을 사용하기 위해 만들어진 라이브러리 중 하나이다.
MySQL, SQLite 등을 지원하는 Promise 패턴 기반의 Node.js ORM이다.

(1) ORM 설정

npx sequelize-cli init

init을 이용해 ORM을 설정하면 config, models, migrations, seeders 파일이 생성된다.

(2) 모델 생성

npx sequelize-cli model:generate --name url --attributes url:string,title:string,visits:integer

model:generate --name을 이용해서 urls 테이블을 생성했고, --attributes를 이용해서 url, title, visits 필드를 만들어주었다. MySQL에서는 문자열을 varchar로 표현했는데 ORM 에서는 string으로 표현했다.

(3) 마이그레이션
운영중인 서비스에 DB 상태를 변경하게 되면 문제가 생길 수 있다. 이 때 sequelize에서 지원하는 마이그레이션을 사용하면 우리가 수정하고 싶은 문제를 소스코드로 작성해 수정할 수 있다.

npx sequelize-cli db:migrate

아직 실행되지 않은 마이그레이션 파일을 찾아서 마이그레이션 시킨다.
테이블의 스키마가 변경될 때마다 마이그레이션 해야한다.




이번시간에는 ORM에 대해 공부했다.
다음시간에는 MongoDB에 대해 공부한다!
오늘은 여기까지~!~~~

profile
안녕하세요 유지원입니다

0개의 댓글