길민호(ethan.mino)
코딩수첩
길민호(ethan.mino)
전체 방문자
오늘
어제
  • 분류 전체보기 (215)
    • Computer Science (0)
    • Web (6)
      • CSS (0)
      • HTML (0)
    • Node.js (0)
    • Javascript (2)
    • Java (46)
      • Spring (27)
      • Jsp (0)
    • C\C++ (2)
    • Programming (0)
    • AI (0)
    • Database (7)
    • Git (5)
    • Algorithm (119)
      • Stack (0)
      • Queue (0)
      • Linked List (0)
      • Sort (0)
      • Simulation (27)
      • Recursion (0)
      • Backtracking (4)
      • Two Pointer (3)
      • Dynamic Programming (19)
      • Greedy (10)
      • Graph (3)
      • Dijkstra (1)
      • BFS\DFS (8)
      • Floyd (1)
      • MST (4)
      • Tree (4)
      • Binary Search (8)
      • Binary Search Tree (4)
    • IntelliJ (4)
    • Vscode (0)
    • Operating System (0)
    • 후기 (3)
    • 성장일지 (13)
    • 스터디 (7)
    • 설치 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • ㅡ

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
길민호(ethan.mino)

코딩수첩

Spring MVC란?
Java/Spring

Spring MVC란?

2020. 6. 28. 19:28

Spring MVC란? 

  • Model-view-Controller의 약자이다.
  • Model : 모델은 뷰가 렌더링하는데 필요한 데이터이다. 예를 들어 사용자가 요청한 상품 목록이나, 주문 내역이 이에 해당된다.
  • View : 웹 어플리케이션에서 뷰(View)는 실제로 보이는 부분이며, 모델을 사용해 렌더링한다. 뷰는 JSP, JSF, PDF, XML등으로 결과를 표현한다.
  • Controller : 컨트롤러는 사용자의 액션에 응답하는 컴포넌트다. 컨트롤러는 모델을 업데이트하고, 다른 액션들을 수행한다.

 

MVC 모델은 자바 Web Programming에서 두가지 형태로 변형된다.

 

MVC Model 1 아키텍처

 

MVC Model 1 아키텍처

  • 브라우저가 서버에 요청하면 해당 요청을 JSP가 받고, JSP는 Java로 만들어진 클래스인 Java Bean을 이용해서 Database를 사용하고, 그 결과를 화면에 출력한다. 
  • JSP에 HTML 코드와 Java 코드가 섞여있어 유지보수가 어렵다.

MVC Model 2 아키텍처

MVC Model 2 아키텍처

  • 요청 자체는 Servlet이 받고, Servlet이 Java Bean을 이용해서 Database에서 데이터를 가져와, 그 결과를 JSP를 통해서 화면에 출력한다.
  • Servlet은 요청과 데이터를 처리하는 Controller의 역할을 수행하고, JSP는 모델의 결과를 보여주는 View의 역할을 수행한다.
  • 이렇게 함으로써 로직과 view를 분리할 수 있다.

MVC Model2의 발전형태

MVC Model2의 발전형태

  • Servlet은 관련된 요청을 처리하기에 불편한 구조를 가지고 있기 때문에, 이런 단점을 해결하기 위해 클라이언트가 보내는 모든 요청을 Front Controller라는 Servlet Class가 받아서 Controller Class(또는 handler Class)에게 위임한다.(Front Controller는 딱 하나만 존재하며, 요청만 받고 실제 일은 처리하지 않음)
  • 요청의 실제 처리는 Controller Class(또는 handler Class)에게 위임함으로써, 관련된 URL은 하나의 Class에서 처리하도록 한다.
  • Controller가 자바 bean 등을 이용해서 결과를 만들어내고, 만들어진 결과를 Model에 담아서 Front Controller에게 보내면 Front Controller가 알맞은 View에게 Model을 전달해서 결과를 출력한다.
  • Model2의 발전된 형태가 Spring framework의 모듈중 하나인 Web Module에 구현되어있다.
  • 이러한 Web Module을 Spring MVC라고 한다.

Spring Web Module

참조 URL

  • https://www.edwith.org/boostcourse-web/lecture/16762/
  • Web MVC framework (https://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/mvc.html)
  • MVC Model2 | Opendocs (https://myblog.opendocs.co.kr/archives/tag/mvc-model2)
  • Model 1 and Model2 (MVC) Architecure (https://www.javatpoint.com/model-1-and-model-2-mvc-architecture)
  • Modules (https://docs.spring.io/spring/docs/3.0.0.M4/reference/html/ch01s02.html)
  • IBM Knowledge Center (https://www.ibm.com/support/knowledgecenter/SSRTLW_9.1.1/eos?origURL=SSRTLW_9.1.1/com.ibm.etools.struts.doc/topics/cstrdoc001.html)

'Java > Spring' 카테고리의 다른 글

DispatcherServlet  (0) 2020.06.28
Spring MVC 기본 동작 흐름  (0) 2020.06.28
Spring 싱글톤(Singleton) Scope  (0) 2020.06.28
DB에 Insert 할 때, SimpleJdbcInsert을 사용하는 이유는?  (0) 2020.06.28
Spring Tip!  (0) 2020.06.28
    'Java/Spring' 카테고리의 다른 글
    • Spring MVC 기본 동작 흐름
    • Spring 싱글톤(Singleton) Scope
    • DB에 Insert 할 때, SimpleJdbcInsert을 사용하는 이유는?
    • Spring Tip!
    길민호(ethan.mino)
    길민호(ethan.mino)
    💻 호기심 많은 서버 개발자 길민호입니다.

    티스토리툴바