[Spring] MVC 패턴

    1. MVC(Model View Controller)

    • 디자인 패턴 중 하나인 MVC 패턴은 Model, View, Controller의 줄임말로, 애플리케이션을 구성할 때 그 구성 요소를 세 가지 모듈로 구분한 패턴을 의미함
    • 사용자 인터페이스로부터 비즈니스 로직을 분하여 서로 영향 없이 쉽게 고칠 수 있는 설계가 가능

     

    1) 컨트롤러

    • Model과 View 사이에서 브릿지 역할을 수행
    • 앱의 사용자로부터 입력에 대한 응답으로 모델 및 뷰를 업데이트하는 로직 포함
    • 사용자의 요청은 모두 컨트롤러를 통해 진행되어야 함
    • 컨토롤러로 들어온 요청은 어떻게 처리할지 결정하여 모델로 요청을 전달함

     

    2) 모델

    • 데이터를 처리하는 영역
    • 모든 데이터 정보를 가공해 가지고 있는 컴포넌트
    • 변경이 일어나면 처리 방법을 구현해야 함
    • 데이터베이스와 연동을 위한 DAO와 데이터 구조를 표현하는 DO로 구성됨

    -> springboot mvc 패턴에서 Service, ServiceImpl, Mapper로 분리해서 구현함

     

    3) 뷰

    • 시각적인 UI 요소를 지칭하는 용어
    • Model이 가지고 있는 데이터를 저장하면 안 됨
    • Model이나 Controller에 대한 정보를 알면 안 되며, 단순히 표시해 주는 역할을 가지고 있음

     

    2. MVC 패턴의 특징

    • 애플리케이션의 역할을 세 구간으로 나누어 설계함으로써 서로 간의 의존성이 낮아짐
    • 각 영역이 독립적으로 구성되어 개발자 간 분업 및 협업이 원활해짐
    • 한 영역을 업데이트하더라도 다른 곳에 영향을 주지 않음

     

    3. Spring MVC의 일반적인 구조

    1) Controller

    • 사용자의 요청을 처리하고 이에 대한 응답을 제공
    • 사용자 입력을 수신하고 요청을 처리하기 위해 적절한 서비스 메서드를 호출함
    • 컨트롤러는 Spring bean으로 구현되며, @Controller 어노테이션을 추가

     

    2) Service

    • 애플리케이션의 비즈니스 로직을 구현함
    • 컨트롤러와 통신하여 사용자의 요청을 처리하고, 해당 요청을 이행하기 위해 모델에 대한 작업 수행
    • 일반적으로 인터페이스를 사용하여 구현됨

     

    3) ServiceImpl

    • 서비스 인터페이스의 구현부

     

    4) DAO

    • 애플리케이션과 데이터베이스 간의 인터페이스 제공
    • 데이터베이스 상호작용을 처리하고 데이터에 필요한 CRUD 작업 구현

     

    5) DB

    • 애플리케이션의 데이터를 저장
    • 일반적으로 MySQL 또는 PostgreSQL과 같은 관계형 데이터베이스 관리 시스템을 사용해 구현

    'Spring' 카테고리의 다른 글

    [Spring] Lombok 라이브러리  (0) 2023.04.06
    [Spring] Swagger 라이브러리  (0) 2023.04.06
    [SpringBoot] REST API란?  (0) 2023.04.05
    [Spring] 싱글톤 패턴  (0) 2023.04.04
    [Spring] 빌드 관리 도구  (0) 2023.04.04

    댓글