Model2 Architecture |
Model1 Architecture |
- Model2 Architecture
Model
business + data access logic을 담당
View
동적인 화면을 제공한다
Controller
웹 어플리케이션의 제어를 담당
(Request를 분석해 Model과 연동하며 View에 응답한다)
* 위의 2개의 이미지 참고)
Model 1 과의 차이는 presentation layer에서 View 와 Controller로 분리된다.
- 이동방식
1. forward
웹컨테이너 상에서 이동
Request와 Response가 유지됨 client browser에서는 url 변화가 없다
2. redirect
응답시에 클라이언트 브라우저에게 특정 url로 이동하도록 명령하는 방식
Request와 Response가 유지되지 않는다 browser 상에서 이동되므로 url이 변경된다
Front Controller Design Pattern
클라이언트의 다양한 요청을 하나의 진입점으로 모아 처리하기 위한 패턴
-> 컨트롤러 영역에서의 공통된 정책을 적용하기 위하여 사용한다
장점
생산성 : 중복된 코드를 줄이고 유지보수성 : 이후 변경시 효과적으로 수정을 향상
ex) 실세계 -> 콜센터
- 기존 Model2 ( MVC )
client → FindAddressServlet
client → InsertServlet
아래 이미지 윗 부분 참고 🔻
- Front Controller Pattern 적용 후 (🔺위 이미지 아래 부분 참고)
client → handleRequest(request,response) : 컨트롤러 로직
client →
모든 클라이언트의 요청은 하나의 진입점(DispatcherServlet)으로 집중된다.
컨트롤러 영역에서의 공통되는 정책을 일관성있게 처리할 수 있으나
DispatcherServlet의 handleRequest 메서드의 코드량이 비대해진다
↳ 유지보수성에 문제가 발생할 수 있음
해결책
Front Controller ( DispatcherServlet )
공통 정책 ( ex : 인코딩 , 에러처리 , 인증작업 )을
처리하고 개별 요청처리는 별도의 Controller 클래스에서 담당하도록 한다
→ 또한 개별 Controller 클래스는 Controller 인터페이스의 하위 클래스로 처리하여
표준화 하도록 한다 ( 표준화 : 다형성- 하나의 메세지 방식으로 다양한 동작을 수행)
아래 이미지 참고 🔻
0 개의 댓글:
댓글 쓰기