본문 바로가기
Web developer/Spring

[Spring] MVC Model 2

by doongjun 2021. 4. 18.

MVC Model : Model + View + Controller

웹 어플리케이션 개발에서 각 기능에 따라 분리하여 개발하는 웹 어플리케이션 모델을 MVC 모델이라고 한다.

 

MVC 모델의 종류에는 모델1과 2가 있다.

 

MVC Model1

비즈니스 로직(데이터를 생성·표시·저장·변경하는 부분)과 화면 기능을 모두 동일한 JSP에서 수행하도록 개발하는 것을 모델1 방식이라고 한다.

이는 구조가 단순하여 구현이 쉽다는 장점이 있다. 하지만 웹 어플리케이션의 복잡도가 증가할 수록 아래와 같은 문제가 발생한다.

  • 유지보수 문제 : View기능과 Controller 기능이 섞여 오류 발생
  • 재사용성 문제 : 기능이 한 덩어리로 묶여있어 다른 어플리케이션에 사용 어려움
  • 분업화 문제 : View를 구현하는 프론트엔드와 Controller를 구현하는 Back엔드의 분업 효율성 떨어짐

이러한 이유로 모델1은 실제 개발 환경에서는 널리 쓰이지 않는다.

 

MVC Model2

Model1의 단점을 보완하고자 웹 어플리케이션의 각 기능들을 분리하여 구현한다. 

View 기능은 HTML 기반 JSP(화면기능)에서, Controller 기능은 Java 기반 Servlet(요청 처리)에서 구현하고 Model기능은 DAO 클래스를 통해 DB연동을 구현한다.

구조의 흐름은 아래와 같다.

 

게시판을 예시로 들었을 때 구조의 흐름은 다음과 같다.

  1.  브라우저에서 특정 URL을 호출한다.
  2. BoardController 서블릿이 요청을 받아 BoardDAO의 listPage()를 호출한다.
  3. BoardDAO의 listPage()에서 SQL문으로 회원 정보를 조회한다.
  4. 조회된 정보를 VO(Value Object) 혹은 HashMap 설정을 통해 반환한다.
  5. BoardController가 받은 정보를 listPage.jsp로 전송한다.
  6. listPage.jsp가 결과를 클라이언트의 화면에 출력한다.

이후 다중 DB 접근 시 DAO의 재사용성을 위하여  Model 기능에 Service를 추가하기도 한다.

 

Service : DAO가 받아온 데이터를 전달받아 가공

 


 

더 자세한 설명

cluster-taek.tistory.com/entry/MVC-Model1-%EA%B3%BC-MVC-Model2?category=803491

 

MVC Model1 과 MVC Model2

MVC Model : Model + View + Controller 웹 애플리케이션 개발에서 각 기능에 따라 분리하여 개발하는 웹 애플리케이션 모델 MVC Model 1 View와 Controller를 모두 동일한 JSP에서 수행하도록 개발하는 방식이다...

cluster-taek.tistory.com

mieumje.tistory.com/52?category=1156768

 

[Spring] Spring MVC 구조

Spring MVC 구조 ✔ Spring MVC -Spring Framework에서 제공하는 Web Module -MVC(Model-View-Controller) Model : '데이터' 디자인 담당 View : 렌더링 되어 보이는 페이지 Controller : 요청을 주고받는 로직..

mieumje.tistory.com

 

'Web developer > Spring' 카테고리의 다른 글

[Spring] Swagger를 사용하여 Web API 문서화 해보기  (0) 2021.08.02
[Spring] IoC & DI  (0) 2021.07.27
[Spring] Annotation @정리2  (0) 2021.04.18
[Spring] Annotation @정리1  (0) 2021.04.18
[Spring] DAO와 Mapper의 차이  (0) 2021.04.18

댓글