본문 바로가기

Backend/OOP

[10분 테코톡] MVC 패턴 with 제리, 해리&션

 

MVC를 왜 사용하는가?

- 유지보수의 이점 (모듈화)

- 재사용성

- 커뮤니케이션에 용이

=> 객체 지향 관점에서 좋은 설계가 된다. (응집도와 결합도, 단일책임원칙)

 

MVC란?

- Model : 데이터와 관련된 일을 하는 곳. 값과 값에 대한 기능(비즈니스 로직)을 가진 객체

- View: 사용자에게 보여지는 것을 담당. 사용자한테 보여지는 부분(데이터를 보여주는 방식)

- Controller: 모델과 뷰의 중개자. 명령을 모델과 뷰에 전달하고, 사용자 입력에 따라 모델과 뷰를 업데이트하는 로직을 포함

 

MVC를 지키기 위한 원칙

- Model은 View, Contorller에 의존하지 않아야한다.

- View는 Model에만 의존해야하고 Controller에 의존하지 않아야한다.

(View는 Model의 데이터에 의존적이지만, Controller에 의존할 일이 없다.)

- View는 사용자마다 보여주는 것이 다른 부분에만 Model의 데이터를 받는다.

(모두에게 같은 것을 보여준다면, Model의 데이터가 필요하지 않다.)

- Controller는 Model, View에 의존할 수 있다.

- View는 Model로부터 데이터를 받을때는 반드시 Controller에서 받아야한다.

 

프로젝트가 거대해져 MVC를 지키기 힘들어지면?

- Service를 사용: 비즈니스로직을 수행하는 객체, 하나의 트랜잭션을 가지며 컨트롤러가 이를 통해 비즈니스 로직을 수행

- Repository를 사용 (DAO와 유사하지만 다르다.)

 

참조)

https://developer.mozilla.org/ko/docs/Glossary/MVC

 

MVC - 용어 사전 | MDN

MVC (모델-뷰-컨트롤러) 는 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴입니다. 소프트웨어의 비즈니스 로직과 화면을 구분하는데 중점을 두고

developer.mozilla.org