Spring MVC (Back End) ... Part 1
2020. 4. 22. 18:41ㆍToday I learned/Online Courses
강의: [edwith 부스트코스] 웹 프로그래밍 챕터 3, 웹 앱 개발: 예약서비스 1/4
학습일: 2020년 4월 22일
9. Spring MVC - BE
Spring MVC란?
- MVC (Model-View-Controller)
- Xerox 연구소의 트뤼그베 린즈커그가 소개한, 데스크탑 어플리케이션용으로 고안된 개념
- Model
- View가 렌더링하는데 필요한 데이터
- 예시) 사용자가 요청한 상품 목록, 주문 내역
- View
- 실제로 보이는 부분으로, Model을 사용해 렌더링함
- 결과를 JSP, JSF, PDF, XML 등으로 표현
- Controller
- 사용자의 액션에 응답하는 컴포넌트로, Model을 업데이트하고 다른 액션을 수행함
- MVC Model 1 아키텍쳐
-
- 브라우저의 요청을 JSP가 받음
- 요청만큼 JSP page가 존재해야 함
- JSP는 Java Class인 Bean을 통해 데이터베이스를 사용
- 예시) JDBC
- JSP는 데이터베이스를 사용한 결과를 브라우저에게 응답
- 브라우저의 요청을 JSP가 받음
- 문제점
- JSP 페이지에 Java 코드와 HTML 코드가 섞이게 돼 유지보수가 어려워짐
-
- MVC Model 2 아키텍쳐
- MVC Model 1 아키텍쳐의 문제점을 해결하기 위해 고안됨
-
- 브라우저의 요청을 Servlet이 받음
- Servlet이 Java Bean을 통해 데이터베이스를 사용
- Servlet이 데이터베이스를 사용한 결과를 JSP에게 전달
- JSP는 결과 데이터를 받아 브라우저에게 응답
- 특징
- Controller와 View를 분리할 수 있음
- MVC Model 2 아키텍쳐 - 발전 형태
-
- 클라이언트가 보낸 모든 요청을 프론트 컨트롤러 Servlet이 받음
- 프론트 컨트롤러 Servlet은 하나만 존재함
- 요청만 받을 뿐, 실제 일은 처리하지 않으며 컨트롤러 Class에게 위임함
- 프론트 컨트롤러 Servlet이 요청을 직접 처리하기에는 불편한 구조이기 때문
- 컨트롤러는 Bean 등을 통해 결과를 만들어내고 모델에 담아 프론트 컨트롤러에게 다시 보냄
- 컨트롤러 Class는 핸들러 Class라고도 불림
- 관련된 URL을 하나의 Class에서 모두 처리할 수 있게 됨
- 프론트 컨트롤러는 받은 모델을 적합한 View에게 전달
- View는 전달받은 모델로 결과를 출력
- 클라이언트가 보낸 모든 요청을 프론트 컨트롤러 Servlet이 받음
- 프론트 컨트롤러를 사용하는 이유
- 하나의 웹 어플리케이션에는 많은 View와 Controller가 존재하고,
이들이 독립적으로 연결, 실행되면 서버가 웹 어플리케이션의 실행을 일괄적으로 처리하기가 힘듦 - 프론트 컨트롤러를 사용하면 View의 모든 요청을 담당, 웹 어플리케이션의 실행을 일괄 처리할 수 있음
- 참고자료: 프런트 컨트롤러 디자인 패턴 - JSP/서블릿 훑어 보기
- 하나의 웹 어플리케이션에는 많은 View와 Controller가 존재하고,
-
- Spring MVC
- Spring Module 중 Web Module이 Model 2 아키텍쳐의 발전형태 중 하나이며, Spring MVC라고 불림
'Today I learned > Online Courses' 카테고리의 다른 글
Spring MVC (Back End) ... Part 3 (0) | 2020.04.30 |
---|---|
Spring MVC (Back End) ... Part 2 (0) | 2020.04.22 |
Spring JDBC (Back End) ... Part 4 (0) | 2020.04.19 |
Spring JDBC (Back End) ... Part 3 (0) | 2020.04.17 |
Spring JDBC (Back End) ... Part 2 (0) | 2020.04.17 |