MVC(Model-View-Controller) Pattern
- JSP를 이용하여 구성할 수 있는 Web Application Architecture은 Model1과 Model2로 나눌 수 있다
Model 1
- view와 logic을 JSP페이지 하나에서 처리하는 구조
- client로부터 요청이 들어올 시, Java beans나 별도의 service를 이용하여 처리하고 결과를 client에 출력
MVC | 정의 | 사용 구분 |
Model | 비즈니스 로직과 데이터 담당 객체 | DAO, DTO JSP직접 처리, JavaBean사용 |
View | 클라이언트에서 보여질 화면 렌더링 | JSP |
Controller | 클라이언트 요청을 받아서 필요한 데이터를 준비한 뒤 적절한 뷰로 데이터 전달 | JSP |
Model 2
- MVC 패턴을 웹개발에 도입한 구조
- client 요청에 대한 처리는 Servlet이 logic 처리는 java class(Service, Dao..), client에게 출력하는 응답페이지는 JSP가 담당함
MVC | 정의 | 사용 구분 |
Model | 비즈니스 로직과 데이터베이스 상호작용 서블릿이 처리한 데이터는 모델을 통해 JSP로 전달 |
DAO, DTO |
View | 클라이언트에서 보여질 화면 담당 | JSP |
Controller | 클라이언트 요청을 받아서 필요한 데이터를 준비한 뒤 적절한 뷰로 데이터 전달 요청을 받고 모델과 뷰 간의 흐름 제어 |
Servlet |
MVC Model1 vs MVC Model2
- 클라이언트의 요청처리와 응답처리가 분리되어 있는가
- MVC Model 1 : 요청처리와 응답처리가 모두 JSP에서 이루어짐
- MVC Model 2 : 요청처리는 Servlet에서 담당하고, 응답처리는 JSP에서 이루어짐
- 접근 방식
- MVC Model 1 : 클라이언트가 직접적으로 View에 접근 가능
- MVC Model 2 : 클라이언트는 View에 직접적으로 접근할 수 없으며 Controller를 통해 접근해야 함
MVC패턴에 대해 말할때는 보통 MVC Model2를 의미한다
'SpringBoot' 카테고리의 다른 글
[의존성] 추가 라이브러리 선택 (0) | 2024.11.19 |
---|---|
[Spring] DI (Dependency Injection)가 필요한 이유 (2) | 2024.11.15 |
[IntelliJ] Spring Boot 프로젝트 생성하기 (0) | 2024.11.14 |
[IntelliJ] Lombok 설정 (0) | 2024.11.12 |
[JSP] 게시판 만들기 오류 (script type) (0) | 2024.11.11 |