글 작성자: 망고좋아
반응형

📖 오늘 배운 내용 - 2021.12.04

  • MongoDB
    • 대용량 데이터를 처리하기 유리하다.
    • 스키마를 정의하는 과정 없이 빠르게 데이터베이스를 구축할 수 있다.
    • NoSQL 데이터베이스에 속한다.
  • Mongoose ODM
    • MongoDB의 Collection에 집중해 관리하도록 도와주는 패키지이다.
    • 간단하게 데이터베이스와 연결 상태를 관리할 수 있다.
    • Code-Level에서 스키마를 정의하고 관리할 수 있다.
  • Query
  • populate
  • Sequelize ORM

 

📝 MongoDB

 

[MongoDB] MongoDB 기본 개념, 설치, 사용 방법

🎯 MongoDB 대표적인 NoSQL, Document DB Mongo는 Humongous에서 따온 말로, 엄청나게 큰 DB라는 의미 → 대용량 데이터를 처리하기 좋다. 📝 RDB와 NoSQL 📕 RDB Relational Database 관계형 데이터베이스 자료..

lakelouise.tistory.com

 

📝 Mongoose ODM

 

[MongoDB] Mongoose ODM, Mongoose 사용하기, Query, populate

🎯 Mongoose ODM Object Data Modeling MongoDB의 Collection에 집중하여 관리하도록 도와주는 패키지 Collection을 모델화하여, 관련 기능들을 쉽게 사용할 수 있도록 도와준다. 즉, 몽고디비의 컬렉션을 자바스.

lakelouise.tistory.com

 

📝 Express.js + Mongoose ODM

 

[MongoDB] Express.js + Mongoose ODM 폴더 구조, 커넥션 이벤트

🎯 Express.js + Mongoose ODM Express.js는 프로젝트 구조를 자유롭게 구성할 수 있기 때문에 어느 부분에 Mongoose ODM을 위치시키면 좋을지 적절한 위치를 결정하는 것이 중요하다. 일반적으로 models 디렉

lakelouise.tistory.com

 

📝 Sequelize ORM

  • Object-Relational Mapping
  • MySQL, PostgreSQL 등의 RDBMS를 이용하는 간단한 방법이다.
  • ODM이 단순히 모델에 집중하여 관리하는 것에 반해, ORM은 테이블 관계와 쿼리 등의 기능을 더욱 단순화하는 용도로 주로 사용한다.

 

📕 ORM을 사용해서 DB 연결

const sequelize = new Sequelize('database', 'username', 'password', {
    host: 'localhost',
    dialect: 'mysql'
});
  • sequelize도 연결을 관리하는 간단한 방법을 제공한다.
  • mongoose가 MongoDB만 연결이 가능한 데에 반해 sequelize는 MySQL, PostgreSQL, SQLite 등 다양한 RDBMS에 연결 가능하다.

 

📕 Sequelize ORM을 통해 스키마 작성

const User = sequelize.define('User', {
    name: {
        type: DataTypes.STRING(10),
        allowNull: false
    },
    age: {
        type: DataTypes.Integer,
    }
}, {});
  • sequelize는 define을 통해 Schema를 생성한다.
  • mongoose.Schema와 유사하지만 sequelize는 Schema가 DDL도 생성해 준다.

 

📕 스키마 작성 - 관계 정의

User.hasMany(Post);
Post.belongsTo(User);
Foo.belongsToMany(Bar);
Bar.belongsToMany(Foo);
  • sequelize를 이용하면 테이블 간의 관계를 Code-Level로 관리할 수 있다.
  • 이를 이용하면 외래키 설정과 제약조건까지 DDL로 생성해 준다.
  • 또한 다대다 관계 설정을 통해 relation table도 자동으로 생성해 준다.

 

📕 쿼리

User.findAll({
    where: {
        name: 'elice',
        age: {
            [Op.lt]: 20,
            [Op.gte]: 10,
        },
    },
    include: User,
});
  • Operator를 이용해 SQL 쿼리를 코드로 작성 가능하다.
  • 스키마의 관계 설정을 한 경우, include를 사용하여 자동으로 join 쿼리 생성 가능하다.

 

📕 Synchronization

sequelize.sync();
  • define된 model 데이터를 바탕으로 DDL을 자동으로 실행해 준다.
    • 직접 데이터베이스에 접속하여 테이블 생성 및 관리를 할 필요가 없다.
    • 자동으로 생성된 DDL을 따르지 않으면 테이블 관리가 어려워진다.

 

💡 오늘 깨달은 것

  • 이전에 mysql을 배운 경험이 있어서 몽고db와 비교하면서 공부할 수 있었다. 확실히 몽고가 직관적이면서 간편하다.
  • 유튜브에서 Node.js, express, mongoDB를 사용해서 간단한 CRUD 게시판을 구현하는 영상 보면서 감을 익혀보려고 한다.
  • 지금까지 html, css, js, nodejs, express, mongodb에 대해서 이론적인 부분과 간단한 실습을 통해서 학습했는데 일주일 뒤에 시작할 프로젝트에서 잘 사용할 수 있을지 걱정이다. 그것보다 같은 팀원들에게 피해를 끼치는 게 아닌지 걱정스럽다. 이러한 걱정의 해결 방법으로는 연습밖에 없는 거 같다...! 1인분은 꼭 해결해 보자!!!
반응형