본문 바로가기

Spring

[Spring] 도메인 로직 패턴 - 도메인 모델,트랜잭션 스크립트

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

마틴 파울러가 재창한 두개의 개념으로 비즈니스 로직을 처리하는 2가지 패턴을 말한다.

책임 소재가 Domain Level이냐 Script Level이냐의 차이에 따라 구분된다.

 

도메인 모델 패턴 (Domain Model Pattern)

 

도메인이란?

  • 다양한 설명들이 있지만 나에게 와닿은 정리는 "소프트웨어를 개발하는 대상 영역"이다.

도메인 모델이란?

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

도메인 모델 패턴이란?

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

도메인 모델 패턴 장,단점

  • 장점
    • 객체 지향에 기반한 재사용성,확장성, 그리고 유지 보수의 편리함
    • 필요에 따라 약간의 수정이 필요하겠지만 언제든지 재사용할 수 있다.
  • 단점
    • 하나의 도메인 모델을 구축하는데 많은 노력이 필요하다,
    • 객체를 판별하고 객체들 간의 관계를 정립해야 하고, 데이터베이스 사이의 매핑에 대해서 고민해야한다.
    • 도메인 모델에 능숙한 개발자가 없을 경우 구축 자체가 힘들어질 수도 있다.

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

 

트랜잭션 스크립트란?

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

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

  • 장점
    • 구현 방법의 단순함 때문에 구현이 매우 쉽다
    • 얼마나 모듈화를 잘 하느냐에 따라서 높은 효율을 낼 수 있다.
  • 단점
    • 비즈니스 로직이 복잡해질수록 난잡한 코드를 만들게 된다.
    • 도메인에 대한 분석/설계 개념이 약하기 때문에 코드의 중복 발생을 막기 어려워진다.

 

잘못된 지식이나 정보는 바로 잡아주시면 감사하겠습니다!

'Spring' 카테고리의 다른 글

[Spring boot] view 환경설정  (0) 2021.07.20
[Spring] JPA - No Property Found for Type Exception  (0) 2021.07.13