우와한 개발자

[Spring] MVC 패턴이란? Controller / View / Model

by 우와한개발자

[ MVC 패턴 ]

1. MVC 패턴이란

  • Model, View, Controller의 약어로, 어플리케이션을 구성하는 요소를 역할에 따라 세가지로 분리하는 설계방식
  • 관심사를 분리해 유지보수와 확장 용이

1) Controller

  • 요청을 받아 검증하고, 비즈니스 로직을 수행(Service호출만 하고 Dao를 직접 호출하지는 않음.)
  • 요청 파라미터를 분석하고 어떤 Model(Service)을 호출할지 결정
  • Model로부터 결과를 받아 어느 View(JSP)로 전달할지 결정 (forward 또는 redirect)

 

2) View

  • Controller로부터 전달받은 데이터를 화면(HTML)으로 렌더링
  • 사용자가 화면에 무엇을 어떻게 볼것인지를 결정
  • 자체적으로 모델의 정보를 보관하지 않음
  • JSP의 EL(${...})을 사용해 데이터를 출력
  • Java 로직을 최소화하는 것이 좋은 설계

 

3) Model

  • 실제 데이터 처리와 비즈니스 규칙을 담당
  • 동작을 수행하는 코드
  • Service : 비즈니스 로직 처리
  • DAO (Data Access Object) : DB와 직접 통신
  • DTO (Data Transfer Object) : 계층 간 데이터 전달 객체
구분 좁은 의미 넓은 의미
설명 Controller ↔ View 사이에서 데이터를 전달하는 객체 Service, DAO, DTO를 포함한 데이터 처리 계층 전체
범위 데이터 전달 객체 비즈니스 레이어 전체
포함 DTO, VO Service, DAO, DTO, VO
사용 예 model.addAttribute() MVC 패턴 설명 시

 

2. Model1 vs Model2 아키텍처

구분 Model1 Model2
구조 View + Controller 혼합 (JSP 안에 Java 코드) Model / View / Controller 완전 분리
특징 구조가 단순하고 개발이 빠름 유지보수와 확장에 유리
적합한 규모 소규모 웹 개발 중·대규모 웹 개발 (Spring MVC 등)

 

블로그의 정보

우와한개발자 님의 블로그

우와한개발자

활동하기