본문 바로가기
Spring

Spring Framework : basics() { Spring MVC 구조 }

by yaans 2021. 10. 13.

 

 

 


 

index

  • Spring MVC
    • Spring MVC이란?
    • Model. View, Controller
  • Spring MVC Architecture
  • Spring MVC의 장점

 


 

🍃 Spring MVC

Spring MVC란?

MVC (모델-뷰-컨트롤러)
데이터, 사용자 인터페이스, 논리 제어를 구현하는데 널리 사용되는 SW 디자인 패턴


Spring 프레임워크를 Model-View-Controller로 다루는 모듈


스프링의 MVC 패턴은 DispatcherServlet을 활용한 front controller pattern을 사용한다
간단히 말해서 DispatcherServlet이 의도된 목적지를 향해 요청을 보내는 역할을 한다

 

 

Model. View, Controller

example 🛒
쇼핑 리스트 앱

🔗 Model

  • 애플리케이션에 포함해야 할 데이터가 무엇인지를 정의
  • 데이터의 상태가 변경된다면?
    • 뷰에 알리기 → 필요에 따라 화면 변경
    • 컨트롤러에 알리기 → 필요에 따라 다른 로직을 수행
example 🛒
쇼핑 리스트 앱에서 필요한 항목 - 품목, 가격 등

 

 

🔗 View

  • 애플리케이션의 데이터를 사용자에게 보여주는 방식 정의
  • 표시할 데이터를 Model로부터 받는다
example 🛒
사용자에게 보여질 쇼핑 리스트 페이지

 

🔗 Controller

  • 애플리케이션 사용자의 입력에 대해 응답
  • 모델 또는 뷰를 업데이트하는 로직을 포함
example 🛒
사용자가 특정 상품을 선택할 때 그 상품 데이터를 받아와서 뷰에 전달

 

 

🍃 Spring MVC Architecture

Spring MVC 흐름

start ! 💁‍♀️

요청 request 이 들어온다

▶️ Dispatcher Servlet이 요청을 받는다

▶️ Handler Mapping의 도움으로, request와 관련있는 컨트롤러 이름을 확인한다

확인이 됐다면? request를 컨트롤러로 이동시킨다

 

▶️ Handler AdapterContoller의 적절한 메소드를 호출해서 요청을 처리한다

 

 

 

주의점

  • 클라이언트의 요청을 실제로 처리하는 것은 Controller
  • 사용할 Contoller를 찾고, 메소드를 호출해 처리 결과를 ModelAndView로 변환해주는 객체가 바로 HandlerAdapter 🌟

 

 

🍃 Spring MVC Architecture

Spring MVC의 장점

👉 관심사 분리

  • 각 오브젝트의 특성에 맞춘 역할이 정확하게 분리되어 있다

👉 경량

  • 개발을 위한 컨테이너와 어플리케이션 배포가 경량적인 서블렛을 사용한다

👉 빠른 개발

  • 빠르고 병렬적인 개발이 가능하다

👉 설정

  • 어플리케이션과 프레임워크 클래스를 위한 설정이 쉽다

👉 비즈니스 코드

  • 개발자가 비즈니스 코드를 재사용 가능하도록 도와준다

👉 테스트 유용

  • 데이터를 주입한 Java Beans를 쉽게 사용할 수 있도록 도와준다

👉 매핑

  • 페이지를 리다이렉트하는데 유연한 매핑을 제공한다

👉 의존성 주입

  • 제어의 역전이나 의존성 주입을 사용해서, 개발자가 직접 의존성을 위한 환경을 만들 필요가 없다

'Spring' 카테고리의 다른 글

SpringBoot : healthCheck() { Spring Boot Actuator }  (0) 2023.07.09

댓글