CS/웹

[웹] MVC 패턴의 5가지 계층

pythaac 2022. 5. 11. 13:16
  1. 프리젠테이션 계층 (Presentation Layer)
  2. 제어 계층 (Control Layer)
  3. 비즈니스 로직 계층 (Business Logic Layer)
  4. 퍼시스턴스 계층 (Persistence Layer)
  5. 도메인 모델 계층 (Domain Model Layer)

 

"스프링 부트를 활용한 마이크로 서비스 개발"이라는 책의 목차 중,
"3계층 스프링 부트 애플리케이션"이라는 내용이 궁금하여 찾아보게 됨

 

프리젠테이션 계층

  • 역할
    • 사용자 인터페이스
    • (메뉴판)
  • 기능
    • 사용자가 선택할 수 있는 기능 표시
  • 주의
    • 모든 요청이 제어 계층을 통해 처리되어야 함
      - 비즈니스 로직, 퍼시스턴스 계층에서 처리하는 일을 직접 수행해서는 안됨
      - 각 계층의 컴포넌트와 직접적인 통신이 있어선 안됨
  • 패턴
    • Composite View

 

제어 계층

  • 역할
    • 프리젠테이션 계층과 비즈니스 로직 계층 분리하는 컨트롤러 제공
    • (지배인)
  • 기능
    • 요청이 들어왔을 때 어떤 로직이 처리해야하는지 결정(로직에 요청 전달)
    • 그 외
      - 요청 검증
      - 로직의 응답을 적절한 뷰에 연결
  • 패턴
    • Front Controller
    • Service to Worker/Command
    • Intercepting Filter
    • Application Controller & Context Object

 

비즈니스 로직 계층

  • 역할
    • 핵심 업무의 처리 방법 기술
    • (요리사)
  • 기능
    • 핵심 업무 로직
    • 로직과 관련한 데이터 적합성 검증
    • 트랜잭션 처리
    • 다른 계층과 통신을 위한 인터페이스 제공 및 관계 관리
      - 요청 내용을 Database에 저장
      - 요청 내용에서 Database에 저장할 format으로 변경되어야함
      - 저장이 필요하다는 것은 퍼시스턴스 계층과 관계를 이어준다는 의미인듯
  • 패턴
    • Business Delagate
    • Session Facade
    • Service Locator
    • Application Service
    • EJB Home Factory

 

퍼시스턴스 계층

  • 역할
    • CRUD와 같은 데이터 처리 담당
    • (재료 담당자)
  • 기능
    • 정보 저장/수정/삭제
    • 이를 수행하기 위한 query문 관리
    • 정보의 객체화
  • 패턴
    • Data Access Object
    • Domain Store
    • Sequence Blocks

 

도메인 모델 계층

  • 역할
    • 계층 사이에서 전달되는 실질적인 비즈니스 객체
    • (음식이 담긴 그릇)
  • 기능
    • DTO 형태로 개발자가 직접 제작하여, Request나 Session같은 context에 담김
    • 최근에는 도메인 모델을 서비스로 제공
      - 모든 데이터베이스 정보를 객체로 만들기 복잡함
      - 계층간 통신 과정에서 데이터 유실 위험
  • 패턴
    • Data Transfer Object
    • Value List Handler

 

 

 

 

 

https://postitforhooney.tistory.com/entry/Spring-MVC-%ED%8C%A8%ED%84%B4%EC%97%90%EC%84%9C%EC%9D%98-5%EA%B0%80%EC%A7%80-%EA%B3%84%EC%B8%B5%EC%97%90-%EB%8C%80%ED%95%9C-%EC%A0%95%EB%B3%B4-%ED%8D%BC%EC%98%B4

 

[Spring] MVC 패턴에서의 5가지 계층에 대한 정보 - 퍼옴

http://egloos.zum.com/mt1716/v/9291203 스프링을 통해 최근 자바 커뮤니티의 관심이 집중되고 있는 IoC 컨테이너와 AOP에 대한 개념을 접해보도록 하자. 그리고 스프링을 스트럿츠와 연동하기 위해 필요한

postitforhooney.tistory.com

http://www.kyobobook.co.kr/product/detailViewKor.laf?barcode=9791158391416 

 

스프링 부트를 활용한 마이크로 서비스 개발 - 교보문고

기초 개념부터 구현까지, 예제를 통해 배우는 실무 중심의 마이크로서비스 | 작은 일체형부터 여러 서비스를 결합한 이벤트 중심 아키텍처까지 스프링 부트 애플리케이션을 조금씩 발전시켜 나

www.kyobobook.co.kr

 

'CS > ' 카테고리의 다른 글

[웹] PG(Payment Gateway)  (0) 2022.05.05
[웹] Spring - NodeJS - Django  (0) 2022.04.19
[웹] JEE (Jakarta Enterprise Edition)  (0) 2022.04.19
[웹] SEO란  (0) 2022.04.18
[인프런][HTTP] URI와 웹 브라우저 요청 흐름  (0) 2022.04.07