Q. MVC 패턴이란?

A. Model / View / Controller 이렇게 3가지로 나누어 개발하는 소프트웨어 디자인 패턴입니다.

Model은 모델의 상태에 변화가 있을 때 컨트롤러와 뷰에 이를 통보합니다.

View는 사용자가 볼 수 있는 인터페이스 입니다.

Controller는 사용자의 요청에따라 어떤 동작을 해야할지 작성하는 부분 입니다.

이것 역시 검색하면 정리가 잘 된 내용이 많지만, 내가 이해하고 있는 방식대로 정리해보고자 한다.

 

목차

  •  Spring 동작 방식
        - 정적 과정(html) 흐름도
        - 동적 과정(JSP) 흐름도
        - MVC 동작 좀 더 자세한(?) 흐름도
        - 정리 : 전체 과정 흐름도

 

 

1. Spring 동작 방식

이전에 정리글 Tomcat -> Webapp폴더로 들어가면 이제 뭐가 어떻게 동작하는건가?

여기부터가 STS, Atom , Eclipse 등 다양한 개발 툴을 이용해서 어플리케이션을 개발하는 영역으로 들어온 것이다. (난 Spring FrameWork 공부중이니까 Spring 기준으로 작성할 것임)

간단하게 그림으로 살펴본다.

 

- 정적 과정(html) 흐름도

사진 1. html 요청 과정

서버에 요청이 들어오면 Dispatcher Servlet에서 해당 요청에 맞는 View(.html)를 보여준다.
(Dispatcher Servlet은 웹 컨테이너 내에서  실행되는 것)

 

- 동적 과정(JSP) 흐름도

사진 2. MVC 동작 과정

 

1. 서버에 요청이 들어오면 Dispatcher Servlet에서 요청 동작을 수행하기 위한 Controller로 전달한다.
2. 이후 컨트롤러에서 DB 내용이 필요하다면 Model에 요청하여 값을 받아오고 이것을 다시 Dispatcher Servlet으로 전달
3. Dispatcher Servlet은 처리가 완료된 결과가 작성된 View를 사용자에게 전달한다.

 

 

- MVC 동작 좀 더 자세한(?) 흐름도

 

사진 3. MVC 동작 자세히 보기

좀 더 자세히 보게되면, Dispatcher Servlet에는 HandlerMapping/ HandlerAdapter/ ViewResolver 라는 메서드가 작성되어 있다.

1. 서버에 요청이오면 Dispatcher Servlet내의  HandlerMapping 메서드가 동작하면서 해당 요청을 처리할 컨트롤러를 찾은 후 Dispatcher Servlet에게 알려준다.

2. 그 다음 선택 된 컨트롤러 중 어떤 메서드가 실행되야할지 HandlerAdapter가 찾아서 다시 Dispatcher Servlet에게 알려준다.

3. 그러면 Dispatcher Servlet은 HandlerMapping/ HandlerAdapter로 부터 전달받은 컨트롤러에게 일을 하라고 요청한다

.
4. 요청받은 컨트롤러는 필요한 데이터를 Model을 통해 데이터를 받아와서 다시 Dispatcher Servlet에게 전달한다.

5. 요청이 수행된 결과값을 적용할 View를 ViewResolver가 찾아서 적용을 시키고 다시 Dispatcher에게 전달

6. 마지막으로 Dispatcher servlet은 전달 받은 View를 사용자에게 전달 하면 완료!

 

 

 

 

 

정리 : 전체 과정 흐름도

사진 5. 웹 전체 동작 과정

 

그래서 Web을 이용할때 Client - Server에서 이루어지는 과정을 그림으로 보면 대략 이렇게 되는 것이다.

어쨋건 이렇기 때문에 톰캣 컨테이너가 무엇인지를 알아보았고, 우리가 개발하는 내용들이 어디에 위치되어 배포되는지까지 알아보았다. 아주아주 단순하고(?) 기본적인 내용이지만, 한번쯤 정리하고 싶었다.

'WEB 개발 > Spring 개념' 카테고리의 다른 글

Spring - DB 연동방법  (0) 2019.04.24
Servlet / Container란?  (0) 2019.03.31
웹 서비스 과정 - Client - Server 구조  (0) 2019.03.28

+ Recent posts