항해99 4주차 WIL

이동환·2023년 4월 30일
0

항해99

목록 보기
27/27

요약
1. ORM
2. SQL vs NOSQL
3. 회고

(1) ORM : Object와 RDB를 연결해주는 라이브러리.

ORM은 프로젝트의 소스 코드에서 DB와 연결을 할 때 순수 SQL 쿼리문을 이용하는 것이 아니라 해당 언어로 작성된 라이브러리 코드를 통해 DB와 연결할 수 있게 해준다.
ORM을 사용한다면 다양한 종류의 RDB와 관계 없이 프로젝트의 소스 코드는 라이브러리의 모델만 신경 쓰면 되는 거고 각 DB에 대한 처리는 ORM이 알아서 진행해준다.

이 내용을 보고 jquery가 브라우저에 관계 없이 동일한 코드 작성 시 jquery에서 각 브라우저 별 차이가 있는 javascript 코드를 호출해 작업을 수행하는 부분이 떠올랐다.

Sequelize는 Node.js에서 사용하는 ORM이다.

(2) SQL vs NOSQL

차이1 - 쿼리문 : RDB들은 표준 SQL 기반의 명령어를 이용하는데 NOSQL의 경우 각각 다르다. mongoDB의 경우 자체 쿼리문을 사용하고, Redis 같은 경우는 key에 대한 value만 가져오는 단순한 쿼리문을 이용한다.
차이2 - 스키마 : SQL이라고 일컫는 RDB들은 정적 스키마를 사용하지만 NOSQL들은 동적 스키마를 사용하거나 스키마를 사용하지 않는다.
차이3 - 장단점 : NOSQL은 RDB에 비해 확장성과 성능이 좋지만 안정성이 떨어진다.

(1) SQL

SQL : 관계형 데이터베이스인 RDB를 의미한다.
SQL은 열과 행으로 구성된 table 기반이다.
SQL은 데이터의 일관성을 유지하기 쉽다.

(2) NOSQL

NOSQL : SQL이 아닌 DB를 말한다. 보통 key-value 형식으로 저장한다.
NOSQL은 수평 확장이 쉽다. (수평 확장 : 서버의 하드웨어 규모를 늘리는 것)
NOSQL에는 key-value인 Redis, document 기반인 mongoDB, graph 기반의 Neo4j, column-family 기반의 HBase 등이 있다.

(3) 항해99 4주차 회고

  1. sequelize를 이용해서 express - MySQL 연동
  2. sequelize의 join 기능 이용과 컬럼 하나 추가하기를 비교해 봄
  3. Architecture 패턴을 이용해서 express 프로젝트를 리팩토링함

공부 방식 피드백
1. 시간을 기준으로 삼는 방식과 목표 달성을 기준으로 삼는 방식, 둘 모두를 적당히 섞어야 할 것 같다.
2. 성취감을 느껴서 뽐뿌가 오면 다음 목표 성취를 준비하며 생각하는 것을 반복하자.
3. 뇌를 너무 대단하게 생각하지 말자. 뇌는 퍼포먼스가 엄청 뛰어난 기관이 아니다. 특정한 부분에서만 능력을 발휘하고, 결함이 많은 기관이다.
오랫동안 여러 노하우를 갈고 닦으며 가장 잘하는 것에만 잘 할 수 있게 해줘야 한다.

profile
개발을 즐기고 싶다.

0개의 댓글