굥뷰를 햡시댜

Spring MVC 본문

웹/Spring Framework

Spring MVC

GodZ 2019. 8. 5. 22:35

 

웹서버는 요청과 응답의 연속이다.

 

사용자가 인터넷 주소창에 무언가 입력한다고 생각해보자.

 

이럴 경우, 사용자가 인터넷 서버에 페이지를 요청하는 것이라고 한다.

 

요청을 서버가 잘 받아들였다면 새로운 페이지가 뜰 것이고 이 화면이 잘 나타난다면

 

서버가 요청에 대한 응답을 한 것이다.

 

예를 들면,

 

사용자가 인터넷 브라우저에 www.google.co.kr을 입력했을 때,

 

이 행위는 사용자가 구글 서버에 페이지를 요청한 것이다.

 

그리고 이런 요청을 서버가 잘 처리했다면 구글 페이지가 뜰 것이고 이것은 서버가 응답을 한 것이다.

 

이처럼, 웹은 사용자의 요청에 대한 응답을 항상 처리해주는 서비스를 제공해주고 있다.

 

이런 방식의 대표적인 패턴으로는 MVC 패턴이 있다.

 

오늘은 MVC 패턴에 대해 공부해보고자 한다.

 

 

 

1. MVC란?

-> Model - View - Controller 총 3개로 나눠져 있는 구조로써 사용자가 보는 화면(View)와 데이터(Model) 그리고 이들간의 흐름을 제어(Controller)해주는 비즈니스 로직을 분리하여 상호 영향 없이 모듈을 재사용 및 확장 가능하게한 구조적 패턴이다.

 

 

-> MVC의 로직?

  (1) 사용자가 원하는 기능을 처리하기 위한 요청을 Controller에 보낸다. 

  (2) Model은 상태 정보 및 관련 기능을 제공하는데, Controller는 이 Model을 통해서 사용자의 요청을 처리한다.

  (3) Controller는 Model에 따라 알맞은 로직을 수행한 후 사용자에게 보여줄 View를 선택하며 선택된 View는 사용자에게 알맞은 결과 화면을 보여준다.

 

-> 장점 : 기능을 3개로 나눠 유지/보수 작업이 간단하고 쉽게 확장할 수 있다.

 

 

2. DispatcherServlet란?

-> 사용자가 URL로 요청한 정보를 / 단위로 구분하여 매핑한 컨트롤러가 있는지 검색하고 Controller에게 사용자의 요청을 전달해주는 역할을 한다.

 

-> 뿐만 아니라, Controller가 위에서 받은 사용자의 요청에 대한 로직을 처리한뒤 이에 대한 View를 받고 해당 View가 존재하는지 검색한 뒤 사용자에게 View를 보여주는 역할을 한다.

 

요약)

1) 클라이언트로부터 요청이 들어오면 DispatcherServlet이 가로챔

 

2) 가로챈 정보를 HandlerMapping에게 보내 해당 요청을 처리할 수 있는 적절한 Controller를 찾아냄

 

3) Controller를 찾았다면 해당 Controller로 요청을 보냄

 

4) Controller는 요청에 대한 로직을 처리한 후 해당 View를 리턴함

 

5) 이 때, 그 View의 이름으로 ViewResolver가 찾아내서 처리결과를 View에 보내줌

 

6) 이 결과를 다시 DispatcherServlet에게 보내주고, DispatcherServlet은 최종 결과를 다시 클라이언트에게 전송

 

 

3. GET 방식 vs POST 방식

-> GET 방식?

  - URL에 데이터를 함께 붙여서 보내는 방식

 

-> POST 방식?

  - http의 body에 데이터를 넣어서 보내는 방식

  - 데이터를 보낼 때 컨텐츠 타입을 반드시 명시해줘야 함

 

 

Comments