MVC 패턴

Enini·2022년 6월 24일
1

깊게 공부하기

목록 보기
2/4

1. MVC패턴은 왜 생긴걸까?

과거에는 현재처럼 코드를 작성하기 편리하지 않았다. 코드가 조금이라도 틀렸을 때 처음부터 끝까지 새롭게 짜야된다거나 수많은 프로그래머들이 코드를 작성했기 때문에 코드의 복잡성으로 파악하기도 어려웠다.

그래서 프로그래머들은 여러 방법을 통해 유지보수가 편리한 코드 작성법을 차츰 만들게 되었고, 패턴들의 규칙성이 조금씩 보이게 되었다. 그래서 그걸 논문으로 발표하게 되었고, 그 중 MVC패턴이 생기게 된 것이다.

이 글을 보았을 때 MVC는 유지보수가 편해지는 코드 구성 방식이라고 볼 수 있다.

2. MVC 미리보기

Model : 데이터와 관련
View : 사용자한테 보여짐
Controller : Model과 View의 중개자 역할

3. MVC란?

mvc는 하나의 어플, 프로젝트를 구성할 때 그 구성 요소를 세가지의 역할로 구분한 패턴이다.

mvc패턴은 디자인패턴 중 하나인데,

디자인 패턴이란 간단하게 설명하자면 프로그램이나 어떤 특정한 것을 개발하는 중에 발생했던 문제점들을 정리해서 상황에 따라 간편하게 적용해서 쓸 수 있는 것을 정리하여 특정한 “규약"을 통해 쉽게 쓸 수 있는 형태로 만든 것을 말한다. 스트래티지 패턴, 옵저버 패턴 등등 많이 존재한다.(6.29 수정-다른 패턴이다.)
(좀 더 쉽고 편리하게 사용할 수 있게 만든 특정한 방법들을 디자인패턴이라고 부름)

4. MVC패턴을 지키면서 코딩하는 방법

MVC는 코드를 작성할 때 사용하는 것이기 때문에 어떤 패턴인지만 아는 것보다는 이 패턴을 어떻게 코드에 적용 시킬 수 있을지가 가장 중요하다.

1. Model은 Controller와 View에 의존하지 않는다. (Model 내부에 Controller와 View에 관련된 코드가 있으면 안 된다.)

2. View가 Model로부터 데이터를 받을 때는, 사용자마다 다르게 보여주어야 하는 데이터에 대해서만 받아야 한다. (View 내부에 Model 코드만 있을 수 있고, Controller에 코드가 있으면 안 된다.)

printProfile method의 파라미터로 student를 받는다. student는 Model에 관련된 코드이다. View 내부에 Model에 관련된 코드는 있어도 상관 없지만 Controller 코드는 있으면 안 된다.

3. View가 Model로부터 데이터를 받을 때는, 사용자마다 다르게 보여주어야 하는 데이터에 대해서만 받아야 한다.


모든 사용자한테 똑같이 보여져야 하는 부분들은(쿠폰 글씨, 배너광고, 어플 배경 색깔 등) Model로부터 받는 것이 아니다. View가 자체적으로 가지고 있어야 되는 정보들이다.

4. Controller는 Model과 View에 의존해도 된다. (Controller 내부에는 Model과 View의 코드가 있을 수 있다.)

Controller는 Model과 View의 중간다리 역할을 하면서 전체 로직을 구성하기 때문이다.

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

위의 Controller 코드를 보면 Model인 student 클래스로부터 학생의 데이터를 만들어서 View의 printProfile method한테 파라미터로 전달하는걸 알 수 있다.
View가 Model로부터 데이터를 받을 때는 Controller 코드 내에서만 받아야 하는 것이다.

5. 왜 MVC패턴을 사용해야 할까?

위에서 언급한 것처럼 왜 필요한지와 유사하다.

Model과 View, Controller가 서로 분리되어 각자에게 역할을 주고 그 역할들만 수행할 수 있도록 하기 때문에 유지보수성, 최소한의 비용으로 유연하게 대처 할 수 있고, 중복코딩을 제거할 수 있다.

profile
안녕하세요! 만나서 반갑습니다!

0개의 댓글