전통적인 3계층 아키텍처

웹 → 도메인 → 영속성

아래 방향으로 접근 가능하다.

  1. 웹 계층: 요청을 받아 서비스로 요청을 보낸다.
  2. 도메인/비즈니스 계층:필요한 비즈니스 로직을 수행
  3. 영속성 계층: 도메인 엔티티의 현재 상태를 조회하거나 변경하기 위해 컴포넌트 호출

계층을 잘 이해하고 구성한다면 웹/영속성 계층에 독립적으로 도메인 로직을 작성 가능하다.

ex> 도메인 로직을 건드리지 않고 영속성 계층에 사용된 기술 변경 가능

단점

시간이 지날수록 소프트웨어를 점점 더 변경하기 어렵게 만드는 수많은 허점들을 노출한다.

계층형 아키텍처는 데이터베이스 주도 설계를 유도한다

데이터베이스 관점

웹 → 도메인 → 영속성 흐름으로 의존하기 때문에 결국 데이터베이스에 의존하게 된다.

= 데이터베이스 기반으로 아키텍처를 설계한다

데이터베이스의 구조 → 토대로 도메인 로직 구현