[CS] MVC / ORM Day-50

cptkuk91·2022년 1월 24일
0

CS

목록 보기
86/139

ORM

Object Relational Mapping

ORM이 통역, 중개 역할을 한다.

객체(Object)에서의 속성은 데이터베이스에서는 각 필드라고 볼 수 있다.

Sequelize

promise-based Node.js ORM

  • Postgres
  • MySQL
  • MariaDB
  • SQLite

ex) 예시 코드

var Sequelize = require('sequelize');
var db = new Sequelize('chatter', 'root', '');

var User = db.define('User', {
	username: Sequelize.STRING
}); // User라는 테이블 username 필드 존재

var Message = db.define('Message', {
	userid: Sequelize.INTEGER,
    text: Sequelize.STRING,
    roomname: Sequelize.STRING
}); // userid, text, roomname 필드가 존재

User.sync()
	.then(function() {
            return User.create({username: 'Jean Valjean'}); // 필드에 값을 입력
	.then(function() {
    	    return User.findAll({where: {username: 'Jean Valjean'}); // 필드 값을 찾는다.
	.then(function(users) {
	    users.forEach(function(user) {
        	console.log(user.username + ' exists');
        });
        db.close();
})
.catch(function(err) {
	console.log(err);
    db.close();
});

Association (== join)

  • HasOne
  • BelongsTo
  • HasMany
  • BelongsToMany

Transaction


Sequelize 및 CLI 도구 이용

SQL문법을 이용해 만들 필요 없이, ORM을 통해 쉽게 테이블을 만들 수 있습니다.

Sequelize 사용을 위해 npm install 설치가 필요합니다.

  • (sequelize, sequelize-cli) 2개 설치 필요

cli를 통해 ORM을 잘 사용할 수 있도록 bootstraping을 해줘야 합니다.

성공적으로 bootstraping이 끝나면 아래와 같은 파일 및 폴더들이 생성됩니다.

  • 직접 디렉토리를 만들면 안됩니다.
config/config.json
models/
migrations/
seeders/

모델 생성

cli를 통해 모델을 만들어야 합니다.

  • 모델은 엔티티를 객체로 표현한 형태로, 데이터 구조를 기술하고, 데이터에 수행할 수 있는 명령의 모음을 의미합니다.

  • id, createdAt, updatedAt필드는 자동으로 생성됩니다.

  • 모델을 잘못 만든 경우, 생성된 파일을 직접 수정하거나 삭제 후 명령을 다시 실행할 수 있습니다.

마이그레이션

스키마 변경이 있을 경우 마이그레이션을 실행해줘야 합니다.


MVC 이해와 Controller 작성

Controller 작성 및 Router 연결

웹 개발에 있어서 라우터는 컨트롤러로 진입할 수 있게 도와주는 endpoint입니다. 라우터에 컨트롤러를 연결해야 합니다.

ex) /likes URL로 GET 또는 POST 요청을 보낼 경우, likes 컨트롤러의 메소드가 실행되도록 만들 수 있습니다.

profile
메일은 매일 확인하고 있습니다. 궁금하신 부분이나 틀린 부분에 대한 지적사항이 있으시다면 언제든 편하게 연락 부탁드려요 :)

0개의 댓글