Spring MVC 아키텍처

김다은·2022년 11월 2일
1

Spring

목록 보기
1/1
post-thumbnail

학습목표
✔️Spring MVC가 무엇인지 알 수 있다.
✔️Spring MVC의 동작 방식과 구성요소를 이해할 수 있다.

Spring Framework

Spring에서 지원하는 모든 기능들을 포함해서 Spring Framework

Spring MVC

Servlet API를 기반으로 클라이언트의 요청을 처리하는 모듈 spring-webmvc 를 줄여서 Spring MVC라고 부르고, Spring MVC가 웹 프레임워크의 한 종류이기 때문에 Spring MVC 프레임워크라고도 부른다.

Spring MVC를 간단히 요약하면

✔️클라이언트의 요청을 편리하게 처리해주는 프레임워크이다.
✔️앞으로 만들(Sample) 애플리케이션은 Spring MVC가 제공해주는 기능을 이용해서 만든다.

Servlet

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


Spring MVC를 간단하게 요약해보자

Model

Spring MVC 기반의 웹 애플리케이션이 클라이언트의 요청을 전달 받으면 요청 사항을 처리하기 위한 작업을 할때, 이렇게 처리한 작업의 결과 데이터를 클라이언트에게 응답으로 돌려줘야하는데, 이 때 클라이언트에게 응답으로 돌려주는 작업의 처리 결과 데이터를 Model이라고 한다.

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

View

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

View의 형태

✔️HTML 페이지의 출력
✔️PDF, Excel 등의 문서 형태로 출력
✔️XML, JSON 등 특정 형식의 포맷으로의 변환

특히 현재 수강하고 있는 백엔드 코스에서는 JSON형식의 포맷으로의 변환으로 진행되고 있다.
왜냐하면,
✔️프런트엔드 영역과 백엔드 영역이 명확하게 구분되므로 개발 및 유지보수가 상대적으로 용이함
✔️프런트엔드 측에서 비동기 클라이언트 애플리케이션을 만드는 것이 가능함
이라는 장점을 가지고 있기 때문이다.

JSON(JavaScript Object Notation)

JSON은 앞으로 학습하게 될 Spring MVC에서 클라이언트 애플리케이션과 서버 애플리케이션이 주고 받는 데이터 형식
{”속성”:”값”} 의 형태

요즘은 JSON 형태로 주고받는것이 추세인듯 하다.

Controller

Controller는 클라이언트 측의 요청을 직접적으로 전달 받는 엔드포인트(Endpoint)로써 Model과 View의 중간에서 상호 작용을 해주는 역할이다.

클라이언트 측의 요청을 전달 받아서 비즈니스 로직을 거친 후에 Model 데이터가 만들어지면, 이 Model 데이터를 View로 전달하는 역할이다.


정리

Model, View, Controller 간의 처리 흐름

Client가 요청 데이터 전송
-> Controller가 요청 데이터 수신
→ 비즈니스 로직 처리 → Model 데이터 생성
→ Controller에게 Model 데이터 전달
→ Controller가 View에게 Model 데이터 전달
→ View가 응답 데이터 생성

profile
이제는 더이상 물러날 곳이 없다

0개의 댓글