[Spring] Spring MVC / 3계층 아키텍처

최서영·2024년 10월 14일

<목차>

  • Spring MVC
  • 3계층 아키텍처

1. Spring MVC

  • Model-View-Controller (MVC) 패턴을 기반으로 한 웹 애플리케이션 개발을 돕는 프레임워크.
  • Controller가 사용자의 요청을 받음 -> Controller가 필요한 데이터를 Model에 전달 -> Model을 통해 데이터를 처리 -> View에 데이터를 전달하여 사용자가 볼 수 있게 함.

  • Controller
    • 사용자의 요청을 받아 처리하고, Model-View 사이를 연결한다.
    • HTTP 요청을 받아서 처리하고, 필요한 데이터를 Model에 전달한다. 그 후 결과를 View로 전달한다.
  • Model
    • 데이터와 비즈니스 로직을 담당한다. 데이터베이스와 연동하거나 데이터를 처리하는 역할을 한다.
    • 모델 객체는 Controller를 통해 데이터를 제공하고, View에서 그 데이터를 사용할 수 있게 한다.
  • View
    • 사용자가 보는 화면을 담당한다. 일반적으로 JSP, Thymeleaf, Freemarker 같은 템플릿 엔진을 사용해 구현된다.

2. 3계층 아키텍처

  • Spring에서는 MVC 패턴을 기반으로 하여, 이를 또 3계층 아키텍처로 나누는 방식으로 소프트웨어를 설계한다.
  • 각 3계층의 역할을 명확하게 나누어, 코드의 책임과 관심사를 분리함으로써 유지보수성과 확장성을 높인다.

  1. Presentation Layer ( -> Controller / View )
  2. Business Logic Layer (->Service = Model)
  3. Data Access Layer (-> Repository = Model)

1. Presentation 계층 (Presentation Layer)

  • Controller가 사용자의 요청을 받아들이고, 비즈니스 로직을 호출한다. View는 그 결과를 클라이언트에 보여준다.
  • 클라이언트는 이 계층을 통해 애플리케이션과 상호작용한다.

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

  • service 계층으로, 애플리케이션의 핵심 비즈니스 로직을 담당한다.
  • Repository(DAO)를 호출하여 데이터를 처리한 후, 그 결과를 Controller에 전달한다.

3. 데이터 접근 계층 (Data Access Layer)

  • Repository(DAO) 계층으로, 데이터베이스와 직접적으로 상호작용하는 계층이다.
  • 데이터의 CRUD(Create, Read, Update, Delete) 작업을 수행하고, 데이터를 Service 계층에 제공한다.
  • 이 계층은 JPA, Hibernate, JDBC 같은 데이터베이스 접근 기술을 사용해 데이터베이스와 상호작용한다.

0개의 댓글