본문 바로가기
☕️자바 𝗝𝗔𝗩𝗔

도메인 모델 패턴, 트랜잭션 스크립트 패턴 (Domain Model Pattern, Transaction Script Pattern)

by 비타민찌 2022. 10. 3.
728x90

도메인 모델 패턴, 트랜잭션 스크립트 패턴

 

마틴 파울러가 재창한 두개의 개념으로, 비즈니스 로직을 처리하는 2가지 패턴을 말한다. 책임 소재가 Domain Level이냐 Script Level이냐의 차이에 따라 구분된다. 

 

1. 도메인 모델 패턴 (Domain Model Pattern) 이란

Domain 부분에서 비즈니스 로직을 가지고 객체 지향의 특성을 적극 활용 하는 것을 도메인 모델 패턴이라 한다.

대부분의 비즈니스 로직이 엔티티 안에 구성되어있다. 서비스 계층은 엔티티에 필요한 역할을 위임하는 역할을 한다. 엔티티 안에 비즈니스 로직을 가지고 객체지향을 활용하는 기법이다.

 

도메인 모델?

도메인을 모든 사람이 동일한 관점에서 이해할 수 있고 공유할 수 있도록 단순화 시킨 것. 즉, 특정 도메인을 개념적으로 표현한 것이다. 도메인의 핵심을 간략하게 단순화해서 표현할 수 있는 모든 것이 도메인 모델이다.

도메인 모델은 개념 모델을 이용해서 바로 코드를 작성하지 않는다. 구현 기술에 맞는 구현 모델 필요. 개념모델이 구현모델과 같지 않지만 구현모델이 개념 모델을 최대한 따르도록 할 수 있다.

 

도메인 모델 패턴 장,단점

장점: 객체 지향에 기반한 재사용성,확장성, 그리고 유지 보수의 편리함 필요에 따라 약간의 수정이 필요하겠지만 언제든지 재사용할 수 있다.

 

단점: 하나의 도메인 모델을 구축하는데 많은 노력이 필요하다, 객체를 판별하고 객체들 간의 관계를 정립해야 하고, 데이터베이스 사이의 매핑에 대해서 고민해야한다. 도메인 모델에 능숙한 개발자가 없을 경우 구축 자체가 힘들어질 수도 있다.

 

 

2. 트랜잭션 스크립트 패턴 (Transaction Script Pattern)

트랜잭션 스크립트란, 하나의 트랜잭션으로 구성된 로직을 단일 함수 또는 단일 스크립트에서 처리하는 구조. 엔티티에는 비즈니스 로직이 거의 없고, 서비스 계층에서 대부분의 비즈니스를 처리하는 것이다.

 

트랜잭션 스크립트 패턴 장,단점

장점: 구현 방법의 단순함 때문에 구현이 매우 쉽다. 얼마나 모듈화를 잘 하느냐에 따라서 높은 효율을 낼 수 있다.

단점: 비즈니스 로직이 복잡해질수록 난잡한 코드를 만들게 된다. 도메인에 대한 분석/설계 개념이 약하기 때문에 코드의 중복 발생을 막기 어려워진다. 

 

3. 도메인이 비즈니스 로직의 주도권을 가지고 개발하는 것을 도제인 주도 설계라고 한다. 이 방식은 서비스의 많은 로직이 엔티티로 이동하고, 서비스는 엔티티를 호출하는 정도의 얇은 비즈니스 로직을 가지게 된다. 반대로 서비스에 비즈니스 로직이 모두 있다면 엔티티는 단순히 getter, setter만 제공하는, 엔티티를 자료구조로 사용하는 방식이 된다. (전자는 엔티티를 객체로 사용)

 

 

 

inflearn.com/questions/117315

728x90

댓글