[TIL : 37] MVC

jabae·2022년 4월 18일
0

TIL

목록 보기
37/44

🤔 MVC란?


Model-View-Controller 의 약자로, 소프트웨어가 돌아가는 방식에 대한 패턴을 의미한다. 각 기능별로 분리되어 있기 때문에 고유한 역할을 수행한다. 이러한 역할 분리의 장점으로는 크게 두 가지가 있다.

  • 각 기능별로 나누어 분업하여 작업하기 쉽고, 또한 코드의 가독성을 높일 수 있다.
  • 변경 및 수정이 필요한 경우, 작업이 다른 영역에 영향을 주지 않아 효율적인 관리가 가능하다.

📎 Model

데이터에 대한 정보를 갖고 있다. 데이터를 직접 갖고 있다던지, 데이터베이스와 직접적으로 통신한다.

  • 사용자가 편집하길 원하는 모든 데이터를 가지고 있어야 한다.
  • View나 Controller에 대해서 어떤 정보도 알지 말아야 한다.
  • 변경이 일어나면, 변경 통지에 대한 처리 방법을 구현해 한다.

📎 View

유저가 보는 화면(UI)을 나타낸다. Controller를 통해 유저의 액션이나 이벤트를 Model에 전달하고, Controller로부터 받은 데이터를 표시한다.

  • Model이 가진 정보를 따로 저장해선 안된다.
  • Model이나 Controller와 같이 다른 구성요소들을 알지 말아야 한다.
  • 변경이 일어나면 변경 통지에 대한 처리방법을 구현해야 한다.

📎 Controller

Model과 View를 연결시켜주는 중간 다리 역할을 한다. View에서 일어나는 액션, 인풋값을 받아 Model에 전달하기 전에 가공하고, Model에 데이터를 받아 가공하여 다시 View에게 전달한다.

  • Model이나 View에 대해서 알고 있어야 한다.
  • Model이나 View의 변경을 모니터링 해야 한다.

🤔 ORM이란?


Object - Relational Mapping의 약자로, 객체와 관계형 데이터베이스의 데이터를 자동으로 연결해주는 것을 말한다. 프로그래밍 언어의 객체와 관계형 데이터베이스 사이의 중계자(혹은 통역자) 역할을 한다. 관계형 데이터베이스에 있는 엔티티나 레코드에 접근할 때, 마치 자바스크립트 객체 혹은 클래스를 다루듯이 취급할 수 있다.
즉, ORM을 이용하면 직접 쿼리문을 날리지 않고도 객체 형태로 데이터베이스에 접근해 객체를 삽입하거나 추가하는 것이 가능하다.

🛠 Sequelize

promise 기반의 Node.js ORM이다.
자세한 사용 방법과 설명은 공식 문서를 참고하도록 하자.
Sequelize_설치
Sequelize_사용

profile
it's me!:)

0개의 댓글