IJY
느리더라도 꾸준히
IJY
전체 방문자
오늘
어제
  • 분류 전체보기 (67)
    • Develop (67)
      • Java (8)
      • Go (0)
      • Test (1)
      • Web (1)
      • HTML, CSS (1)
      • TIL(Today I Learned) (18)
      • SQL (0)
      • Algorithm (27)
      • 회고 (7)
      • Troubleshooting (1)
      • Etc (3)
    • Etc (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 글쓰기

공지사항

인기 글

태그

  • 독후감
  • 12921
  • stream
  • 초기화
  • Filter
  • Spring
  • PostConstruct
  • web
  • 알고리즘
  • BufferedWriter
  • instance
  • 프로그래머스
  • Interceptor
  • html
  • 회고
  • 백준
  • REST Assured
  • BufferedReader
  • java
  • API 예외 처리
  • recursion
  • object
  • 재귀
  • 우테코 온보딩
  • Class
  • sort
  • MVC
  • EntityTransaction
  • init
  • 소수 찾기

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
IJY

느리더라도 꾸준히

Develop/Java

Spring MVC 간단 정리

2023. 2. 14. 12:12

Spring MVC에 앞서 일단 MVC에 대해 간단하게 정리를 하고 가도록 하겠습니다.

MVC

MVC란 Model, View, Controller를 의미하며, 소프트웨어 디자인 패턴의 일종

  • Model
    • 클라이언트가 전달하는 정보 또는 데이터, 혹은 클라이언트의 요청에 따라 반환하는 정보 또는 데이터
    • 위 정보 또는 데이터를 가공하고 관리하는 비즈니스 로직도 포함
    • 즉, 정보 또는 데이터 값 및 비즈니스 로직
  • View
    • 클라이언트의 요청에 따른 반환값을 어떻게 표현하는가?에 대한 부분
    • 정적인 HTML을 반환할지, Model 값을 사용하여 동적인 HTML을 반환할지, 그렇다면 어떻게 렌더링 할지 등에 대한 역할
    • 즉, 단어 뜻 그대로 보이는 부분에 대한 것
  • Controller
    • 클라이언트의 요청에 따라 동작을 제어하는 부분
    • 각 요청에 따라 필요한 Model을 호출하여 나온 Model 값을 View에 전달하여 반환하도록 요청
    • 즉, 단어 뜻 그대로 제어 역할을 수행

 

Spring MVC

Spring MVC는 위에서 설명한 MVC 패턴을 Spring framework 내에서 쉽게 구현할 수 있도록 여러 가지 기능을 제공하고 있는 것

  • Model
    • 객체를 통해 표현하며 View에 전달하기 위해 Model 객체에 필요한 데이터를 저장하여 전달
    • 비즈니스 로직은 클래스 레벨에 @Service 어노테이션을 추가하여 구현
    • JSON으로 반환하는 경우에는 View에 전달하지 않고 객체를 JSON 포맷으로 변환하여 HTTP body에 넣어 반환
  • View
    • 정적인 HTML을 반환하거나 템플릿 엔진을 통해 동적인 HTML을 만들어 반환하는 등의 동작
    • 템플릿 엔진으로는 JSP, Thymeleaf, Freemarker, Velocity 등이 존재
  • Controller
    • 클래스 레벨에 @Controller 또는 @RestController 어노테이션을 추가하여 구현
    • @Controller의 경우 메서드 반환값을 ViewResolver에 전달하여 해당 View를 찾아서 반환
    • @RestController의 경우 메서드 반환값을 HttpMessageConverter에 전달하여 알맞게 변환 후 HTTP body에 담아서 반환

Spring MVC의 기본적인 내용을 간단하게 정리하였으며, 내부 동작은 이전에 작성했던 "SpringMVC DispatcherServlet 동작 방식"을 참고해 주세요.

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

Spring 기동시 bean 초기화 메서드 호출 방법  (0) 2022.11.29
Java - File read 2가지 방법  (0) 2022.11.29
JPA Fetch Type  (1) 2022.09.09
Collection framwork  (0) 2022.07.26
제네릭(Generic)이란?  (0) 2022.07.25
    'Develop/Java' 카테고리의 다른 글
    • Spring 기동시 bean 초기화 메서드 호출 방법
    • Java - File read 2가지 방법
    • JPA Fetch Type
    • Collection framwork
    IJY
    IJY
    개발 관련 공부한 내용을 정리하는 블로그입니다. 느리더라도 꾸준히 포스팅을 하려고 노력합니다.

    티스토리툴바