CS - Layered Architecture
레이어드 아키텍쳐에 대한 간단한 정리
- 각 구성 요소들이 관심사 분리를 달성하기 위해 ‘책임’을 가진 계측으로 분리한 아키텍쳐이다.
- 하나의 계층에 여러 관심사가 존재하면 응집도는 떨어지고 결합도가 높아진다.
- 하지만 응집도는 높아지고 결합도는 낮춰야 좋은 시스템이라 할 수 있다.
- 그리고 그렇게 해야 유지보수성도 높일 수 있다.
- 우리가 Spring으로 개발할 때 가장 많이 사용하는 아키텍쳐 방식이다.
레이어드 아키텍쳐의 종류
- 일반적으로는 3-tier 나 4-tier로 나눈다.
- 4-tier 를 예시로 들면,
- HTTP 요청 —> Presentation Layer, Business Layer, Persistence Layer, Data Layer —> DataBase 로 나뉜다.
- 저 안에 있는 Layer 들이 계층이다.
- Presenation Layer
- 우리가 알고 있는 Controller
- 사용자의 요청, 응답을 처리하는 책임
- Business Layer
- 우리가 알고 있는 Service
- 비즈니스 로직을 수행하는 책임
- Persistence Layer
- 우리가 알고 있는 Repository 나 Dao
- DB와 상호작용, 데이터 CRUD 의 책임
- Data Layer
- 참고로 3-tier면, Business 와 Persistence 를 합쳐서 Application Layer 를 만든다.
- Presenation Layer -> Application Layer -> Data Layer 가 되는 것이다.