Judaeng

210412_TIL(MVC 패턴, ORM, Short.ly) 본문

Daily/TIL(Today I Leared)

210412_TIL(MVC 패턴, ORM, Short.ly)

Judaeng 2021. 4. 12. 22:58

✅Toy 문제 20번 mergeSort(병합 정렬)

정수를 요소로 갖는 배열을 입력받아 오름차순으로 정렬하여 리턴하는 문제였다.

이 문제는 병합 정렬을 구현하는 문제였다.

병합 정렬은 데이터들을 잘게 쪼갠 다음에 하나로 합치는 과정에서 정렬하는 방법이라고 한다.

처음 배운 부분이라 정리는 따로 해놓았다.

사진으로 병합 정렬을 이해해보고 마무리해보자.

MergeSort

 

✅Short.ly MVC

긴 URL을 짧게 만들어주는 애플리케이션의 서버 쪽을 구현했다.

urls라는 테이블을 하나 만들어서 원본 URL과 단축 URL의 방문 횟수를 기록했다.

Sequelize ORM 공식 사이트를 통해 모델을 정의하는 Sequelize와 함께 마이그레이션을 도와주는 툴인 sequelize-cli도 설치하였다.

ORM을 이용해보니까 MySQL에서 사용할 때와 달리 쿼리문 없이 쉽게 데이터를 다룰 수 있었다.

그리고 스프린트를 진행하면서 아쉬웠던 점은 이해하기가 너무 어려웠다는 점이었다.

공식 문서는 너무 영어가 가득가득해서 어려운 것도 있었지만, 보기에도 조금 불편했다.

이번 스프린트 시간에 개인적으로 공부한 내용이 MVC 패턴, ORM, 라우팅, Sequelize 문법 등등이었던 것 같다.

유어 클래스에 조금 설명이 부족했지만, 부족한 부분은 다행히 스프린트 리뷰 시간에 잘 설명해주셔서 잘 마무리를 할 수 있었다.

더보기

Achievement Goal

  • MVC 디자인 패턴과 같이, 코드를 각각 다른 부분으로 나누어 작성해야 하는 이유를 이해할 수 있다.
  • Model, View, Controller가 각각 어떤 역할을 하는지 이해할 수 있다.
  • ORM의 장점을 이해할 수 있다.
  • Sequelize ORM과 관련 CLI 툴들을 공식 문서를 보고 사용할 수 있다.
    • Sequelize를 이용해 모델을 작성할 수 있다.
    • Sequelize를 이용해 마이그레이션을 할 수 있다.
  • 마이그레이션의 개념과 필요성을 이해할 수 있다.
  • Sequelize ORM으로 1:1. 1:N, N:N 관계를 표현할 수 있다.
  • (Advanced) MVC 디자인 패턴의 한계를 이해할 수 있다.

Before You Learn

  • 객체 지향 프로그래밍
  • Server & Node
    • 라우팅의 개념과 구현
    • Express 활용 및 공식 문서를 읽는 법
  • Database
    • 스키마 설계 방법
    • 테이블 간 관계에 대한 개념 (1:1, 1:N, N:N)

 

🍒Remember


✅MVC (Model-View-Controller) Pattern

개발할 때, 3가지 형태로 역할을 나누어 개발하는 방법론이다.

비즈니스 처리 로직과 사용자 인터페이스 요소들을 분리시켜 서로 영향 없이 개발 하기 수월하다는 장점이 있다.

이것 또한 블로그에 정리를 해두는 것이 좋을 것 같다.

 

✅Sequelize

오늘은 Node.js의 ORM 기술인 Sequelize를 사용해보았다.

시퀄 라이즈는 자바스크립트 객체와 데이터베이스의 릴레이션을 매핑해주는 도구이다.

시퀄라이즈는 자바스크립트 구문을 알아서 SQL로 변환해주어서 좀 더 의존성이 낮은 프로그래밍을 할 수 있도록 도와준다.

어느 정도 문법이 호환되므로 MySQL 뿐만 아니라, MariaDB, PostgreSQL, SQLite 등등 다른 데이터베이스로 전환이 비교적 자유롭고 많이 사용한다.

오늘 스프린트에서 ORM 설정, 모델 생성, 마이그레이션 등으로 간단하게 시퀄 라이즈를 실습 및 구현했다.

위에 3가지는 따로 공부하거나 정리하는 편이 좋을 것 같다.

 

🍒More Study


✅ORM 정리

✅MVC Pattern 정리

✅MongoDB

 

 

 

Comments