개발/Spring
[Spring] 스프링03
JaeHoist
2022. 12. 27. 18:13
1. MVC 패턴
Model, View, Controller의 합성어로 소프트웨어 공학에서 사용되는 소프트웨어 디자인 패턴
Model : 백그라운드에서 동작하는 로직을 처리
View : 사용자가 보게 될 결과 화면을 출력
Controller : 사용자의 입력처리와 흐름 제어
MVC 모델 1
비즈니스 로직 영역(Controller)에 프레젠테이션 영역(View)을 같이 구현하는 방식이다.
사용자의 요청을 JSP가 전부 다 처리한다.
빠르고 쉽게 개발할 수 있는 장점
JSP파일 자체가 너무 비대해지고, Controller와 View가 혼재하므로 유지보수에 어려움을 겪을 수 있는 단점
MVC 모델 2
비즈니스 로직 영역과 프레젠테이션 영역이 분리되어 있는 구현 방식
사용자의 요청을 Servlet이 받고 그 요청을 View로 보여줄 것인지 Model로 보내줄 것인지 정하여 전송한다.
디자이너와 개발자의 분업이 가능하며 유지보수에 유리한 장점
설계에서 어려움을 겪을 수 잇고, 개발난이도가 높다는 단점
DAO,DTO???
DAO(Data Access Object)
데이터베이스의 데이터를 조작하는 기능을 전담하도록 만든 객체
데이터베이스의 엑세스를 DAO에서만 하게되면 다수의 원격호출을 통한 오버헤드를 VO나 DTO를 통해 줄일 수 있고 다수의 DB호출 문제를 해결할 수 있습니다.
DTO(Data Transfer Object)
계층 간 데이터 교환을 위한 자바빈즈
로직을 가지고 있지 않은 순수한 데이터 객체이며 속성과 그 속성에 접근하기 위한 getter,setter 메소드만 가진 클래스
2. Spring MVC 패턴의 라이프 사이클
- 브라우저로 부터 request가 들어오면 일단 filter를 거치는데 대표적인 처리엔 encoding이 있다.
- HandlerMapping이 요청을 가로채 요청에 해당하는 적절한 Controller를 찾고 그것을 DispatcherServlet에 전달한다.
- DispatcherServlet은 실행할 Controller 정보를 HandlerAdapter에 전달한다.
- HandlerAdapter는 해당하는 Controller를 호출한다.
- Controller에서 전달된 요청을 처리한다. Controller는 서비스를 호출하고 Service에서는 DAO를 통해 데이터를 가져 온다. 그 결과를 model에 담고 View의 이름을 HandlerAdapter에 전달하게 된다.
- ViewResolver에서 매핑된 View를 찾아서 반환한다.
- DispatcherServlet은 반환된 View를 넘기게 된다.