반응형
⚙ 트랜잭션 스크립트 패턴 vs 도메인 모델 패턴
🔗 트랜잭션 스크립트 패턴이란?
- 하나의 트랜잭션으로 구성된 로직을 단일 함수 또는 단일 스크립트에서 처리하는 구조
- Entity에는 비즈니스 로직이 거의 없고, Service Layer에서 대부분의 비즈니스를 처리하는 것
🔗 도메인 모델 패턴이란?
- Entity에서 비즈니스 로직을 가지고 객체 지향의 특성을 적극 활용하는 것
- 대부분의 비즈니스 로직이 Entity 안에 구성되어 있다. Service Layer는 Entity에 필요한 역할을 위임하는 역할을 함
🔗 장단점
패턴명 | 트랜잭션 스크립트 | 도메인 모델 |
장점 | - 구현 방법의 단순함 - 얼마나 모듈화를 잘하느냐에 따라 높은 효율을 낼 수 있음. | - 객체 지향에 기반한 재사용성, 확장성, 유지 보수의 편리함 |
단점 | - 비즈니스 로직이 복잡해질수록 난잡한 코드를 만들게 됨. - 도메인에 대한 분석/설계 개념이 약하기 때문에 코드의 중복 발생을 막기 어려움. | - 하나의 도메인 모델을 구축하는데 많은 노력이 필요함 - 객체를 판별하고 객체들 간의 관계를 정립해야 하며, 데이터베이스 사이의 매핑에 대해서 고민해야 함. |
두 개의 패턴 중 어떤 패턴을 사용할지에 대해서는 프로젝트나 개발자의 선호도에 따라 다를 수 있다.
하지만 Spring에서는 도메인 모델 패턴을 지원하는 다양한 기능을 제공한다.
예시
- JPA를 사용하면 Entity 클래스를 통해 도메인 모델을 구현할 수 있음.
- Spring Boot에서는 도메인 모델 패턴을 사용한 아키텍쳐 구조를 쉽게 구현할 수 있도록 도와줌.
Spring에서는 도메인 모델 패턴을 적극적으로 활용하여 비즈니스 로직을 구현하는 것이 좋다!
반응형
'Java > Spring' 카테고리의 다른 글
[Spring] 타임리프(Thymeleaf)에 대해 알아보자! (0) | 2023.04.01 |
---|---|
[Spring] JPA에 대해 알아보자! (0) | 2023.03.31 |
[Spring] Model 객체와 @ModelAttribute 어노테이션 (0) | 2023.03.25 |
[Spring] Spring vs Spring Boot (0) | 2023.03.22 |
[Spring] 테스트 코드에 대해 알아보자! (0) | 2023.03.22 |