본문 바로가기

청년취업아카데미/DayLog

[ JSP ] Day 14 - ① MVC

# 1. MVC Pattern이란?

MVC(Model-Veiw-Controller) 패턴은 아키텍처 스타일 중 하나입니다. 아키텍처 스타일은 디자인 패턴보다 훨씬 큰 개념입니다.

비지니스 영역과 로직 영역을 명확히 구분하기 위해서 만들어 졌습니다. 하지만 MVC Pattern Model 1에서는 JSP 페이지에서 로직을 모두 처리하여, 로직 분리가 잘되있지 않아서 가독성이 떨어지고 유지보수가 어려워 완전히 분리된 모델인 MVC Model 2가 탄생하게 되었습니다. MVC Model 2의 큰 특징은 Controller의 등장입니다.

MVC 패턴은 크게 모델, 뷰, 컨트롤러 세부분으로 구성되며, 각각의 요소는 다음과 같은 역할을 합니다.

  • 모델 : 비지니스 영역의 로직을 처리
  • 뷰 : 비지니스 영역에 대한 프레젠테이션 뷰(즉, 사용자가 보게 될 결과 화면)을 담당.
  • 컨트롤러 : 사용자의 입력 처리화 흐름 제어를 담당함.

 

  • MVC 패턴은 어떻게 연결되어 있나?

사용자는 원하는 기능을 처리하기 위한 모든 요청을 컨트롤러에 보낸다. 모델은 비지니스와 관련된 기능을 제공하는데, 컨트롤러는 이 모델을 이용해서 사용자의 요청을 처리한다. 모델을 사용하여 알맞는 비즈니스 로직을 수행한 후 컨트롤러는 사용자에게 보여줄 뷰를 선택한다. 선택된 뷰는 사용자에게 알맞는 결과 화면을 보여준다. 뷰가 사용자에게 결과 화면을 보여줄 때에는 데이터가 필요한데, 이 데이터는 컨트롤러를 통해서 전달 받는다.

 

  • MVC 패턴의 핵심

- 비즈니스 로직을 처리하는 모델과 결과 화면을 보여주는 뷰를 분리한다.

- 애플리케이션의 흐름 제어나 사용자의 처리 요청은 컨트롤러에 집중된다.

 

# 2. MVC1과 MVC2의 비교

1. MVC1

웹 브라우저의 요청을 JSP 페이지가 받아서 처리한다. 쉽게 페이지를 작성할 수 있는 장점이 있지만, JSP 페이지 내에 비지니스 로직을 처리하기 위한 코드와 웹 브라우저에 결과를 보여주는 코드가 함께 존재하여 재사용이 힘들고 읽기도 힘들어 가독성이 떨어지는 단점이 있다.

 

2. MVC2

웹 브라우저의 요청을 하나의 서블릿이 수행하고, 그결과를 JSP 페이지로 포워딩(전송)시킨다. 따라서 클라이언트의 요청, 응답, 비지니스 로직 처리부분을 모듈화 시킨다. 처리작업의 분리로 인해 유지보수 및 확장이 용이한 장점이 있지만, 구조를 설계하는 시간이 많이 소요되어 개발 기간이 증가하는 단점이 있다.