MVC 패턴에서 각 컴포넌트가 가져야할 책임

Hyunta·2022년 3월 5일
1

로또 미션

목록 보기
5/6

학습 동기

프리코스 때부터 습관적으로 MVC 패턴을 이용해 미션을 진행했었다. 비지니스 로직을 갖고있는 도메인과 콘솔창에서 입력값을 받아오고 출력하는 뷰, 그리고 두 컴포넌트를 연결하는 컨트롤러로 구분지어서 개발했었다. 습관적으로 사용하다보니 각 컴포넌트의 책임에 대해서 생각해본적이 없었다, 그러다 피드백을 받고 이번에 고민해보게 되었다.


MVC 패턴이란?

MVC 패턴의 핵심은 비지니스 로직과 사용자 인터페이스를 독립적으로 운영하는 것이다. Model에서 데이터를 이용해 비지니스 로직을 책임지고, View에서는 입출력과 관련된 부분을 책임진다.

Model

모델은 데이터와 비지니스 로직을 담당한다. 컨트롤러의 요청에 의해 원하는 값을 제공하고, 필요한 로직을 수행한다. 모델은 뷰나 컨트롤러의 정보를 알고있으면 안된다.

View

뷰는 입출력되는 인터페이스를 담당한다. 어떻게 입력을 받아올 것인지, 그 값에 대한 검증과 출력을 어떻게 할지를 결정한다.

Controller

컨트롤러는 출력해야할 정보들을 모델에게서 불러와 view와 엮어주는 역할을 한다. 모델에서 받은 데이터를 view에게 전달하여 출력하도록 만들거나, view에게서 입력받은 데이터를 모델에게 전달하여 필요한 값을 받아온다.


정리

MVC 패턴의 핵심은 각 컴포넌트가 서로에 대해서 몰라야한다는 것이다. 모델은 어떻게 출력할지 관심이 없어야 하고, 컨트롤러는 비지니스 로직과 입출력되는 값에 책임을 지면 안된다, 마찬가지로 뷰도 비지니스 로직을 알고있으면 안된다.

Reference

https://medium.com/@jang.wangsu/%EB%94%94%EC%9E%90%EC%9D%B8%ED%8C%A8%ED%84%B4-mvc-%ED%8C%A8%ED%84%B4%EC%9D%B4%EB%9E%80-1d74fac6e256

https://m.blog.naver.com/jhc9639/220967034588

profile
세상을 아름답게!

0개의 댓글