Spring MVC

귀찮Lee·2022년 6월 23일
0

Spring

목록 보기
14/30

◎ Spring MVC

  • spring-webmvc

    • Spring Framwork : Spring에서 지원하는 모든 기능들을 포함하여 Spring Framwork라고 부름
    • spring-webmvc : 서블릿(Servlet) API를 기반으로 클라이언트의 요청을 처리하는 모듈
    • spring-webmvc를 줄여서 Spring MVC라고 부른다.
    • 특징
      • 클라이언트의 요청을 편리하게 처리해주는 프레임워크
      • 간편한 어노테이션 ... 등을 통해 쉽게 이용할 수 있다.
  • 서블릿(Servlet)

    • 클라이언트의 요청을 처리하도록 특정 규약에 맞추어서 Java 코드로 작성하는 클래스 파일
    • 아파치 톰캣(Apache Tomcat) : 서블릿들이 웹 어플리케이션으로 실행이 되도록 해주는 서블릿 컨테이너(Servlet Container) 중 하나
  • Spring MVC에서 MVC는 각각 Model, View, Controller를 나타냄

◎ MVC

  • Model

    • 클라이언트에게 응답으로 돌려주는 작업의 처리 결과 데이터
    • Service 계층을 거쳐서 원하는 데이터로 변환됨
  • View

    • Model 데이터를 이용해서 웹브라우저 같은 클라이언트 애플리케이션의 화면에 보여지는 리소스(Resource)를 제공하는 역할
  • View 형태

    • HTML 페이지 출력

      • SSR(Server Side Rendering) 형태에서 HTML 태그로 구성된 페이지에 Model 데이터를 채워 넣은 후, 최종적인 HTML 페이지를 만들어서 클라이언트 측에 전송
    • PDF, Excel 등의 문서 형태로 출력

      • 문서 내에서 데이터가 동적으로 변경되어야 하는 경우 사용할 수 있는 방식
    • XML. JSON 등 특정 형식의 포멧으로 변환

      • Model 데이터를 특정 프로토콜 형태로 변환해서 변환된 데이터를 클라이언트 측에 전송하는 방식
      • 프런트엔드와 백엔드 영역이 구분되므로 유지보수에 용이
      • 프런트엔드 측에서 비동기 클라이언트 애플리케이션을 만드는 것이 가능
  • Controller

    • 클라이언트 측의 요청을 직접적으로 전달 받는 엔드포인트(Endpoint)
    • Model과 View의 중간에서 상호 작용을 해주는 역할
      • Model 데이터를 View로 전달하는 역할
      • 내부적으로 Spring의 View가 전달 받아서 JSON 포맷으로 변경한 후에 클라이언트 측에 전달

◎ JSON(JavaScript Object Notation)

  • JSON

    • JavaScript에서 사용하는 리스트와 딕셔너리 구조의 복합체
    • Spring MVC에서 클라이언트 애플리케이션과 서버 애플리케이션이 주고 받는 데이터 형식
    • 과거에는 XML 형식의 데이터가 사용되었으나, 현재는 XML보다 상대적으로 가볍고 복잡하지 않은 JSON 형식을 대부분 사용하고 있는 추세이다.
  • JSON 변형 방법 (Gson 라이브러리 이용)

    public class JsonExample {
        public static void main(String[] args) {
            Coffee coffee = new Coffee("아메리카노", "Americano", 3000);
            Gson gson = new Gson();
            String jsonString = gson.toJson(coffee);
    
            System.out.println(jsonString);
        }
    }

◎ Spring MVC의 동작 방식

  • Spring MVC 구성 요소 간의 관계를 이해하고 있다면 실무에서 어떤 문제가 발생했을 때, 문제를 어디서부터 해결해야 될지에 대한 방법을 찾는 것이 조금 더 수월해짐

  • Spring MVC 동작 방식과 구성 요소

  • DispatcherServlet

    • 대부분의 Spring MVC 구성 요소들과 상호 작용함
      • 실제로 요청에 대한 처리는 다른 구성 요소들에게 위임(Delegate)함
    • Front Controller Pattern : 애플리케이션의 가장 앞단에 배치되어 다른 구성요소들과 상호작용하면서 클라이언트의 요청을 처리하는 패턴
profile
배운 것은 기록하자! / 오류 지적은 언제나 환영!

0개의 댓글