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 (원자성, 일관성, 고립성, 지속성) 트랜잭션을 지원한다. 또한, 수직적 확장에 적합하며 단일 서버에서 다수의 트랜잭션을 처리하는 데 좋다.