[WIL] ORM, noSQL vs SQL

김시원·2023년 4월 30일
0

WIL

목록 보기
4/9
post-custom-banner

WIL

Wrap-up Retrospective: What I learned

  • HW4 Refactoring - 3-layered architecture
  • Transaction
  • Access/Refresh Token - using Redis
  • JS Class
  • Socket
  • Node jest module for testing

The goal for the next week

  • Node jest module 적용시켜보기
  • Node Express Review

ORM

ORM은 Object-Relational Mapping으로, 데이터베이스와 객체 지향 프로그래밍을 연결해준다. ORM을 사용하면 데이터베이스의 테이블을 객체로 표현할 수 있고, 객체를 데이터베이스 테이블로 매핑할 수 있다. 이를 통해 개발자는 SQL을 직접 작성하지 않아도 데이터베이스 작업을 할 수 있다.

  • mongoose
    mongoose는 Node.js에서 사용되는 ORM으로 MongoDB 데이터를 쉽게 다룰 수 있다. mongoose를 이용해서 데이터베이스 스키마를 정의하고, 해당 스키마를 기반으로 모델을 만들 수 있다.

  • sequelize
    sequelize는 Node.js에서 사용되는 ORM으로 MySQL, PostgreSQL, SQLite와 같은 관계형 데이터베이스 (RDBMS)를 지원한다. sequelize를 통해 데이터베이스 테이블과 컬럼을 정의하고, 관계를 설정하는 등의 작업을 객체 지향적인 방법으로 처리할 수 있다.

noSQL vs SQL

  • noSQL은 비관계형 데이터베이스로 다양한 형태의 데이터베이스를 지칭한다. 이는 대용량의 비정형 데이터를 다루는 데 효과적이며, 데이터의 유연성과 확장성을 보장한다. 이는 Key-value, document, graph, column-family 등의 데이터베이스 유형을 포함한다. noSQL은 BASE (기본적 가용성, 유연한 일관성, 분산 상태의 오류 허용) 트랜잭션을 지원한다. 또한, 수평적 확장에 적합하고 분산 서버에서 대량의 데이터를 처리할 때 좋다.
  • SQL은 관계형 데이터베이스로 데이터를 테이블 형태로 구성하고, 각 테이블은 column과 row로 구성된다. 테이블 간의 관계를 설정하고, SQL문을 사용하여 데이터를 검색, 수정, 삭제하는 등의 작업을 수행한다. 정형화된 데이터를 다루는 데 효과적이며, 데이터의 일관성과 무결성을 보장한다. SQL은 ACID (원자성, 일관성, 고립성, 지속성) 트랜잭션을 지원한다. 또한, 수직적 확장에 적합하며 단일 서버에서 다수의 트랜잭션을 처리하는 데 좋다.
post-custom-banner

0개의 댓글