9.3 애플리케이션 아키텍처

9.3.1 계층형 아키텍처

인터페이스처럼 유연한 경계를 만들어두고 분리하거나 모아주는 작업이 필요하다

아키텍처와 SoC

지금까지의 유연한 설계와 구현 전략:

성격이 다른 코드가 얽혀 있는 것을 두 개의 오브젝트로 분리하고,

그 사이에 유연한 결합을 가져올 수 있도록 인터페이스를 두고,

그 관계를 맺어주는 제3의 존재인 DI 컨테이너를 둬서

오브젝트끼리는 직접적인 관계를 알지 못하도록 만드는 것

→ 이걸 큰 단위에서도 적용해보자!

애플리케이션을 구성하는 오브젝트들을 비슷한 성격과 책임을 가진 것들끼리 묶을 수 있음

그런데 이렇게 나눠이져 있지 않다면? 코드가 지저분해진다!

나누면 분리된 각 오브젝트는 독자적 개발 및 테스트가 가능해져서

이런식으로 성격과 책임이 다른 것들을 크게 그룹으로 만들어 분리해두는 것

계층형 아키텍처(멀티 티어 아키텍처)

웹 기반의 엔터프라이즈 애플리케이션은 3계층(3-tier/3-layer) 애플리케이션 이라고 함