Spring MVC - API계층

Jonyuuuk·2022년 10월 27일
0

스프링

목록 보기
7/7

Spring MVC

  • 스프링의 모듈 중에서 웹 계층을 담당하는 몇가지 모듈 중 서블릿(Servlet) API를 기반으로 클라이언트의 요청을 처리하는 모듈이 spring-webmvc인데, 이를 줄여 Spring MVC, Spring MVC 프레임워크라고함

서블릿(Servlet)이란?

  • 클라이언트의 요청을 처리하도록 특정 규약에 맞추어서 Java 코드로 작성하는 클래스 파일
  • 이러한 서블릿들이 웹 애플리케이션으로 실행되도록 해주는 서블릿 컨테이너가 존재(ex) 아파치 톰캣(Apache Tomcat)

Model

  • Spring MVC의 M에 해당
  • 웹 애플리케이션은 클라이언트의 요청을 전달 받으면 요청 사항을 처리하기 위한 작업을 진행
  • 이러한 작업 결과 데이터를 클라이언트에게 응답으로 돌려주는데, 이때 응답으로 돌려주는 작업의 처리 결과데이터를 Model이라고 함

    서비스 계층(Service Layer) : 클라이언트의 요청 사항을 구체적으로 처리하는 영역
    비즈니스 로직(Businerr Logic) : 요청 사항을 처리하기 위해 Java 코드로 구현한 것

View

  • Spring MVC의 V에 해당
  • Model 데이터를 이용해서 웹브라우저같은 클라이언트 애플리케이션의 화면에 보여지는 리소스를 제공하는 역할

View의 형태

  • html 페이지의 출력
    • 클라이언트 애플리케이션에 보여지는 HTML 페이지를 직접 랜더링해서 클라이언트 측에 전송하는 방식
    • 기본 HTML에 Model 데이터를 채워 넣어 HTML 페이지를 만들어 클라이언트 측에 전송

PDF, Excel 등의 문서 형태로 출력

  • Model 데이터를 가공해서 PDF 문서나 Excel 문서를 만들어서 클라이언트 측에 전송하는 방식
  • 문서 내에 데이터가 동적으로 변경되어야 하는 경우 사용할 수 있는 방식

XML, JSON 등 특정 형식의 포맷으로 변환

  • Model 데이터를 특정 포로토콜 형태로 변환해서 변환된 데이터를 클라이언트 측에 전송하는 방식
  • 특정 형식의 데이터만 전송, 프런트엔드 측에서 이 데이터를 기반으로 HTML페이지 생성
  • 프런트엔드,백엔드의 명확한 구분을 통해 개발 및 유지보수 용이, 프런트엔드에서 비동기 클라이언트 애플리케이션을 만들 수 있다는 장점 존재

❓JSON이란?

  • JavaScript Object Notation 의 약자로, 클라이언트와 서버가 주고받는 데이터 형식
  • {"속성":"값:}의 형태
  • 과거 XML을 많이 사용했지만, 현재는 상대적으로 가볍고 간단한 JSON을 주로 사용

Controller

  • Spring MVC의 C에 해당
  • 클라이언트 측의 요청을 직접적으로 전달 받는 엔드포인트로써 Model과 View의 중간에서 상호 작용을 해주는 역할
  • 클라이언트 측의 요청을 전달받아 비즈니스 로직을 거친 후에 Model 데이터가 만들어지면 이를 View에 전달함

MVC 간의 처리 흐름 정리
1. 클라이언트가 요청 데이터 전송
2. 컨트롤러가 요청 데이터 수신 -> 비즈니스 로직 처리 -> Model 데이터 생성
3. Controller 에게 Model 데이터 전달 -> Controller 가 View 에게 Model 데이터 전달
4. View 가 응답 데이터 생성

profile
열쩡맨이 되고싶습니다

0개의 댓글