웹개발/spring MVC

[Spring] Spring MVC (1)

동동구링 2022. 8. 31. 14:19

MVC

Model View Controller 의 약자로, 각각 서로 다른 파일에서 역할을 나누어 데이터를 주고받을 수 있도록 하는 디자인 패턴

Spring Framework 동작 방식

M (Model)

  • Model 은 View 가 렌더링 하는데 필요한 데이터를 말한다
  • DBMS(DataBase Manage Service) 에 의해 관리되고, SQL 을 통해 구현한다
  • Service(BO) 와 Repository(DAO) 로 나뉘어 Database 에서 데이터를 관리한다

V (View)

  • View 는 웹 애플리케이션에서 실제로 보여지는 부분으로 Model 을 이용해 렌더링 하게 된다
  • Java는 JSP 를 통해 구현한다
  • Model 이 가지고 있는 정보를 저장해서는 안된다

C (Controller)

  • View 에 받은 요청을 가공해서 Model 에 전달하거나, Model 로부터 받은 결과를 View 로 전달한다

Spring Framework 는 Servlet 사용해 한 파일에서 데이터를 가져와 response 로 전송하는 것과 다르게 각각 서로 다른 파일에서 MVC 를 나눠 각자의 역할을 하도록 만들었다. 이를 통해 Presentation Layer(표현 계층), Business Layer(비즈니스 계층), Persistence Layer(영속 계층) 이 분리된다.

이렇게 MVC 를 나누는 이유는 소스 분리를 통해 목적을 명확히 하고, 종속적이지 않게 하며, 재사용이 가능하도록 해 유지보수를 용이하게 만들기 위함이다.


Spring MVC 패턴

Spring MVC 패턴

1. Presentation Layer (표현 계층)

  • View 화면을 나타내기 위한 계층
  • View, Controller

2. Business Layer (비즈니스 계층)

  • 데이터 가공 및 처리 로직이 있는 계층
  • Service, BO (Business Object)

3. Persistence Layer (영속 계층)

  • 데이터를 DB 에 저장해 지속적으로 사용할 수 있는 계층
  • Repository, DAO (Data Access Object), Mapper

Entity

  • Database 와 테이블 데이터를 담기 위한 객체
  • field 및 Getter, Setter 만을 갖는 Java Bean 객체
  • 테이블 컬럼과 일치하는 filed 로만 구성

DTO (Data Transfer Object)

  • 여러 계층 간의 데이터를 옮기기 위한 목적의 객체
  • Entity 개념을 포함하며, Presentation Layer 에서 사용하기 위한 필드 추가 가능