프로그래밍/Spring

[Spring] 웹 프로그래밍 설계 모델

cho____sh 2020. 3. 22. 21:16
728x90

13.1 웹 프로그래밍을 구축하기 위한 설계 모델

Model 1 방식

클라이언트와 서버사이의 요청 - 응답.

서버에서 하나의 문서에 HTML, Java코드, 태그 등이 합쳐저있다.

문서가 너무 장황해져서 유지보수가 힘들다.

 

Model 2 방식

Controller, Service, View, DAO로 각각의 기능을 모듈화한다.

MVC가 웹 개발에서의 기본적인 방식이다.

유지보수가 수월하다.

 

13.2 스프링 MVC 프레임워크 설계 구조

MVC의 기본적인 구조. 머리속에 넣어두자.

1. User의 요청을 DIspatcherServletHandlerMapping에 보내고, HandlerMapping이 알맞은 Controller를 선택해준다.

2. HandlerAdapterController의 적합한 메소드를 선택

3. DispatcherServletViewResolver에 처리결과를 보낸다.

4. ViewResolver가 적합한 View를 선택한다.

5. View가 클라이언트에 응답한다.

 

13.3 DIspatcherServlet 설정

DispatcherServlet : web.xml에 서블릿을 매핑. 모든 요청을 처리하므로 / (root)url을 매핑한다.

DispatcherServlet을 서블릿으로 등록을 한 후 init-param(초기 파라미터)로 스프링 설정파일을 설정해줘야한다. 스프링 설정파일을 설정하지 않으면 디폴트 설정파일을 생성한다.

이렇게 생성한 스프링 컨테이너에 HandlerMapping, HandlerAdapter, VierResolver 등이 포함된다.

 

13.4 Controller 객체 - @Controller

스프링 설정파일에 <annotation-driven/> 태그를 포함해야한다.

컨트롤러로 사용할 클래스 이름 앞에 @Controller 어노테이션을 명시한다.

 

 

13.5 Controller 객체 - @RequestMapping

해당 메소드 앞에 @RequestMapping를 쓴 후 ("/~~")로 매핑할 url을 연결한다.

ex) @RequestMapping("/success")success 메소드 앞에 명시해두면, 해당 Controller/success로 요청이 올 시 이 메소드가 실행된다.

 

13.6 Controller 객체 - Model 타입의 파라미터

개발자는(Controller 객체) Model 객체에 데이터를 담아서 DispatcherServlet에 전달할 수 있다.

전달된 Model 데이터는 View에서 가공되어 클라이언트에 응답처리 된다.

 

13.7 View 객체

DispatcherServletViewResolver에게 위임하면,

스프링 설정파일에 InternalResourceViewResolver라는 Bean 객체를 생성한다.

Model 데이터 값과, 빈 객체에서 설정한 prefix, suffix 값을 합쳐서 적합한 View 파일로 매핑한다.

 

13.8 전체적인 웹프로그래밍 구조

728x90