MVC 모델이란? 🤔
MVC(Model-View-Controller) 모델은 프로그램의 처리 역할을 나누어 개발하는 방식을 의미합니다. 각 부분을 독립적으로 관리할 수 있게 하여 개발 효율성을 높이고 유지보수를 쉽게 만듭니다.
MVC 모델의 구성 요소
MVC는 세 가지 주요 구성 요소로 이루어져 있습니다:
- 모델(Model): 시스템에서 제공하는 비즈니스 로직을 담당합니다. '비즈니스 로직'이란 시스템의 목적을 처리하는 핵심 부분을 의미합니다. 예를 들어, 회원 가입 시 ID 중복 확인이나 비밀번호 규칙 검사 등의 로직이 모델에서 수행됩니다.
- 뷰(View): 사용자에게 입력받거나 결과를 출력하는 표현 부분을 담당합니다. 화면에 표시되는 부분입니다.
- 컨트롤러(Controller): 사용자가 입력한 데이터를 모델에 전달하고, 모델에서 처리된 데이터를 뷰에 전달하는 역할을 합니다. 즉, 모델과 뷰 사이에서 제어 역할을 합니다.
MVC 모델의 개요와 이점
- 역할 분담: MVC는 각 구성 요소가 명확히 구분되어 있어 효율적인 개발과 유지보수가 가능합니다.
- 분업화 용이: 개발자 간의 역할을 나눌 수 있어 작업이 병행될 수 있습니다.
- 설계 변경에 유연: 각 구성 요소가 독립적이기 때문에 설계 변경 시 영향을 최소화할 수 있습니다.
- 독립성: 서비스 로직, 화면 처리, 데이터 처리를 분리하여 프로그램의 독립성을 높입니다.
Spring MVC
Spring MVC는 웹 애플리케이션을 쉽게 개발할 수 있도록 도와주는 프레임워크입니다. Spring MVC는 Front-Controller Pattern이라는 디자인 패턴을 사용합니다. 이 패턴은 모든 요청을 프런트 컨트롤러가 받아서 적절한 컨트롤러로 할당하는 방식으로 동작합니다.
스프링 MVC는 화면 전환이나 사용자와 서버 간의 데이터 입출력 처리를 단순화하여 웹 애플리케이션 개발을 용이하게 합니다.
Spring MVC의 구성 요소
| 구성 요소 | 기능 개요 |
|---|---|
| DispatcherServlet | 모든 요청을 수신하는 프런트 컨트롤러입니다. |
| Model | 컨트롤러에서 뷰로 전달되는 데이터를 저장하는 객체입니다. (예: HttpServletRequest나 HttpSession 등) |
| Controller | 요청에 대응하여 처리 로직을 수행하는 곳입니다. |
| View | 화면 표시 처리를 담당합니다. (예: JSP 등) |
Spring MVC 수행 흐름
Spring MVC에서 클라이언트의 요청이 처리되는 과정은 다음과 같습니다:
- DispatcherServlet이 클라이언트로부터 모든 요청을 수신합니다.
- HandlerMapping을 통해 요청을 처리할 Controller를 검색합니다.
- 검색된 Controller를 실행하여 클라이언트의 요청을 처리합니다.
- Controller는 비즈니스 로직 수행 후 얻은 Model 정보와 View 정보를 ModelAndView 객체에 저장하여 반환합니다.
- DispatcherServlet은 ViewResolver를 통해 응답에 사용할 View를 찾아냅니다.
- 최종적으로 View가 실행되어 사용자에게 응답이 전송됩니다.
'🌱 Spring > Spring Boot' 카테고리의 다른 글
| [Spring] Spring Security (1) | 2024.10.16 |
|---|---|
| [Spring] Spring Batch - Batch와 Job, Step (1) | 2024.10.16 |
| [Spring] @Annotation (0) | 2024.10.16 |
| [Spring] Spring AOP (0) | 2024.10.16 |
| [Spring] Spring IoC(Inversion of Control)와 DI(Dependency Injection) (0) | 2024.10.16 |
