MVC 디자인 패턴

MVC란 Model-View-Controller의 약자로, 소프트웨어 디자인 패턴 중 하나입니다. 또한 MVC 패턴은 소프트웨어를 구성하는 요소들을 Model, View, Controller로 구분하여 각각의 역할을 분리합니다.
Model
- 데이터와 비즈니스 로직을 담당합니다.
- 데이터베이스와 연동하여 데이터를 저장하고 불러오는 등의 작업을 수행합니다.
View
- 사용자 인터페이스를 담당합니다.
- 사용자가 보는 화면과 버튼, 폼 등을 디자인하고 구현합니다.
Controller
- Model과 View 사이의 상호작용을 조정하고 제어합니다.
- 사용자의 입력을 받아 Model에 전달하고, Model의 결과를 바탕으로 View를 업데이트합니다.
MVC 패턴은 소프트웨어를 구성하는 요소들을 분리함으로써 코드의 재사용성과 유지보수성을 높이고, 개발자들 간의 협업을 용이하게 합니다. 따라서 소프트웨어를 개발할 때, MVC 패턴을 적용하여 구조를 잘 설계하는 것이 중요합니다.
Spring MVC
Spring Web MVC는 Servlet API를 기반으로 구축된 독창적인 웹 프레임워크로, 처음부터 Spring Framework에 포함되어 왔으며, 정식 명칭인 "Spring Web MVC"는 소스 모듈(spring-webmvc)의 이름에서 따왔으나, "Spring MVC"로 더 일반적으로 알려져 있습니다.
Spring MVC는 중앙에 있는 DispatcherServlet이 요청을 처리하기 위한 공유 알고리즘을 제공하는 Front Controller 패턴을 중심으로 설계되어 있으며 이 모델은 유연하고 다양한 워크 플로우를 지원합니다.
Spring에서 MVC 디자인 패턴을 적용하여 HTTP 요청을 효율적으로 처리하고 있습니다.
Servlet
자바를 사용하여 웹 페이지를 동적으로 생성하는 서버 측 프로그램 혹은 그 사양을 말합니다.

- 사용자가 Client(브라우저)를 통해 서버에 HTTP Request 즉, API 요청을 합니다.
- 요청을 받은 Servlet 컨테이너는 HttpServletRequest, HttpServletResponse 객체를 생성합니다. 약속된 HTTP의 규격을 맞추면서 쉽게 HTTP에 담긴 데이터를 사용하기 위한 객체입니다.
- 설정된 정보를 통해 어떠한 Servlet에 대한 요청인지 찾습니다.
- 해당 Servlet에서 service 메서드를 호출한 뒤 브라우저의 요청 Method에 따라 doGet 혹은 doPost 등의 메서드를 호출합니다.
- 호출한 메서드들의 결과를 그대로 반환하거나 동적 페이지를 생성한 뒤 HttpServletResponse 객체에 응답을 담아 Client(브라우저)에 반환합니다.
- 응답이 완료되면 생성한 HttpServletRequest, HttpServletResponse 객체를 소멸합니다.
-> Spring은 DispatcherServlet을 사용하여 Front Controller 패턴 방식으로 API 요청을 효율적으로 처리하고 있습니다.
'Spring' 카테고리의 다른 글
| Spring Day 6 : JPA (0) | 2024.01.25 |
|---|---|
| Spring Day 5 : IoC(제어의 역전)과 DI(의존성 주입) (0) | 2024.01.24 |
| Spring Day 4 : 3 Layer Architecture (1) | 2024.01.23 |
| Spring Day 2 : HTTP (0) | 2024.01.19 |
| Spring Day 1 : Server (0) | 2024.01.18 |