Dazzling 개발 노트

[Spring] Spring MVC 본문

Develop/Spring

[Spring] Spring MVC

dj._.dazzling 2024. 1. 19. 23:16

Spring MVC는 Java 기반 웹 개발을 위한 강력한 프레임워크로, Model-View-Controller(MVC) 패턴에 기반하여 웹 애플리케이션의 구조를 체계적으로 구성한다. 이 프레임워크는 웹 애플리케이션의 개발과 유지보수를 용이하게 만들어 준다.

Spring MVC의 핵심 개념

Model-View-Controller(MVC) 패턴

  • Model: 애플리케이션의 데이터와 비즈니스 로직. 데이터의 저장, 수정, 삭제 같은 기능을 담당하며, 상태의 변경을 View와 Controller에 알린다.
  • View: 사용자에게 정보를 표시. HTML, JSP와 같은 웹 페이지로 구성되며, 사용자의 입력을 받아 Controller에 전달한다.
  • Controller: 사용자의 입력과 이벤트를 처리. Model을 업데이트하고, View를 선택하여 사용자에게 피드백을 제공한다.

핵심 구성 요소

  • DispatcherServlet: 클라이언트의 모든 요청을 처음 받아서 처리. 적절한 Controller에 요청을 전달하고, 처리 결과를 View에게 전달하여 사용자에게 응답을 제공한다.
  • HandlerMapping: URL 요청을 처리할 Controller를 찾는다. 요청 URL과 매핑되는 Controller를 결정하는 역할을 한다.
  • Controller: 요청을 처리하는 핵심 로직. 사용자의 요청을 분석하고, Model을 조작하고, 처리 결과를 View에 전달한다.
  • ModelAndView: Controller가 처리한 데이터와 결과를 나타내는 View의 정보를 담는다. Controller는 이 객체를 생성하여 DispatcherServlet에 반환한다.
  • ViewResolver: Controller가 반환한 View 이름에 해당하는 실제 View를 찾는다. 이를 통해 최종적으로 사용자에게 보여질 View를 결정한다.

Spring MVC의 작동 원리

  1. 사용자의 요청은 먼저 DispatcherServlet에 도달한다.
  2. DispatcherServlet은 HandlerMapping을 통해 해당 요청을 처리할 Controller를 찾는다.
  3. Controller는 요청을 처리한 후, 결과 데이터와 함께 ModelAndView 객체를 DispatcherServlet에 반환한다.
  4. DispatcherServlet은 ViewResolver를 사용하여 ModelAndView에 명시된 View를 찾는다.
  5. View는 Model에서 데이터를 가져와 사용자에게 보여주는 화면을 생성한다.
  6. 최종적으로 사용자에게 응답이 전송된다.

Spring MVC는 이러한 구조를 통해 웹 애플리케이션 개발의 복잡성을 낮추고, 개발자가 비즈니스 로직과 사용자 인터페이스를 명확하게 분리하여 관리할 수 있도록 한다. 이는 애플리케이션의 유지보수성과 확장성을 크게 향상시킨다.