반응형
Layered Architecture란?
중복으로 개발되는 요소를 별도의 Service 객체로 만들어 여러 컨트롤러에서 사용할 수 있게끔 하는 것이다.
Layer를 분리하는 이유?
- Layer를 나눈다는 것은, 무언가를 추상화 하는 것이 그 목적이다.
- 추상화를 잘 했다면 각기 다른 계층끼리 부품을 갈아끼우듯 변경할 수 있다.
- 컴포넌트들의 의존 계층 관계를 깔끔하게 유지할 수 있다.
3Tier Architecture
프로그램 코드를 3개의 레이어로 구분하는 경우(3Tier Architecture)에는 각 레이어는 다음과 같은 기능으로 구분된다
- Presentation Layer: Controller, pages, display beans
DispatcherServlet이 담당하는 부분 / UI
이용자가 볼 수 있도록 화면을 구성하는 로직의 집합
- Application Layer = Service Layer
도메인 모델을 묶어서 소프트웨어에서 사용 가능한 핵심 작업 집합을 설정하는 계층으로 소프트웨어가 수행해야하는 작업과 소프트웨어에게 내릴 수 있는 명령을 명시한다.
보통 도메인 모델의 비즈니스 로직 하나를 호출하는 것만으로는 복잡한 작업을 처리할 수 없기 때문에 이러한 작업을 해주는 layer가 있어야한다. 그 작업을 해주는 것이 바로 Service layer이다.
단, 핵심 로직은 Business layer에 두고, Service layer는 얇게 유지하는 것이 맞다고 한다.
- Data Access Layer = Persistence Layer
데이터 저장소에 직접 접근하여 데이터를 가져오거나 저장하는 로직
++ Database에 데이터를 CRUD하는 계층
++ 이해 가는 대로 더 추가할 것
반응형
'Study > CS' 카테고리의 다른 글
[CS] Rest API: URL 디자인 가이드 (0) | 2022.02.11 |
---|---|
[Network] 라우팅(Routing) (0) | 2021.12.19 |
[CS] REST API, REST-ful이란? (0) | 2021.12.14 |
[CS] DAO / DTO(VO)란? (0) | 2021.12.08 |
[CS] MVC (Model, View, Controller) 디자인 패턴 (0) | 2021.12.03 |