Layered-Architecture
1. Layered Architecture
- 계층형 아키텍처는 웹 계층, 도메인 계층, 영속성 계층으로 구성된 전통적인 웹 애플리케이션의 구조입니다.
- 계층형 아키텍처에서 전체적으로 적용되는 유일한 규칙은 특정 계층에서는 같은 계층 내의 컴포넌트나 하위 계층의 컴포넌트만 사용할 수 있다는 것입니다.
1.1 Web Layer
- 웹 계층은 웹 요청을 받아 도메인 계층 또는 비즈니스 계층에 있는 서비스로 요청을 전달합니다.
- 서비스로부터 응답을 받아 웹 응답을 반환합니다.
1.2 Domain Layer
- 서비스와 도메인 엔티티로 구성된 계층입니다.
- 서비스에서는 필요한 비즈니스 로직을 수행하고, 도메인 엔티티의 현재 상태를 조회하거나 변경하기 위해 영속성 계층의 컴포넌트를 호출합니다.
1.3 Persistence Layer
- 영속성 계층은 도메인 엔티티의 현재 상태를 조회하거나 변경하기 위해 데이터베이스와 통신합니다.
2. 계층형 아키텍처의 구조
계층형 아키텍처는 다음과 같은 구조를 가집니다:
- 웹 계층(Web Layer): 사용자 인터페이스와 외부 요청을 처리하는 최상위 계층입니다
- 도메인 계층(Domain Layer): 비즈니스 로직을 담당하는 중간 계층입니다
- 서비스(Service): 비즈니스 로직을 수행하는 컴포넌트입니다
- 영속성 계층(Persistence Layer): 데이터베이스와 직접 통신하는 최하위 계층입니다
- 엔티티(Entity): 도메인 객체를 표현하는 컴포넌트입니다
- 리포지토리(Repository): 데이터 접근을 추상화하는 컴포넌트입니다
2.1 계층 간 의존성 방향
계층형 아키텍처에서는 다음과 같은 의존성 방향을 가집니다:
- 웹 계층 → 도메인 계층 (서비스)
- 도메인 계층 (서비스) → 리포지토리 계층 (엔티티, 리포지토리)