유혁의 개발 스토리

[Spring] MVC 패턴 이해 본문

Spring

[Spring] MVC 패턴 이해

유혁. 2017. 7. 19. 14:25

 

 

스프링은 웹 어플리케이션 제작에 적용되면서 유명해 졌습니다.

 

하지만 스프링은 웹 어플리케이션을 개발만 가능한 것이 아닙니다.

 

다른 자바 어플리케이션도 개발이 가능합니다.

 

웹 어플리케이션 개발에 편리함으로

 

스프링 프레임워크를 사용합니다.

 

 

 

MVC 패턴이란?  - Model View Controller 의 약자입니다.

Model View Controller를 사용한 개발 패턴입니다.

 

Model : 데이터의 구조

View : 사용자에게 보여지는 화면

Controller : Model과 View를 연결

 

 

 

 

 

 

 

 

Spring의 MVC 구조

 

 

 

 

DispatcherServlet 이란

 

- 간단하게 서블릿을 분배하는 역할을 수행합니다. 최초로 웹 클라이언트 요청을 받음

 

이전 서블릿을 URL화 하기 위해서 web.xml 에 수동적으로 등록했습니다.

 

Spring 에서는 DispatcherServlet이 요청을 모두 핸들링 해줍니다.

 

 

[MVC 패턴]

 

 

 

 

주로 개발을 하는 장소는 Controller 와 View를 구현하게 되며

 

다른 부분은 설정만 해주면 됩니다.

 

 

Controller는 Servlet들을 어노테이션하여 관리하는 장소입니다.

 

Controller에서 DB와 연동하여 데이터베이스의 값들을

 

자바 빈에 넣어 ModelAndView를 통해 JSP에 전달해주는 흐름입니다.

 

 

간단히 설명하면

 

1. 클라이언트가 웹 URL을 호출함

 

2. DispatcherServlet이 Servlet이 구현된 장소를 찾아 실행시킴

 

3. Controller 안에 서블릿이 작성되며 컨트롤러 내의 서블릿의 동작을 수행함

(DB연결 + 원하는 정보 처리.. 등등)

 

4. 처리된 결과를 자바 빈(VO)에 초기화

 

5. 처리된 자바 빈 객체를 ModelAndView 객체를 통해 View 쪽으로 데이터 넘겨줌

 

6. View에서 ModelAndView를 통해 처리된 결과를 이용한 페이지 로드

 

 

 

자바 빈이란

 

간단하게 데이터를 저장하는 객체입니다.

 

데이터 들과 getter / setter로 이루어진 객체입니다.

 

VO로 데이터를 담는 객체를 선언했는데

알아보니 VO와 자바 빈과는 다른 의미라고 하시는데 정확한 이유는....

 

무튼 자바빈과 VO(Value Object)는 비슷한 의미로 해석하시면 될 것 같습니다.