MVC 패턴을 왜 사용할까?

서블릿, JSP 등 다양한 방식으로 동적인 웹페이지를 구성할 수 있습니다.

그런데 왜 굳이 MVC 패턴을 사용할까요?

그건 유지보수성기능 특화 때문이라고 생각됩니다.

 

라이프 사이클의 변경

예를 들어, UI를 일부 수정하는 일과 비지니스 로직을 수정하는 일은 다른 일입니다.

그런데 이렇게 라이프 사이클이 다른 부분을 하나의 코드로 관리하는 것은 유지보수에 좋지 않습니다.

 

기능 특화

JSP 와 같은 뷰 템플릿은 화면 렌더링에 최적화되어 있기 때문에 이 부분의 업무만 담당하는것이 효과적입니다.

 

 

 

MVC 란?

Model

뷰에 출력할 데이터를 담아둡니다.

이 역할 덕분에 뷰는 비지니스 로직이나 데이터 접근을 몰라도 되고,  화면에 렌더링하는 일에만 집중할 수 있게 됩니다.

 

View

모델에 담겨져 있는 데이터를 화면에 그려줍니다. HTML 을 생성하는 부분입니다.

 

Controller

HTTP 요청을 받아서 피라미터를 검증하고, 비지니스 로직을 실행해줍니다.

그리고 뷰에 전달할 데이터를 조회해서 모델에 담아줍니다.

 

 

* 참고

컨트롤러에서 비지니스 로직을 두면 너무 많은 역할을 하게 됩니다.

그래서 서비스 계층을 따로 만들어서 비지니스 로직을 처리합니다. 컨트롤러는 이 서비스를 호출하는 담당을 하게 됩니다.

 

 

 

MVC 패턴의 문제점

  • 포워드 중복

RequestDispatcher 을 통해 리퀘스트의 뷰를 가져오고, 포워드를 통해 jsp 에 전달하게 되는 과정을 말합니다.

즉, 뷰로 이동하는 코드가 중복되어 호출됩니다.

 

이 외에도 뷰 패쓰도 중복되고, 사용하지 않는 코드들이 들어가게 됩니다.

 

그래서 기능이 복잡해질 수록 컨트롤러에서 공통으로 처리해야할 부분이 증가되는데 그 공통 메서드를 계속 호출하게 됩니다.

 

 

해결 방법

이러한 문제를 해결하는 방법이 프론트 컨트롤러 패턴을 도입하는 것입니다.

서블릿이 호출되기 전에 공통 기능들을 다 처리하는 방법입니다.

 

 

'스터디' 카테고리의 다른 글

logging 알아보기  (0) 2022.11.30
Spring MVC  (0) 2022.11.30
백엔드에서의 HTML, HTTP 간단한 요점  (0) 2022.11.24
멀티 쓰레드  (0) 2022.11.24
서블릿  (1) 2022.11.22

+ Recent posts