본문 바로가기

Study/React

MVC & Dependency Injection

MVC | Model, View, Controller 

https://www.guru99.com/mvc-vs-mvvm.html

 

MVC 패턴이란, 소프트웨어 디자인 패턴 중 하나로, UI를 개발할 때 흔하게 사용된다. MVC 패턴은 어플리케이션을 세 가지 부분 model, view, controller 으로 나눈다. 이렇게 역할에 따라 Layer를 나눔으로써 더 쉽게 코드를 테스트할 수 있고, 유지보수 할 수 있다. 

 

만약 역할을 나누지 않고, 리액트 컴포넌트 안에 네트워크 통신을 하는 로직을 작성했다면, ??? 컴포넌트의 유닛테스트에 네트워크 통신에 대한 테스트도 포함된다. 즉, 유닛 테스트를 할 때 마다 네트워크 통신이 발생하게 되는데, 이것은 매우 나쁜 상황이다. 이것을 막기 위해 layer를 나누는 MVC 모델을 이용하는 것이기도 하다. 

 

아래에 살펴볼 Dependency Injection을 이용해서 네트워크 통신을 하는 클래스를 컴포넌트에 주입하면, 즉 Layer를 나누어 어플리케이션을 개발하면, 유닛테스트를 할 때에는 다른 클래스(간단하고 빠른 클래스 = dummy, mock class라고 부른다)를 주입함으로써 빠르게 유닛테스트를 진행할 수 있다. 

 

  • Model
    • The central component of the pattern.
    • It is the application's dynamic data structure, independent of the user interface. It directly manages the data, logic and rules of the application.
  • View => React
    • Any representation of information(정보의 표현, 즉 사용자에게 정보를 제공하는 것) such as a chart, diagram or table. Multiple views of the same information are possible, such as a bar chart for management and a tabular view for accountants.
    • view layer에서 하는 일은 사용자에게 데이터를 보여주고, 사용자의 이벤트(클릭, 키보드 입력 등)를 등록하는 것?이다. 
  • Controller
    • Accepts input and converts it to commands for the model or view. 

'Study > React' 카테고리의 다른 글

Component & Props  (0) 2022.06.16
What is React?  (0) 2022.06.16
PostCSS  (0) 2022.04.23
Deployment  (0) 2022.04.22
Function Component | memo, React Hooks  (0) 2022.04.22