[객체지향] 도메인 모델 패턴 (Domain Model)

Woo Yong·2023년 12월 15일
0

자바

목록 보기
2/4
post-thumbnail

객체지향프로그래밍에 대해서 공부를 하면서 핵심 비즈니스 로직을 Domain Layer에 위치해야한다는 것을 알게 되었다.

하지만 스프링 공부를 하면서 "비즈니스 처리는 Service Layer"에서 해야한다고 알고 있었다. 이 부분이 이해가 되지 않아 해당 글을 써보자.

도메인 모델 패턴

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

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

Service Layer에서 모든 비즈니스 로직을 처리하는 것은 트랜잭션 스크립트라고 한다.

비즈니스 로직을 Service Layer에서 모두 구현하게 되면 프로젝트 규모가 커지게 되면 Service Layer의 복잡도 엄청 커진다.

즉, 복잡도가 커진다는 것은 테스트와 유지보수가 힘들어지고 객체지향스럽지 못한 것이다.
그렇기 때문에 Service Layer에서는 트랜잭션, 도메인 간 순서 보장의 역할만 하는 것이 좋다.

Service Layer 역할

  • 도메인 객체 로딩
  • 도메인 객체 메시지 보내기
  • 상태가 바뀐 도메인 객체 DB반영

이처럼 코드를 작성하면 Service Layer에서는 로직이 단순해지고 단위 테스트가 필요없다.
-> 도메인 객체만 단위테스트하면 된다.

profile
Back-End Developer

0개의 댓글