[Spring] Spring MVC

2024. 10. 16. 23:07·🌱 Spring/Spring Boot

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에서 클라이언트의 요청이 처리되는 과정은 다음과 같습니다:

  1. DispatcherServlet이 클라이언트로부터 모든 요청을 수신합니다.
  2. HandlerMapping을 통해 요청을 처리할 Controller를 검색합니다.
  3. 검색된 Controller를 실행하여 클라이언트의 요청을 처리합니다.
  4. Controller는 비즈니스 로직 수행 후 얻은 Model 정보와 View 정보를 ModelAndView 객체에 저장하여 반환합니다.
  5. DispatcherServlet은 ViewResolver를 통해 응답에 사용할 View를 찾아냅니다.
  6. 최종적으로 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
'🌱 Spring/Spring Boot' 카테고리의 다른 글
  • [Spring] Spring Security
  • [Spring] Spring Batch - Batch와 Job, Step
  • [Spring] @Annotation
  • [Spring] Spring AOP
kkongdo
kkongdo
kkongdo 님의 블로그 입니다.
  • kkongdo
    숲을 바라보며 나무를 심는 아이
    kkongdo
  • 전체
    오늘
    어제
    • 분류 전체보기 (32)
      • 🌏 Web (0)
      • ☕ Java (5)
      • 🌱 Spring (9)
        • Spring Boot (7)
        • Spring Data JPA & QueryDSL (2)
      • 🗂️ Database (5)
      • 💻 CS (12)
        • 운영체제 (4)
        • 네트워크 (5)
        • 자료구조 (3)
      • 🗃️Git (1)
      • 🔍 Algorithm (0)
      • 📡 DevOps (0)
        • Docker (0)
      • 🔭 ETC (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • GitHub
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    조인
    OS
    db
    CS
    SpringSecurity
    네트워크
    spring
    JPA
    복잡도
    @annotation
    SpringMVC
    운영체제
    java
    자료구조
    네트워크기기
    springbatch
    데이터베이스
    QueryDSL
    DI
    스케줄링
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
kkongdo
[Spring] Spring MVC
상단으로

티스토리툴바