MVC디자인패턴 (Model View Controller)
Model 데이터의 정보를 받고 있음 db와 연결되어있음
- 컨트롤러 : 기능과 관련
- 모델 : 데이터베이스와 관련
- view 유저가 보는화면을 보여주는역(UI) 컨트롤러랑만 연결
ORM (Object-Relational-Mapping)
ORM은 Object-Relational Management의 약자로, MySQL, MsSQL 등 등의 데이터베이스와 데이터베이스 안의 테이블을 프로그래밍 할 때 객체 처럼 쓸 수 있게 해주는 방식입니다.
간단하게 객체와 관계형 데이터베이스의 관계를 매핑 해주는 도구 입니다.
sequelize
sequelize란 Node.js에서 mysql을 쉽게 다룰 수 있도록 도와주는 라이브러리 하나이다.
Promise 기반의 Node.js ORM이다
객체형태로 왓다갓다 하게 도와주는 라이브러리
sequelize init
/ config/config.json{ "development": { "username": "root", //DB와 연결할 유저 "이름" "password": null, //DB와 연결할 유저 "비밀번호" "database": "s_mov", //사용할 Database 이름 "host": "127.0.0.1", //DB 서버 호스트 "dialect": "mysql" //DB 타입 설정 (mysql이 아니면 다른 DB 설정) }
sequelize Migrations
마이그레이션 을 사용 하여 데이터베이스 변경 사항을 추적 할 수 있다.
마이그레이션을 사용하면 기존 데이터베이스를 다른 상태로 또는 그 반대로 전송할 수 있다.
이러한 상태 전환은 마이그레이션 파일에 저장되며, 이 파일에는 새 상태로 전환하는 방법과 이전 상태로 돌아가기 위해 변경 사항을 되돌리는 방법이 설명되어 있다.
Sequelize의 마이그레이션은 마이그레이션을 수행하고 실행 취소하는 방법을 지시하는 두 가지 기능(up/down)을 내보내는 자바스크립트 파일이다
해당 테이블을 생성하려면 db:migrate명령 을 실행해야 합니다 .
npx sequelize-cli db:migrate // 실행 npx sequelize-cli db:migrate:undo // 취소, 가장 최근의 마이그레이션을 되돌린다
module.exports = { up: (queryInterface, Sequelize) => { // logic for transforming into the new state }, down: (queryInterface, Sequelize) => { // logic for reverting the changes } } //일반적인 마이그레이션 파일 //migration:generate 사용 //xxx-migration-skeleton.js마이그레이션 폴더에 생성 //npx sequelize-cli migration:generate --name migration-skeleton //queryInterface개체를 사용하여 데이터베이스를 수정할 수 있다
SQL의 문법을 sequelize를 이용하여 자바스크립트 코드로 작성해보았는데,
조금 익숙해졌다고, 다시 새로운 문법을 배우는것 같은기분이였다(?)
INSERT INTO
는 create({})
라는 문법으로 사용 할 수도 있었고,
findAll
과 같은 find함수도 확인 할 수 있었다.
이 부분은 내일 스프린트를 진행하며 다시 공부해봐야 겠다.