1. Spring MVC 기본 1편

Dev StoryTeller·2020년 12월 5일
0

들어가기에 앞서, 이번글부터는 기본적인 spring의 개념Context, Repository 작성에 대해 알고 있다는 전제하에 이야기를 진행할 것이다. 잘 모르겠다면 이 점을 유의하면 좋겠다 :ㅁ


0. 개요

Spring은 MVC 패턴에 대해 다양한 어노테이션과 클래스, 메소드를 제공한다.이제 본격적인 Spring MVC에 대해 알아보도록 하자!


1. 구조

우선 Spring MVC의 구조부터 한번 살펴보자.
(출처:https://terasolunaorg.github.io/guideline/5.0.1.RELEASE/en/Overview/SpringMVCOverview.html)
꽤 유명한 스프링 MVC로 구조도이다.
복잡해보이긴 하지만, 한눈에 모든 과정을 잘 담아놓았다.

여기서는 앞서 배웠던 MVC와는 의미가 조금 다르다.
따라서 주요 요소인 Dispatcher Servlet과 M, V, C에 대해 간단히 알아보자.
(View는 이전과 동일하니 생략하겠다)


2. Dispatcher Servlet

이 다음편에 중점적으로 배울 내용이다.
Servlet의 중심으로, servlet과 관련된 모든 설정을 얘가 담당한다.

모든 요청을 받아서 Controller에게 넘겨주는 역할도 한다.

예를 들어 /user 페이지를 클릭했다고 하면,
"/user" url이 매핑된 Controller를 찾아서 요청을 넘겨준다.


3. Controller

앞서 배운 Model과 View를 이어주는 역할인 것은 동일하다.

좀더 자세히 이해해보자면, JSP/서블릿을 작성해 본 분들은
그중 서블릿과 동일하다고 생각하면 된다.

각 서블릿이 매핑되는 url이 있는 것처럼, Controller도 매핑되는 url이 있다.

@Controller
@RequestMapping("/user")
class userController {

RequestMapping으로 /user와 매핑되어, 관련 작업을 처리한다.


4. Model

앞서 설명하길, Model을 데이터의 중심이라고 했다.
맞긴 하지만 여기서는 조금 다르다.
Model로직의 결과값을 담기위한 틀이라고 할 수 있다.

View에 값을 아무렇게나 보낼 수 없기 때문에, 일정한 틀에 담아서 보내는데, 그것이 Model인 것이다.

스프링에선 Model에 결과값을 여러 형태로 담을 수 있다.


5. 결론

간단히 요약해보자면,

1. Dispathcer Servlet이 요청을 받아 Controller에게 넘겨준다.

2. Controller는 요청에 따라 비즈니스 로직을 실행한다.

3. 로직의 결과값을 Model에 담고, viewname으로 리턴한다.

4. Dispatcher Servlet이 viewname값을 보고 View를 찾아서 Model 값을 넘긴다.

5. View는 Model 값을 보고 화면에 출력한다

이 되겠다.
지금 완전히 이해하기는 어렵겠지만, 설명이 끝날 때 쯤이면 완벽히 이해하고 고개를 끄덕이고 있을 것이다 : )

그럼 다음편은 Dispatcher Servlet으로 찾아오겠다!!

profile
개발을 이야기하는 개발자입니다.

0개의 댓글