Architecture/Pattern Of Architecture

[PoA] Ch.2 Organizing Domain Logic

수미수 2023. 8. 10. 16:34
반응형

들어가기 전

  해당 챕터에서는 도메인 로직을 구성하기 위한 3가지 패턴에 대해서 이야기 한다. 가장 쉬운 접근법은 Transaction Script 이며, 이것은 절차지향적이라고 보면 된다. 사용자로 부터 입력 받고, 검증 및 계산 후 이를 DBMS에서 저장하는 절차이다.

Patterns

Transaction Script Pattern

  Transaction Script는 한 개의 메서드의 모든 비지니스 로직을 처리 하는 구조를 가진다.

Domain Model

  Transaction Script 방법이 절차적인 Script 방식인 반면, Domain Model 객체 지향적인 관점에서 비지니스를 처리 한다고 생각하면 된다. 즉, 각 객체가 도메인 로직을 수행하는 주체가 된다.
 
 

Domain Model은 각 객체들에게 행동을 전파하여 비지니스 로직을 처리 하는 구조를 가진다.

Table Module

Making Choice

아래 그림과 같이, 간단한 비지니스 로직인 경우, 도메인 모델을 이해하는 비용으로 인해 Domain Model 패턴을 사용하는것은 불리 할 수 있지만, 점차 비지니스 로직의 복잡도가 증가하면 다른 패턴들은 기능 추가에 많은 어려움을 겪게 된다.
 
 
 
 

Service Layer

Service Layer 는 근본적인 Domain Model 또는 Table Module 위에 위치한다. Presentation Logicㅇ Service Layer는 트랜잭션 제어 및 보안을 위치 시키기에 좋은 지점이다. Service Layer를 바라다 볼때, 중요 결정 사항은 얼마나 많은 Behavior 를 넣을 것인가 이다. 최소한의 케이스는 Service Layer를 Facade로 만드는 것이다. 모든 행동들은 관련된 오브젝트에 추가하고, 모든 Service Layer 들은 단지 Facade 형태로 호출 하는 용도로 사용한다. 극단적으로 대부분의 비지니스 로직은 Transaction Script 모델에서는 Service Layer 에 포함된다. 이때, 해당 객체들은 매우 간단하며 단지 데이터베이스의 데이터와 연관만 시키면 된다.
반응형