Spring MVC 패턴: 개요

코딩하는 포로리·2022년 2월 1일
0

Spring

목록 보기
2/10
post-thumbnail

📌 1. MVC


📎 MVC 패턴이란?

MVC패턴은 소프트웨어 공학에서 사용하는 디자인 패턴 중 하나로 Model, View, Controller의 앞글자를 따서 만든 디자인 패턴이다. 여기서 ViewControllerModel에 의존하지만 Model은 화면표시나 컨트롤러와 달리 독립적이다.

📎 Model이란?

애플리케이션의 정보, 데이터의 가공을 책임지며 DB와 상호작용하며 비즈니스 로직을 처리하는 모듈, 컴포넌트를 말한다. Model은 아래와 같은 규칙을 가지고 있다.

👉 사용자가 이용하려는 모든 데이터를 가지고 있어야 한다.
👉 View 또는 Controller에 대해 어떤 정보도 알 수 없어야 한다.
👉 변경이 일어나면 처리 방법을 구현해야 한다.

📎 View란?

사용자 인터페이스 요소를 뜻하는데, Client에게 보여지는 결과화면을 반환하는 모듈을 말한다. View는 아래와 같은 규칙을 가지고 있다.

👉 Model이 가지고 있는 데이터를 저장하면 안된다. 단순히 명령을 받으면 그 명령을 화면에 표시만 해야한다.
👉 Model 또는 Controller에 대한 정보를 알면 안된다.
👉 변경이 일어나면 처리 방법을 구현해야 한다.

📎 Controller란?

Client 요청이 들어왔을 때 그 입력을 처리하고, 어떤 로직을 실행시킬 것인지 Model과 View를 연결해주며 제어하는 모듈을 말한다. Controller는 아래와 같은 규칙을 가지고 있다.

👉 Model 또는 View에 대한 정보를 알아야 한다.
👉 Model 또는 View의 변경을 인지하여 대처를 해야한다.
👉 변경이 일어나면 처리 방법을 구현해야 한다.


📌 2. MVC1


📎 MVC1 특징

👉 MVC1은 View와 Controller의 역할이 합쳐져 있다. 그리고 JSP가 View와 Controller의 역할을 모두 감당한다.
👉 위와 같이 JSP가 View와 Controller 역할을 모두 수행하면, JSP에 Java코드와 HTML, CSS 등의 코드가 섞여 있어서 소스가 복잡해지고 읽기가 어려워진다. 하지만 상대적으로 설계가 간단하여 개발 속도가 빠르고 작은 프로젝트에 알맞다.


📌 3. MVC2


📎 MVC2 특징

👉 MVC2는 MVC1에서 유지보수가 힘들다는 단점을 보완하기 위해 나온 모델이다. 기존에 View와 Controller의 역할을 수행하던 JSP는 View 역할만 수행하고, 대신 Controller역할을 Servlet이 수행한다.
👉 MVC1에서는 Jsp가 사용자의 호출을 받아줬는데 MVC2에서는 Controller 역할을 수행하는 Servlet이 요청을 받아준다. Servlet이 비즈니스 로직을 수행하며 Model을 호출하여 데이터를 요청하며, 최종적으로 View역할인 Jsp를 제어하여 화면을 출력한다.
👉 MVC2로 개발하면 Html과 Java코드가 분리되어 확장에 용이하고 유지보수가 수월해진다.
👉 JSP는 Java코드를 안쓰는 대신 JSTL을 사용하여 결과 화면을 보여준다.
👉 MVC2는 초기 설계단계에 비용이 많이 들어 개발 시간이 오래 걸린다는 단점이 있다.

0개의 댓글