[코드스테이츠] SEB Full 31기 12주차

안광의·2021년 9월 4일
0
post-thumbnail

시작하며

이번주에는 Section 3의 데이터베이스 파트를 마무리하였다. MySQL을 이용한 스프린트를 진행하고 Sequelize를 통해 쿼리문을 사용하지 않고 객체 형태로 관계형 데이터베이스를 관리하는 방법을 익히며 SQL에 대한 이해를 높일 수 있었고, 추가로 NoSQL의 한 종류인 도큐먼트 데이터베이스 MongoDB를 학습하였다.

학습목표

관계형 데이터베이스

Cmarket Database

  • ✅ SQL을 Node.js 앱에서 쿼리할 수 있다.
  • ✅ 클라이언트의 HTTP 요청에 따라 CRUD API를 구현할 수 있다. (CRUD: Create, Read, Update, Delete)


ORM

  • ✅ MVC 디자인 패턴과 같이, 코드를 각각 다른 부분으로 나누어 작성해야 하는 이유를 이해할 수 있다.
  • ✅ Model, View, Controller가 각각 어떤 역할을 하는지 이해할 수 있다.
  • ✅ ORM의 장점을 이해할 수 있다.
  • ✅ Sequelize ORM과 관련 CLI 툴들을 공식 문서를 보고 사용할 수 있다.
    • Sequelize를 이용해 모델을 작성할 수 있다.
    • Sequelize를 이용해 마이그레이션을 할 수 있다.
  • ✅ 마이그레이션의 개념과 필요성을 이해할 수 있다.
  • ✅ Sequelize ORM으로 1:1. 1:N, N:N 관계를 표현할 수 있다.
  • (Advanced) MVC 디자인 패턴의 한계를 이해할 수 있다.
    정규 과정에 없는 내용이여서 MVC의 한계는 이해하지 못했었는데, 구글링을 해보니 뷰와 모델이 서로 의존성을 띄어서, 복잡한 화면과 데이터가 필요한 경우 Controller에 다수의 Model과 View가 복잡하게 연결되어 문제들이 발생할 수 있다고 한다. 주말을 이용해서 더 자세하게 공부하고 문제점을 보완한 다양한 패턴들에 대해서도 알아볼 예정이다.


NoSQL

MongoDB

  • ✅ NoSQL의 장점 및 특징에 대해서 이해 할 수 있다.
  • ✅ MongoDB의 도큐먼트(Document)와 컬렉션(Collection)에 대해 이해할 수 있다.
    • JSON과 BSON의 차이점을 이해하고, 도큐먼트를 가져오거나 내보낼 수 있다.
  • ✅ MongoDB의 Atlas에 대해 이해할 수 있다
    • 클러스터(Cluster)와 레플리카 세트(Replica set)에 대해 이해할 수 있다.
    • Atlas를 GUI(Graphical User Interface)와 shell 쿼리문으로 사용할 수 있다.
  • ✅ MongoDB에서 CRUD를 할 수 있다.
    • Insert(C), Find(R), Update(U), Delete(D)에 대한 쿼리문을 작성 할 수 있다.
    • 연산자와 프로젝션(Projection)을 사용 할 수 있다.
    • 배열과 서브 도큐먼트를 쿼리할 수 있다.
  • ✅ Aggregation Framework를 사용하여 aggregate 명령어로 쿼리할 수 있다.
    • $match, $project, $group 연산자를 사용할 수 있다.


마치며

한 주에 많은 내용을 압축해서 배운 느낌이라 복습하면서 머리속에 풀어서 넣는 과정이 필요하다고 느꼈다. SQL의 쿼리문, Sequelize를 통해 대신 사용할 수 있는 메소드들, 그리고 MongoDB까지 내용이 어렵지는 않았지만, 프로젝트를 진행할 때 적재적소에 사용할 수 있을 만큼 숙달되지 않기 때문에 연습이 많이 필요하다고 생각한다. 진행했던 스프린트들을 보고 작성했던 코드들을 다시 짚어보면서 복습할 예정이다. 그리고 다음주는 인증/보완 파트에 대해서 배우고 컴퓨터 공학에 대해서 학습하기 때문에 관련 내용들을 미리 찾아보면서 준비할 것이다.

profile
개발자로 성장하기

0개의 댓글