- 프리젠테이션 계층 (Presentation Layer)
- 제어 계층 (Control Layer)
- 비즈니스 로직 계층 (Business Logic Layer)
- 퍼시스턴스 계층 (Persistence Layer)
- 도메인 모델 계층 (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
http://www.kyobobook.co.kr/product/detailViewKor.laf?barcode=9791158391416
'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 |