MVC 패턴

JUNHO YEOM·2023년 1월 29일
0

Spring

목록 보기
5/14

비효율적인 모습의 발생

Servlet혹은, JSP를 통해서 비지니스 로직과, view의 구현 부분이 함께 있는 코드를 작성해 보았는데 몇가지 문제점이 발생하였습니다.

1. 너무 많은 역할을 하고 있다.

화면 구현과 비지니스 로직이라는 서로 다른 일을 하는 두가지의 코드가 동시에 위치합니다.
화면 구현을 변경할 때도 비지니스 로직이 함께 섞여 있는 코드를 변경해야 하고, 반대의 경우도 같습니다.
결국 유지보수가 어려워 질 것입니다.

2. 라이프 사이클이 다릅니다.

UI를 변경하는 사이클과 비지니스 로직을 변경하는 사이클은 그렇지 않은 경우가 많습니다.
화면 구현을 위한 코드와 비지니스 로직이 섞여 있는 두 코드를 방치하면,
화면 구현 코드를 수정하는 시기, 비지니스 로직을 수정하는 시기가 서로 달라 복잡하게 섞여 있는 코드를 빈번하게 조회하게 됩니다.
마찬가지로 유지보수가 어려워 집니다.

3. 기능 특화

화면을 구성하는 코드는 화면을 구성하는 한가지의 역할만 담당하고,
비지니스 코드는 비지니스 코드를 구현하는 부분만 따로 나누어 작성하는 것이 좋습니다.


MVC 패턴

MVC 패턴은 Model, View, Controller라는 3가지의 역할로 분할하여
각각 하나의 역할만 수행하도록 합니다.
이렇게 나누면 한가지의 역할만 맡기 때문에 유지보수와, 가독성에서 더 나은 코드를 작성할 수 있을 것입니다.

Model

뷰에 출력할 데이터를 담아 둡니다. 뷰가 필요한 데이터를 모델이 모두 전달해 주기 때문에 뷰는 비지니스 로직이나 데이터의 접근을 몰라도 됩니다.

View

모델에 담겨있는 데이터를 이용해서 화면을 그리는 일만 담당합니다.

Controller

HTTP 요청을 받아서 파라미터를 검증하고, 비지니스 로직을 실행합니다.
그리고 뷰에 전달할 결과 데이터를 조회하여 모델에 담습니다.

0개의 댓글